Sure, but combined with anonymity, that immediately implies that anyone can write anything about anyone without liability, as long as the original author remains anonymous. Other posts in this discussion have given examples about how this could be abused by news organisations trying to push an agenda; the leaking rumours about new Apple hardware that were mentioned on Slashdot a few months back come to mind as another possible case.
Moreover, with the rise of on-line distribution of information, we have a new trend that the law doesn't really address at present: large-scale content providers whose profit model essentially relies on distributing content of dubious legality, who argue that they cannot realistically moderate all of that content, who therefore directly magnify the damage caused by any illegal content they are carrying, yet who remain completely isolated from any legal liability for that damage because of rulings such as this one. Regardless of any specific case, if the law allows someone to run a profitable model based on damaging others, I don't think it's appropriate to let "But we can't do anything about it, Your Honour!" stand as a defence.
Many alternative approaches are also viable legal positions, from a requirement to make a good faith effort to filter obviously illegal content, through compulsory moderation of some or all content, right up to saying "Well, sorry, you just can't run that damaging but profitable service then". Of course, the service provider might not like all of those alternatives, but laws should be written to protect the members of the society, and that may conflict with furthering the interests of business.
(As an aside, can anyone tell me why my GP post looks like a troll? It certainly wasn't meant as one, but has been modded as such, so I'm wondering if something isn't reading as I intended.)
Disclaimer: I can't RTFA for some reason, so I'm only going on the summary here.
Rashly assuming that said summary is accurate, this seems like a dangerous ruling. It basically says that deliberately and directly propagating harmful untruths about someone on-line is OK. Surely the whole point of defamation laws is surely that spreading those harmful untruths around is, well, harmful, and therefore should not be permitted (and compensation due if that law is broken)?
Now, you can make strong arguments both ways about the responsibilities and freedoms of on-line service providers in relation to content supplied by others but hosted on or transmitted by the service provider's systems.
On the one hand, there is the "common carrier" argument: service providers don't know about or control the content and therefore shouldn't be held responsible for it. By extension, you have to consider that even if they do receive a complaint from someone, that person may or may not be justified in making that complaint, and it may or may not be appropriate for the service provider to censor content on request.
On the other hand, this is a huge legal loophole, which basically says that on-line free speech is completely unaccountable, even in cases like defamation where the same speech is clearly held by law to be an abuse in other contexts. In the current legal and technological climate, where a lengthy court process is required to get anything done about anything yet the information can spread very fast, there's simply no effective way for someone who is damaged by this sort of action to defend themselves.
The only way forward, as far as I can see, is to introduce fast-track legal processes that can resolve fairly straightforward cases quickly and relatively informally, following a similar principle to small claims courts. Such a legal framework could deal with all kinds of on-line abuses -- not least defamation and copyright infringement -- in a timely fashion, without resorting to appointing service providers to the role of courts.
To me, this makes far more sense than either attempting technological controls (as copyright holders are doing with DRM, for example) or just giving up (as frequently seems the case with defamation, and people offering bad advice on regulated subjects like health, law and finances). Of course, a healthy dose of population education, so that people don't just believe anything they see (particularly from an anonymous source on a random web site or chat room) wouldn't do any harm, either.
And the attitude of the so-called public servants to folks that look "ethnic" is sometimes disgusting. You'd have to be one to understand, I guess.
Speaking as Mr UK National Average (including being white), I'm genuinely sorry you feel that way, though I can understand why you do. Personally, I've never really understood racism; many of the nicest, most friendly/helpful/considerate people I've met in my life have not been whites, so I guess I just have no frame of reference for characterising such people as undesirable.
I think the problem is that once people with a certain bias get into power, they tend to administratively procreate, and the result after a few generations can be a systemic weakness greater than a few individual problems. The only solution to this problem is a mass cull of the bad material, as you tend to get when a political administration becomes unpopular and an opposition party then wins a landslide victory for example.
Of course, this approach only works at the elected levels. If you have local authorities -- police, education, city planners, or whoever -- who aren't directly accountable to the electorate, getting rid of bad blood is a lot harder. Usually the problem has to get so bad that those who are politically accountable start to intervene directly and clean things up at the lower levels from on high, and at the very least, that usually takes a lot of time.
The one comfort I find in this, whether we're talking about discrimination such as racism or sexism or we're just talking about public officials whose personal prejudices outweigh making balanced and unbiased decisions in the public interest, is that sooner or later reality always seems to assert itself and the fools get kicked out of office.
In fact, some British universities (Cambridge, for example) are so old that they have bizarre/amusing legal trivia of their own. IIRC, the Proctors at Cambridge (who are senior university officials) technically have the authority of a constable and not a member of the public, while various public authorities including the police themselves may not enter the grounds of certain colleges without the advance permission of the Master or Head Porter. (Your vague memories may vary; please check the books before relying on this!)
In a sense, Slashdot is indeed a forerunner of the Web 2.0 collective contribution model. I think the key distinction is that on Slashdot, the front page stories are still chosen by the editors.
But that aside, VB and Java is what businesses actually want.
I'm afraid you're making your usual mistake of assuming that the whole software development industry works like the relatively small part of it where you've worked. For other major programming areas -- such as scientific data analysis, instrument control and embedded firmware, games, graphical display, systems programming, and countless smaller and more theoretical fields -- VB and Java are just about the last things anyone would want.
It used to take expensive infrastructure to allow staff to communicate to build complex things. Now it only requires a commodity web connection.
Yes and no.
Of course communication via various media is now much easier, but there is always an inherent advantage in using home-grown resources. I'm expecting to work a ten-hour day tomorrow. Why? Because I have a meeting tomorrow morning UK time, and a meeting tomorrow afternoon US time. I don't object to this on the basis of working hours -- my employer is reasonable about flexitime, and I will have a short day some other time to make up for it -- but it's inevitable that I will not be as sharp after 9-10 hours of work as I would be during a normal working day. The resulting loss of efficiency will, in some small way, hurt my employer.
By the time you add in simple things like language barriers, different cultural conventions, geographical gaps that make face-to-face contact difficult and time zone shifts that make any sort of real-time communication difficult, the default option (other things being equal) is always going to be using local staff. The problem, as the US official we're talking about perceives it, is that other things are currently sufficiently unequal to overcome the barriers and make outsourcing worthwhile (to some extent, if done carefully).
So what does the Poli Sci grad and ex-General Counsel for the ITAA think is the answer? Open the gates to more foreign workers, urged Cresanti, including H-1B holders.
But since he thinks the problem is that "there are not enough engineers with the appropriate skill sets", surely the long-term solution is to adjust your training and education regime so that there are enough such engineers? Hint to start with: degree courses in fields such as Computer Science and Software Engineering should not have teaching Visual Basic.Net and Java as the primary or only focus!
That's an interesting definition. Ignoring any technicalities about O'Reilly, I would have said that a lot of geeks (since no-one else knows or cares about the phrase "Web 2.0") would associate the term with:
the community/blog/open contribution concepts (Myspace, Digg, LiveJournal), and/or
the often-related "open" visual style (pale backgrounds, bright colours, rounded corners and fade effects, etc.)
To me, the use of AJAXy stuff seems almost peripheral to the contribution model or the general presentation style, but then I haven't seen Tim and co's official definitions...
Then (and this is the "well DUH" moment so listen carefully) a human being can visually check the footage and the licenced photos, and considering it's a police investigation, do the rest of the evidence gathering required to make a case against a suspect.
That's lovely, and as long as this sort of system is used as a way to make the human checkers' job easier and not an excuse to remove human checking from the system that's great. The problem is that systems like these often do get used to remove the human element. That does, after all, make systems more efficient and reduce costs, as long as you don't notice the people who get shafted due to false positives/negatives.
I live in the UK, where automatic number plate recognition (ANPR) technology, which is effectively OCR for car licence plates, is finding a lot of friends among the authorities. It is increasingly used in speed cameras that measure your average speed over a distance. It is used in supermarket car parks to check people aren't staying too long. It is used to monitor those entering the congestion charging zone in London.
The problem is that whatever checks are supposed to be there to prevent a machine screw-up becoming a false charge demonstrably don't work reliably in practice. There is a man who lives near me, quite elderly, who barely drives at all and hasn't been to London in many years. He has received not one but multiple fines for going into the London congestion charging zone without paying. (Yes, he has provided plenty of proof that he really was elsewhere at the time.) Perhaps this is down to some arsehole cloning the guy's number plate, and insufficient checks being made on the make and model of the vehicle to realise this. Perhaps it's down to poor scanning by the OCR software, which tends to read a 5 as an S from some angles, or doesn't understand some foreign plate formats. It doesn't really matter what caused it: the point is that the process has advanced from a flawed automatic diagnosis to sending formal penalty notices to an innocent old man, with insufficient checks and balances in between to spot the mistake.
Exactly the same risk exists with any automatic recognition system, including the facial recognition technology we're discussing here. Would anyone like to bet me that in a couple of years' time, the senior police officers in the area won't be on the news, proudly announcing the way they've both cut costs and reduced the number of licenses wrongly awarded thanks to a new system that immediately rejects anyone whose face matches (while quietly ignoring the increase in people wrongly rejected by the same process)?
This is where we must demand more from our authorities. Mistakes will always be made in real life, though of course we should try to minimise them, but what really counts is how fast you fix them, how easy it is for a wrongly accused party to clear their name, and how little distress is caused to them as a result.
Speaking as someone with (a) some common sense and (b) a formal CS background including image processing work, I think it's fair to say that it won't be zero.
I hope they have good procedures in place to immediately drop any proceedings against those who are misidentified, and that any automatic identification using this system is not somehow considered 100% reliable in court.
Please read my posts again. I am well aware of what an absolute majority is, and the difference between that and a simple majority. At no point have I defined an absolute majority incorrectly.
But you are still missing my point. If you have an absolute majority of the MPs in Parliament, then (in the absence of a rebellion) you can always force a simple majority in any given vote. That means you can always guarantee winning any vote that's not so controversial that your own party vote against you. It renders all other MPs irrelevant, except on the rare occasions that your own party won't follow your lead. That kind of power simply isn't justified by gaining the support of only 1/3 of those who voted in a general election, a mere 22% of the overall electorate, when around twice as many people voted for for those parties whose MPs are rendered irrelevant.
The GP is referring to your point that the UK is not a democracy in any sense of the word because Labour has the most MPs, as the GP said the public can still vote them out, so it's still a democracy
But you make my point for me... At the past general election, for example, the public did vote overwhelmingly for parties that didn't support ID cards at a time when it was a high profile issue. And yet, our current administration is forcing legislation through Parliament to introduce them and the associated database, and pretty openly and arrogantly saying that their intent is to have the whole thing so entrenched by the time of the next general election no other party that takes over will be able to repeal the legislation. If you can't get them out when they only have 22% of the electorate's support (or the support of around 1/3 of those who voted, if you prefer) and they can still dictate policy at that point then "you can vote them out" is clearly an overstatement.
I think you're missing my original point. An absolute majority in Parliament doesn't mean you win a vote. It means you can force winning a vote (unless you get caught out by rebels in your own party) regardless of what any opposition parties want to do and how many more people voted for them collectively than for your party.
Of course it's not a democracy. In a strict "one man, one vote" definition, a democracy should always act as the majority wish on any specific subject. But in practice, this only works in the presence of a completely informed and rational population, which you can never realistically achieve (regardless of good will) because of the sheer scale of what's involved.
Hence we commonly use the word "democracy" informally, to mean a government that acts according to the overall principles and intents of the population, yet without holding a referendum on each specific subject, and we elect representatives whose views are supposed to reflect those of the population to do the detail work. But Blair's Labour government isn't even that kind of democracy, as plenty of surveys show when you look at the government's position on controversial subjects such as Iraq or civil liberties vs. the general population's preferences.
Yes, that's how I intended the term to be used. Blair did not receive the backing of more than 50% of the electorate (nor even more than 50% of those who voted, for that matter) yet he has an outright majority of MPs, and can therefore force a win on any vote as long as he doesn't suffer a rebellion.
We don't have a democracy, in either the pure form (which is an unworkable ideal anyway) or the popular interpretation (which is much more sensible approach in practice).
Blair has an absolute majority of MPs in Parliament, which effectively means he can force through almost anything. That doesn't mean an absolute majority of the electorate support him. Remember, Labour lost the popular vote in England at the last general election, and even with the support of MPs from our neighbour countries to prop them up, they still only received around 1/3 of the overall popular vote.
Blair and co have gone about forcing laws through and creating legacies, but the simple fact is that they have no mandate to bring in the kinds of sweeping change they are championing, unless at the very least they also have support from the other main parties who brought in other people's votes. Clearly in many of these so-called anti-terrorism matters, they do not.
I have seen cases where rewriting a pretty trivial arithmetic expression in a tidier form worked fine on one machine, but completely broke the optimiser with a different compiler on a different OS, resulting in a subtle change in numerical outputs.
Then the test process is broken. Meaning, you deployed to a supported environment on which the tests were never run.
Not at all. In fact, it was our automated testing processes that picked that one up. But when your automated tests run on two dozen platforms, with the time to complete some test runs measured in days, the automated testing is something that happens weekly, not something individual developers can use every time they've lifted a method or adjusted a data structure.
In any case, this is rather peripheral to my point, which was simply that an attitude that you can make arbitrary changes to code and rely on tests to pick things up is a dangerous one. We have thousands of tests, accumulated over more than a decade, yet they barely scratch the surface of our application's complexity. We're working on mathematical libraries, and there are a provably infinite number of configurations we would have to test to be exhaustive.
In other words, in my world, automated unit testing is handy in that it often warns you about gross errors and lets you know when your approach has a fighting chance of working, but we still need various kinds of formal proof/review, walkthroughs of new algorithms, and the like before we consider it "tested".
First, TDD is not having "some tests in place". Perfect TDD means everything has a test - everything! Is it possible to have perfect TDD? I don't know, but I think it's possible to come close.
Not in my world. Things like proofs of algorithmic correctness, static code analysis tools and code reviews can consider infinite problem spaces. Automated testing is by its nature finite in what it tests. Since you cannot define our requirements in terms of a finite set of tests, you could not approach perfect TDD in our context.
I'm not sure what you're saying here. Are you suggesting that TDD means you don't do design work ahead of time?
I'm not saying that it necessarily implies that, but I am saying that a lot of developers with a poor understanding of the field go down that route because of that false sense of security I mentioned.
Remember, though, that this is a two-way street; if it's hard to adopt or hard to argue for, then maybe management/architects should rethink their reasons for requiring the standard.
That's very wise advice.
I'm currently contributing to a company-wide review of our own testing processes. Someone brought an example of a current manual used by part of our organisation, which ran to nearly 100 pages. I told them flat out that the moment they bring anything close to that anywhere close to our (generally smart and knowledgable) developers, they will lose any hope of credibility and developer buy-in.
Best practices are best practices because they make life better for the teams who follow them, not because some consultant stuck a pretty label on them in PowerPoint. (Of course, depending on individual responsibilities, some people may have to put up with a little more work to make things a lot easier for some of their colleagues for an overall net plus. However, IME these things tend to work in cycles, so if everyone buys in to help others out, then everyone ultimately sees some benefit.)
Let me be clear from the start that I have nothing against automated testing, nor against unit testing at a low level, nor against combining these two ideas.
However, I think it's important not to place inappropriate faith in them. I have heard senior programmers recite the mantra that you can refactor your code as much as you like, because as long as it still passes the unit tests, you know you didn't break anything. I look at those people and wonder how they got to those senior positions. Do they really believe that you can ever have an exhaustive set of unit tests, no matter what the context? I have seen cases where rewriting a pretty trivial arithmetic expression in a tidier form worked fine on one machine, but completely broke the optimiser with a different compiler on a different OS, resulting in a subtle change in numerical outputs.
IME the hard-core TDD advocates also have a false sense of security when it comes to design. Just because you have some tests in place, that does not mean you can design on-the-fly all the time, and suffer no overheads. There is a reason that good software engineers spend a lot of time designing and not much time writing code: it's because writing the code (and getting it right) is much easier with a clean architecture that's designed to be flexible and maintainable. Of course you can't plan everything up-front, but the whole "anything's OK as long as it passes our unit tests" approach is a recipe for endless headaches when your design starts to evolve, and can lead to weeks or months of wasted time later when a new feature can't just fit into the existing code because there's simply nowhere to fit it.
Assertions and compile-time safety, whatever you choose to call them in your particular language, are not unit tests. They are simply tools. Just because you code in your preconditions, that does not mean you are unit testing your code. You still need test cases that would trigger those assertions if something was wrong.
Testing isn't something that should be done at the end with your fingers crossed. Defects cost more to fix the longer you wait to have them exposed.
True on both counts, but these principles cut both ways: testing is also not a substitute for planning and maintaining a good overall design, and if your entire process revolves around the unit testing practices then any discrepancies between the (probably not crystal clear) requirements and what your unit tests expect are likely to be discovered horribly late in the process.
Sure, but combined with anonymity, that immediately implies that anyone can write anything about anyone without liability, as long as the original author remains anonymous. Other posts in this discussion have given examples about how this could be abused by news organisations trying to push an agenda; the leaking rumours about new Apple hardware that were mentioned on Slashdot a few months back come to mind as another possible case.
Moreover, with the rise of on-line distribution of information, we have a new trend that the law doesn't really address at present: large-scale content providers whose profit model essentially relies on distributing content of dubious legality, who argue that they cannot realistically moderate all of that content, who therefore directly magnify the damage caused by any illegal content they are carrying, yet who remain completely isolated from any legal liability for that damage because of rulings such as this one. Regardless of any specific case, if the law allows someone to run a profitable model based on damaging others, I don't think it's appropriate to let "But we can't do anything about it, Your Honour!" stand as a defence.
Many alternative approaches are also viable legal positions, from a requirement to make a good faith effort to filter obviously illegal content, through compulsory moderation of some or all content, right up to saying "Well, sorry, you just can't run that damaging but profitable service then". Of course, the service provider might not like all of those alternatives, but laws should be written to protect the members of the society, and that may conflict with furthering the interests of business.
(As an aside, can anyone tell me why my GP post looks like a troll? It certainly wasn't meant as one, but has been modded as such, so I'm wondering if something isn't reading as I intended.)
Disclaimer: I can't RTFA for some reason, so I'm only going on the summary here.
Rashly assuming that said summary is accurate, this seems like a dangerous ruling. It basically says that deliberately and directly propagating harmful untruths about someone on-line is OK. Surely the whole point of defamation laws is surely that spreading those harmful untruths around is, well, harmful, and therefore should not be permitted (and compensation due if that law is broken)?
Now, you can make strong arguments both ways about the responsibilities and freedoms of on-line service providers in relation to content supplied by others but hosted on or transmitted by the service provider's systems.
On the one hand, there is the "common carrier" argument: service providers don't know about or control the content and therefore shouldn't be held responsible for it. By extension, you have to consider that even if they do receive a complaint from someone, that person may or may not be justified in making that complaint, and it may or may not be appropriate for the service provider to censor content on request.
On the other hand, this is a huge legal loophole, which basically says that on-line free speech is completely unaccountable, even in cases like defamation where the same speech is clearly held by law to be an abuse in other contexts. In the current legal and technological climate, where a lengthy court process is required to get anything done about anything yet the information can spread very fast, there's simply no effective way for someone who is damaged by this sort of action to defend themselves.
The only way forward, as far as I can see, is to introduce fast-track legal processes that can resolve fairly straightforward cases quickly and relatively informally, following a similar principle to small claims courts. Such a legal framework could deal with all kinds of on-line abuses -- not least defamation and copyright infringement -- in a timely fashion, without resorting to appointing service providers to the role of courts.
To me, this makes far more sense than either attempting technological controls (as copyright holders are doing with DRM, for example) or just giving up (as frequently seems the case with defamation, and people offering bad advice on regulated subjects like health, law and finances). Of course, a healthy dose of population education, so that people don't just believe anything they see (particularly from an anonymous source on a random web site or chat room) wouldn't do any harm, either.
Speaking as Mr UK National Average (including being white), I'm genuinely sorry you feel that way, though I can understand why you do. Personally, I've never really understood racism; many of the nicest, most friendly/helpful/considerate people I've met in my life have not been whites, so I guess I just have no frame of reference for characterising such people as undesirable.
I think the problem is that once people with a certain bias get into power, they tend to administratively procreate, and the result after a few generations can be a systemic weakness greater than a few individual problems. The only solution to this problem is a mass cull of the bad material, as you tend to get when a political administration becomes unpopular and an opposition party then wins a landslide victory for example.
Of course, this approach only works at the elected levels. If you have local authorities -- police, education, city planners, or whoever -- who aren't directly accountable to the electorate, getting rid of bad blood is a lot harder. Usually the problem has to get so bad that those who are politically accountable start to intervene directly and clean things up at the lower levels from on high, and at the very least, that usually takes a lot of time.
The one comfort I find in this, whether we're talking about discrimination such as racism or sexism or we're just talking about public officials whose personal prejudices outweigh making balanced and unbiased decisions in the public interest, is that sooner or later reality always seems to assert itself and the fools get kicked out of office.
In fact, some British universities (Cambridge, for example) are so old that they have bizarre/amusing legal trivia of their own. IIRC, the Proctors at Cambridge (who are senior university officials) technically have the authority of a constable and not a member of the public, while various public authorities including the police themselves may not enter the grounds of certain colleges without the advance permission of the Master or Head Porter. (Your vague memories may vary; please check the books before relying on this!)
In a sense, Slashdot is indeed a forerunner of the Web 2.0 collective contribution model. I think the key distinction is that on Slashdot, the front page stories are still chosen by the editors.
I'm afraid you're making your usual mistake of assuming that the whole software development industry works like the relatively small part of it where you've worked. For other major programming areas -- such as scientific data analysis, instrument control and embedded firmware, games, graphical display, systems programming, and countless smaller and more theoretical fields -- VB and Java are just about the last things anyone would want.
Yes and no.
Of course communication via various media is now much easier, but there is always an inherent advantage in using home-grown resources. I'm expecting to work a ten-hour day tomorrow. Why? Because I have a meeting tomorrow morning UK time, and a meeting tomorrow afternoon US time. I don't object to this on the basis of working hours -- my employer is reasonable about flexitime, and I will have a short day some other time to make up for it -- but it's inevitable that I will not be as sharp after 9-10 hours of work as I would be during a normal working day. The resulting loss of efficiency will, in some small way, hurt my employer.
By the time you add in simple things like language barriers, different cultural conventions, geographical gaps that make face-to-face contact difficult and time zone shifts that make any sort of real-time communication difficult, the default option (other things being equal) is always going to be using local staff. The problem, as the US official we're talking about perceives it, is that other things are currently sufficiently unequal to overcome the barriers and make outsourcing worthwhile (to some extent, if done carefully).
But since he thinks the problem is that "there are not enough engineers with the appropriate skill sets", surely the long-term solution is to adjust your training and education regime so that there are enough such engineers? Hint to start with: degree courses in fields such as Computer Science and Software Engineering should not have teaching Visual Basic.Net and Java as the primary or only focus!
That's an interesting definition. Ignoring any technicalities about O'Reilly, I would have said that a lot of geeks (since no-one else knows or cares about the phrase "Web 2.0") would associate the term with:
To me, the use of AJAXy stuff seems almost peripheral to the contribution model or the general presentation style, but then I haven't seen Tim and co's official definitions...
Blockquoth the AC:
That's lovely, and as long as this sort of system is used as a way to make the human checkers' job easier and not an excuse to remove human checking from the system that's great. The problem is that systems like these often do get used to remove the human element. That does, after all, make systems more efficient and reduce costs, as long as you don't notice the people who get shafted due to false positives/negatives.
I live in the UK, where automatic number plate recognition (ANPR) technology, which is effectively OCR for car licence plates, is finding a lot of friends among the authorities. It is increasingly used in speed cameras that measure your average speed over a distance. It is used in supermarket car parks to check people aren't staying too long. It is used to monitor those entering the congestion charging zone in London.
The problem is that whatever checks are supposed to be there to prevent a machine screw-up becoming a false charge demonstrably don't work reliably in practice. There is a man who lives near me, quite elderly, who barely drives at all and hasn't been to London in many years. He has received not one but multiple fines for going into the London congestion charging zone without paying. (Yes, he has provided plenty of proof that he really was elsewhere at the time.) Perhaps this is down to some arsehole cloning the guy's number plate, and insufficient checks being made on the make and model of the vehicle to realise this. Perhaps it's down to poor scanning by the OCR software, which tends to read a 5 as an S from some angles, or doesn't understand some foreign plate formats. It doesn't really matter what caused it: the point is that the process has advanced from a flawed automatic diagnosis to sending formal penalty notices to an innocent old man, with insufficient checks and balances in between to spot the mistake.
Exactly the same risk exists with any automatic recognition system, including the facial recognition technology we're discussing here. Would anyone like to bet me that in a couple of years' time, the senior police officers in the area won't be on the news, proudly announcing the way they've both cut costs and reduced the number of licenses wrongly awarded thanks to a new system that immediately rejects anyone whose face matches (while quietly ignoring the increase in people wrongly rejected by the same process)?
This is where we must demand more from our authorities. Mistakes will always be made in real life, though of course we should try to minimise them, but what really counts is how fast you fix them, how easy it is for a wrongly accused party to clear their name, and how little distress is caused to them as a result.
Speaking as someone with (a) some common sense and (b) a formal CS background including image processing work, I think it's fair to say that it won't be zero.
I hope they have good procedures in place to immediately drop any proceedings against those who are misidentified, and that any automatic identification using this system is not somehow considered 100% reliable in court.
Please read my posts again. I am well aware of what an absolute majority is, and the difference between that and a simple majority. At no point have I defined an absolute majority incorrectly.
But you are still missing my point. If you have an absolute majority of the MPs in Parliament, then (in the absence of a rebellion) you can always force a simple majority in any given vote. That means you can always guarantee winning any vote that's not so controversial that your own party vote against you. It renders all other MPs irrelevant, except on the rare occasions that your own party won't follow your lead. That kind of power simply isn't justified by gaining the support of only 1/3 of those who voted in a general election, a mere 22% of the overall electorate, when around twice as many people voted for for those parties whose MPs are rendered irrelevant.
No, because in our country both wolves voted to eat lamb, but the lamb still had wolf stew.
But you make my point for me... At the past general election, for example, the public did vote overwhelmingly for parties that didn't support ID cards at a time when it was a high profile issue. And yet, our current administration is forcing legislation through Parliament to introduce them and the associated database, and pretty openly and arrogantly saying that their intent is to have the whole thing so entrenched by the time of the next general election no other party that takes over will be able to repeal the legislation. If you can't get them out when they only have 22% of the electorate's support (or the support of around 1/3 of those who voted, if you prefer) and they can still dictate policy at that point then "you can vote them out" is clearly an overstatement.
I think you're missing my original point. An absolute majority in Parliament doesn't mean you win a vote. It means you can force winning a vote (unless you get caught out by rebels in your own party) regardless of what any opposition parties want to do and how many more people voted for them collectively than for your party.
Of course it's not a democracy. In a strict "one man, one vote" definition, a democracy should always act as the majority wish on any specific subject. But in practice, this only works in the presence of a completely informed and rational population, which you can never realistically achieve (regardless of good will) because of the sheer scale of what's involved.
Hence we commonly use the word "democracy" informally, to mean a government that acts according to the overall principles and intents of the population, yet without holding a referendum on each specific subject, and we elect representatives whose views are supposed to reflect those of the population to do the detail work. But Blair's Labour government isn't even that kind of democracy, as plenty of surveys show when you look at the government's position on controversial subjects such as Iraq or civil liberties vs. the general population's preferences.
Yes, that's how I intended the term to be used. Blair did not receive the backing of more than 50% of the electorate (nor even more than 50% of those who voted, for that matter) yet he has an outright majority of MPs, and can therefore force a win on any vote as long as he doesn't suffer a rebellion.
We don't have a democracy, in either the pure form (which is an unworkable ideal anyway) or the popular interpretation (which is much more sensible approach in practice).
Blair has an absolute majority of MPs in Parliament, which effectively means he can force through almost anything. That doesn't mean an absolute majority of the electorate support him. Remember, Labour lost the popular vote in England at the last general election, and even with the support of MPs from our neighbour countries to prop them up, they still only received around 1/3 of the overall popular vote.
Blair and co have gone about forcing laws through and creating legacies, but the simple fact is that they have no mandate to bring in the kinds of sweeping change they are championing, unless at the very least they also have support from the other main parties who brought in other people's votes. Clearly in many of these so-called anti-terrorism matters, they do not.
You don't think Microsoft machines run Windows?
Well, I suppose if they've banned SourceSafe...
Not at all. In fact, it was our automated testing processes that picked that one up. But when your automated tests run on two dozen platforms, with the time to complete some test runs measured in days, the automated testing is something that happens weekly, not something individual developers can use every time they've lifted a method or adjusted a data structure.
In any case, this is rather peripheral to my point, which was simply that an attitude that you can make arbitrary changes to code and rely on tests to pick things up is a dangerous one. We have thousands of tests, accumulated over more than a decade, yet they barely scratch the surface of our application's complexity. We're working on mathematical libraries, and there are a provably infinite number of configurations we would have to test to be exhaustive.
In other words, in my world, automated unit testing is handy in that it often warns you about gross errors and lets you know when your approach has a fighting chance of working, but we still need various kinds of formal proof/review, walkthroughs of new algorithms, and the like before we consider it "tested".
Not in my world. Things like proofs of algorithmic correctness, static code analysis tools and code reviews can consider infinite problem spaces. Automated testing is by its nature finite in what it tests. Since you cannot define our requirements in terms of a finite set of tests, you could not approach perfect TDD in our context.
I'm not saying that it necessarily implies that, but I am saying that a lot of developers with a poor understanding of the field go down that route because of that false sense of security I mentioned.
I'll comment more on this in my reply to a sibling post to yours later.
That's very wise advice.
I'm currently contributing to a company-wide review of our own testing processes. Someone brought an example of a current manual used by part of our organisation, which ran to nearly 100 pages. I told them flat out that the moment they bring anything close to that anywhere close to our (generally smart and knowledgable) developers, they will lose any hope of credibility and developer buy-in.
Best practices are best practices because they make life better for the teams who follow them, not because some consultant stuck a pretty label on them in PowerPoint. (Of course, depending on individual responsibilities, some people may have to put up with a little more work to make things a lot easier for some of their colleagues for an overall net plus. However, IME these things tend to work in cycles, so if everyone buys in to help others out, then everyone ultimately sees some benefit.)
Let me be clear from the start that I have nothing against automated testing, nor against unit testing at a low level, nor against combining these two ideas.
However, I think it's important not to place inappropriate faith in them. I have heard senior programmers recite the mantra that you can refactor your code as much as you like, because as long as it still passes the unit tests, you know you didn't break anything. I look at those people and wonder how they got to those senior positions. Do they really believe that you can ever have an exhaustive set of unit tests, no matter what the context? I have seen cases where rewriting a pretty trivial arithmetic expression in a tidier form worked fine on one machine, but completely broke the optimiser with a different compiler on a different OS, resulting in a subtle change in numerical outputs.
IME the hard-core TDD advocates also have a false sense of security when it comes to design. Just because you have some tests in place, that does not mean you can design on-the-fly all the time, and suffer no overheads. There is a reason that good software engineers spend a lot of time designing and not much time writing code: it's because writing the code (and getting it right) is much easier with a clean architecture that's designed to be flexible and maintainable. Of course you can't plan everything up-front, but the whole "anything's OK as long as it passes our unit tests" approach is a recipe for endless headaches when your design starts to evolve, and can lead to weeks or months of wasted time later when a new feature can't just fit into the existing code because there's simply nowhere to fit it.
Assertions and compile-time safety, whatever you choose to call them in your particular language, are not unit tests. They are simply tools. Just because you code in your preconditions, that does not mean you are unit testing your code. You still need test cases that would trigger those assertions if something was wrong.
True on both counts, but these principles cut both ways: testing is also not a substitute for planning and maintaining a good overall design, and if your entire process revolves around the unit testing practices then any discrepancies between the (probably not crystal clear) requirements and what your unit tests expect are likely to be discovered horribly late in the process.
Do you actually mean statistics, or do you mean probability, optimisation, or other related fields?