Having worked on machines with thousands of CPUs, I disagree. The thin that Linus is missing (IMO) is that modern GPUs are no longer "graphics processors" but are actually quite powerful MPP supercomputers, and there are millions of them out there, and applications are increasingly being written to take advantage of them.
He's right that putting many extremely expensive, power-hungry Intel CPUs in a single box isn't a good tradeoff except in very specific cases. Luckily it's actually quite cheap to add large numbers of cheap, high performance CPUs to a computer, and in fact they're likely already there, so the cost of using them is $0 for hardware, just some developer effort. So the question is simply whether developers should ignore all those CPUs and use only the main CPU, or they should learn how to use the supercomputer sitting on the graphics card.
It's not "hard to parallelize one application". It's just a matter of learning to think that way. Once you do, nearly all problems parallelize well.
For example, consider video games. Most of them have hundreds or thousands of AIs and game objects that can run in parallel. Heck, even word processing renders thousands of characters to the screen, which can be done in parallel. Sorting, searching, indexing, all parallelize. Of course, as lot as it's considered "hard" developers won't do it, except in the highest value cases (e.g. video processing, graphics) but that's a matter of tooling. In languages/compilers that are designed for parallelism, it's easy. It's just hard in C++ because as a language it makes parallelism very hard. Compare to FORTRAN 90, or C*.
They're all parallel processing, just on different units of storage. Processing 1,000 files in parallel is parallel. Processing 1 file using 1,000 parallel processes is parallel.
Pagination can be largely parallelized, because you can do most of the analysis (line layout, font rendering, etc.) in parallel. The only part that's got to be sequential is breaking the lines onto pages. You can then parallelize the rest of the page layout (headers, etc.).
This is only true if you're unable to use more than one CPU chip in your computer, a hurdle that was overcome 30 years ago.:-) People have been running multiple CPUs to improve performance for a _long_ time.
The real question is - would you rather have multiple CPUs at the price/performance peak, or one CPU that's a bit faster for a much higher price. Typically getting 2x performance costs 4x or so, making 2 cheap CPUs a much better deal than one really expensive CPU.
In the real world the tradoff is dollars (or power consumption, for mobile devices). So the question is - should you buy a 2x faster CPU for 4x the cost and 4x the power consumption, or should you buy 2 cores for 2x the cost and 2x the power consumption?
For applications that only run single-threaded, you don't have a choice - you have to buy the fastest CPU you can. But for well-written applications, more cores is a cheaper, more power efficient way to scale performance.
It's not a technical issue, it's a "chicken and egg" market issue. Many desktop applications _would_ run very well on massively parallel hardware, but that's not what people have, so it's not what developers target. And since games are written not to use more CPUs, people don't buy computers with many CPUs. And because MPP hardware is a niche, mainstream developers have no idea how to program for them, much less to think about what problems would run well in parallel.
From a technical perspective, which I think Linus is trying to argue from, many desktop applications could easily take advantage of massive parallelism. Once you start thinking in terms of data parallelism or agent parallelism, almost all problems decompose in ways that parallelize nicely. For example, there are hundreds of AIs and simulation objects in many games, and each could run on a CPU (or process or thread). Video and image processing are "embarrassingly parallel", and now that people edit video at home, they could happily consume all the CPU you have. Sorting, searching, indexing, scrolling in documents, rendering characters to the screen - all very parallel.
Luckily the "graphics processors" are breaking out of the "chicken and egg" trap. The better GPUs are now not really "graphics processors", they are fully general MPP CPUs, and many applications are taking advantage of them. Interestingly this architecture is similar (at a high level) to the MPP supercomputers from decades ago. The Thinking Machines' Connection Machine had a fast front-end computer, controlling an array of thousands of tens of thousands of CPUs that did the heavy lifting, and now it's your CPU controlling an array of CPUs in your "GPU". So millions of PCs are MPP, even though their owners probably don't think of them that way. And this is leading to more and more applications taking advantage of MPP!
So I think that Linux is wrong, in that he's missed that what he's dismissing as GPUs are actually MPP co-processors that are astoundingly powerful and are increasingly being taken advantage of by developers when performance matters.
Faster switching requires more power. Doubling clock speed consumes (roughly) 4x the energy, which is why doing the work in two slower cores is much more power efficient. That's one of the reasons that mobile devices that are power constrained run at slower clock speeds than desktop devices.
Thinking Machines did this. We had one front-end CPU that ran the sequential process that controlled everything, and thousands of parallel CPUs that did all of the heavy lifting by processing the data in parallel. For large data problems, it worked extremely well. Yes, at any given time some CPUs might not be doing work because they're waiting for other CPUs, but when you're pushing the performance (e.g. processing TB of data, doing PFLOPS) the cost of making a single CPU faster goes up much faster than the performance increase and then becomes impossible, while piling up more CPUs the performance goes up linearly. Of course, some problems don't parallelize in obvious ways, but IMO anything running on large data sets can be parallelized if you look at it right.
Luckily things like rendering graphics, sorting, searching, running web sites, many crypto problems, simulations, games, image processing, video processing, etc., parallelize really well. Admittedly it takes some cleverness to write a sort algorithm that runs on thousands of CPUs in parallel, but it's valuable to have a constant-time sort (i.e. you can scale hardware linearly with the data size, and sort arbitrary amounts of data in fixed time). The main challenge that parallel computing has, IMO, is that most programmers don't think that way, similar to how most programmers don't think in terms of multi-threading. But that's a matter of education. People used to be terribly confused by event-based programming frameworks, too!
Once you start thinking in terms of having thousands or millions of (virtual) CPUs, and decomposing problems to run in parallel based on data or actors, pretty much everything becomes highly scalable.
The debate between 1K = 1,000 and 1K=1,024 has been going on for decades. As long as the terms are precisely defined, I don't think there's a case there. And Apple documents exactly how much storage each of their devices comes with, including the footnote that "1GB = 1 billion bytes; actual formatted capacity less." I wouldn't expect a consumer device to get into the details of directory blocks, etc. If a consumer wants to know how much storage the device has available, they can easily check by looking in Settings / General / Usage, and it shows the exact storage used and available. They'll even show you how much storage is used by each app, and for some apps (e.g. videos, podcasts) you can drill down into individual files in the app and delete them. It's really, really easy to manage storage in iOS 8.
"You mean like how when Apple purposefully degrades the performance of older iOS devices when a new iOS version is out"
Example? So far (and I've run every iOS release) they do the opposite - they allow a much wider range of devices to upgrade than any other consumer electronics company. I have several Android devices, and new OS release support is spotty, because it's dependent on manufacturer and carrier QA, while Apple is the manufacturer, and got the carriers to allow Apple to push software straight to users without going through telco gatekeepers.
Apple does disable new features that run badly on older hardware, such as Siri only being available on newer phones, but that's the opposite of degrading - it's protecting users from degraded performance. So, as is typical with Apple, they'd rather deliver less functionality, with better performance, while Google goes the opposite direction - all sorts of functionality, but iffy performance. Both strategies are legitimate, and suit different kinds of users.
I've seen the bug reports. The largest causes of bugs in Android and WinCE is managing multiple apps (memory, etc.), which Apple automatically manages pretty aggressively, nearly eliminating those issues (basically by forcing developers to manage resources very tightly or have their apps shut down by the OS, which means that they get good at managing resources). After that are Flash and Java, which therefore Apple eliminated. And after that is managing removable storage. Consumers (i.e. not engineers) don't want to deal with their phone like a "computer" with files on volumes, copying files around, etc. so as much as possible Apple strips the user experience down to the minimum.
For a comparison, look at what it takes to play video files on iOS and Android. On iOS, you load the video into iTunes, and synch it to your mobile device and it plays. On Android, you plug the device into USB, mount the filesystem, copy the video file. Then you run into the issue of format compatibility - you have to install different players to play different formats. And, weirdly, they expect the files to be in different directories for different players. It's not impossible to get working - I installed VLC, DivX, etc., and pretty much got everything working - but I'm an experienced engineer who knows how to dig around linux filesystems, etc. The whole process is way too messy for non-technical people. As far as I can tell, normal people using Android devices end up just using Hulu and Netflix and Amazon Instant Video, because they're properly managed. Oddly enough, making the same tradeoff Apple users make with iTunes - Apple keeps things organized and working properly, but they limit your options - you can only play a few specific formats and resolutions, and everyone knows and supports that, so it's predictable.
So yes, Apple limits options in iOS. In a phone, that's a reasonable tradeoff - they get consistent behavior, and a simple user interaction model, which is what most people want on a phone. If you want a general purpose computer, with the associated complexity and control, Apple would be happy to sell you a computer.:-)
Worse, it adds significant complexity to have to different physical sets of storage.
And it also means that they would need to get an over-sized OS storage volume just to have room for future features, meaning that you'd have wasted/unused storage in your device, driving up the cost and power consumption, getting nothing in return until some hypothetical future date when the OS might grow to use that space. And if there's no such wasted space now, that means that the OS new features are constrained to fit into the current storage, so the OS won't have features that it could otherwise have.
It's really much better for users to have one storage device, with the OS and user data sharing it, so that you can use 100% of the storage for whatever mix of OS and user data you happen to have.
Apple clearly documents the storage capacity of the phones, and if you read the details, they explain that the OS uses up some of that storage, so you have less than that available to you. Of course, the same is true of virtually all phones, tablets, laptops and desktop computers. And OSs have all gotten larger as they add features. So the only reason that they're suing Apple is that Apple's very successful and profitable, so they're a target for lawsuits. And given that lawsuits are cheap to file, and the potential payoff (if they manage to somehow win) would be huge, so it's not surprising that they'd try. But it's still a stupid argument. Yes, 16 GB is not a lot of storage if you want to run apps, shoot video, watch movies, etc. That's why they sell phones with more storage.
If you read the rest of the lawsuit, it gets even stupider. They claim that Apple's trying to force people to use iCloud storage. Of course, by default iPhones synch your media to your computer every time you plug in, which clears up your phone's space (assuming you opt to delete the media from your phone after it's transferred), and it does it for free.
Nope. If you want to actually affect the outcome of the election, the optimal strategy is to vote for the candidate that you like the most out of the two viable candidates. If you vote for anyone else, that's a wasted vote. Worse, because you didn't vote for your preferred viable candidate, your throwing away your vote cost the one you prefer a vote, effectively giving a vote to whoever you dislike the most.
If you really don't care which candidate wins, then you're not paying attention. Sure, neither candidate is perfect, particularly the ones that can make it through the process, but do you _really_ think that Gore would have done exactly the same thing that Bush Jr did? Idiots voting for a third party candidate threw that election, and the result was horrible. Please don't encourage that behavior in the future.
The difference, of course, is that a camera will accurately report what it sees. Police can, if the like, say whatever they feel they need to say to make a case. So if the police will freely lie about your behavior, you might as well put up a fight, because you might win. If the camera will show you being cooperative, you can trust that as being reliable evidence. And I'd hope that in court, the evidence of a digital camera (with timestamps and digital signatures, etc.) will trump witnesses, even police.
While most people on here are focusing on the police portion, the civilian portion is more damning. It shows the amount of crap police have to put up with by people who think they'll file a brutality report so they can not be held responsible for their actions."
You're assuming that police behavior didn't change, and that people lied when reporting police violence 87% of the time. Of course, the previous sentence in the report (which you didn't quote) said that the police reported using force 60% less often, which means that the actual use of force reduced significantly, and must account for a significant portion of the decrease in public complaints about police behavior.
The way to moderate that is to treat disabling a camera as admission of guilt by whoever turned off the camera for whatever happened while the camera was off. That gives the police an incentive to make sure that the cameras are working, have a full charge, etc.
Given that you can make cameras that can record for days or weeks continuously, on a single charge, it should be possible to make them run reliably for the duration of a shift.
I'd think that privacy laws would apply to the footage. That is, unless the footage is released because it's relevant, they shouldn't be publishing all footage of everyone who walked in front of a policeman. Though it'd be an interesting experiment - eliminating all privacy for police and anyone near them. But I wouldn't want to live that way. But once the footage is relevant to a case, it should be public, just like any evidence used in a trial.
Then there's the question of who gets to decide what's relevant. That can't be the police, of course. Perhaps judges?
Number of times force was used dropped 59%, but that doesn't mean that represented 59% of police.
For example, imagine that 80% of police never used force, so the stats only related to the 20% that did. Which are typical numbers, based on other reports. So if the 20% of the officers who used force did so 59% less often with cameras, but still used force at least once a year, then the number of police using force wouldn't change, just the frequency with which they did so.
All of the wild speculation posted as if it were facts, by people who weren't there and this don't actually know what happened, is pretty good evidence that it'd be beneficial for police to wear body cameras that can't be disabled. Then if the truth were documented objectively, rather than the via the recollections of a bunch of people with imperfect memories and biases, then the situation would be better.
Revealing illegal government activity, on the other hand, appears to be relatively effective at triggering some change. Far more than reporting the illegal government to the employer and to the government, both of which Snowden did first, with no result at all.
If the government doesn't want people to "blow the whistle" publicly for their illegal activities, they might want to either consider not engaging in illegal activities, or responding to the notifications made through proper channels, so that people aren't forced to reveal the criminal activities publicly.
The question, of course, is whether it's legal for an NDA to require people to conceal illegal activities when their employer is trying to conceal them.
So are you arguing that the US is less secure now than it was in 1774? Back when we had almost nothing, fighting the globe-spanning England, we rejected torture as being against our principles. Now that we're the richest, most powerful country on the planet, "threatened" by terrorists (i.e. fighters without even the backing of a country) we're willing to give up our principles?
If you observe a several hundred year trend in global climate, which has dips up and down for years and even decades, a few years of a dip doesn't disprove the long-term trend.
Let's compare it to the stock market. It's been going up as a general trend for decades, making stocks a generally very good investment with great long-term returns. There were certainly years where stocks went down, and certainly many individual stocks that collapsed, but that doesn't mean that stocks don't go up, or won't go up, just that some years and specific stocks deviated from the long-term trend.
Having worked on machines with thousands of CPUs, I disagree. The thin that Linus is missing (IMO) is that modern GPUs are no longer "graphics processors" but are actually quite powerful MPP supercomputers, and there are millions of them out there, and applications are increasingly being written to take advantage of them.
He's right that putting many extremely expensive, power-hungry Intel CPUs in a single box isn't a good tradeoff except in very specific cases. Luckily it's actually quite cheap to add large numbers of cheap, high performance CPUs to a computer, and in fact they're likely already there, so the cost of using them is $0 for hardware, just some developer effort. So the question is simply whether developers should ignore all those CPUs and use only the main CPU, or they should learn how to use the supercomputer sitting on the graphics card.
It's not "hard to parallelize one application". It's just a matter of learning to think that way. Once you do, nearly all problems parallelize well.
For example, consider video games. Most of them have hundreds or thousands of AIs and game objects that can run in parallel. Heck, even word processing renders thousands of characters to the screen, which can be done in parallel. Sorting, searching, indexing, all parallelize. Of course, as lot as it's considered "hard" developers won't do it, except in the highest value cases (e.g. video processing, graphics) but that's a matter of tooling. In languages/compilers that are designed for parallelism, it's easy. It's just hard in C++ because as a language it makes parallelism very hard. Compare to FORTRAN 90, or C*.
They're all parallel processing, just on different units of storage. Processing 1,000 files in parallel is parallel. Processing 1 file using 1,000 parallel processes is parallel.
Pagination can be largely parallelized, because you can do most of the analysis (line layout, font rendering, etc.) in parallel. The only part that's got to be sequential is breaking the lines onto pages. You can then parallelize the rest of the page layout (headers, etc.).
This is only true if you're unable to use more than one CPU chip in your computer, a hurdle that was overcome 30 years ago. :-) People have been running multiple CPUs to improve performance for a _long_ time.
The real question is - would you rather have multiple CPUs at the price/performance peak, or one CPU that's a bit faster for a much higher price. Typically getting 2x performance costs 4x or so, making 2 cheap CPUs a much better deal than one really expensive CPU.
In the real world the tradoff is dollars (or power consumption, for mobile devices). So the question is - should you buy a 2x faster CPU for 4x the cost and 4x the power consumption, or should you buy 2 cores for 2x the cost and 2x the power consumption?
For applications that only run single-threaded, you don't have a choice - you have to buy the fastest CPU you can. But for well-written applications, more cores is a cheaper, more power efficient way to scale performance.
It's not a technical issue, it's a "chicken and egg" market issue. Many desktop applications _would_ run very well on massively parallel hardware, but that's not what people have, so it's not what developers target. And since games are written not to use more CPUs, people don't buy computers with many CPUs. And because MPP hardware is a niche, mainstream developers have no idea how to program for them, much less to think about what problems would run well in parallel.
From a technical perspective, which I think Linus is trying to argue from, many desktop applications could easily take advantage of massive parallelism. Once you start thinking in terms of data parallelism or agent parallelism, almost all problems decompose in ways that parallelize nicely. For example, there are hundreds of AIs and simulation objects in many games, and each could run on a CPU (or process or thread). Video and image processing are "embarrassingly parallel", and now that people edit video at home, they could happily consume all the CPU you have. Sorting, searching, indexing, scrolling in documents, rendering characters to the screen - all very parallel.
Luckily the "graphics processors" are breaking out of the "chicken and egg" trap. The better GPUs are now not really "graphics processors", they are fully general MPP CPUs, and many applications are taking advantage of them. Interestingly this architecture is similar (at a high level) to the MPP supercomputers from decades ago. The Thinking Machines' Connection Machine had a fast front-end computer, controlling an array of thousands of tens of thousands of CPUs that did the heavy lifting, and now it's your CPU controlling an array of CPUs in your "GPU". So millions of PCs are MPP, even though their owners probably don't think of them that way. And this is leading to more and more applications taking advantage of MPP!
So I think that Linux is wrong, in that he's missed that what he's dismissing as GPUs are actually MPP co-processors that are astoundingly powerful and are increasingly being taken advantage of by developers when performance matters.
Faster switching requires more power. Doubling clock speed consumes (roughly) 4x the energy, which is why doing the work in two slower cores is much more power efficient. That's one of the reasons that mobile devices that are power constrained run at slower clock speeds than desktop devices.
Thinking Machines did this. We had one front-end CPU that ran the sequential process that controlled everything, and thousands of parallel CPUs that did all of the heavy lifting by processing the data in parallel. For large data problems, it worked extremely well. Yes, at any given time some CPUs might not be doing work because they're waiting for other CPUs, but when you're pushing the performance (e.g. processing TB of data, doing PFLOPS) the cost of making a single CPU faster goes up much faster than the performance increase and then becomes impossible, while piling up more CPUs the performance goes up linearly. Of course, some problems don't parallelize in obvious ways, but IMO anything running on large data sets can be parallelized if you look at it right.
Luckily things like rendering graphics, sorting, searching, running web sites, many crypto problems, simulations, games, image processing, video processing, etc., parallelize really well. Admittedly it takes some cleverness to write a sort algorithm that runs on thousands of CPUs in parallel, but it's valuable to have a constant-time sort (i.e. you can scale hardware linearly with the data size, and sort arbitrary amounts of data in fixed time). The main challenge that parallel computing has, IMO, is that most programmers don't think that way, similar to how most programmers don't think in terms of multi-threading. But that's a matter of education. People used to be terribly confused by event-based programming frameworks, too!
Once you start thinking in terms of having thousands or millions of (virtual) CPUs, and decomposing problems to run in parallel based on data or actors, pretty much everything becomes highly scalable.
The debate between 1K = 1,000 and 1K=1,024 has been going on for decades. As long as the terms are precisely defined, I don't think there's a case there. And Apple documents exactly how much storage each of their devices comes with, including the footnote that "1GB = 1 billion bytes; actual formatted capacity less." I wouldn't expect a consumer device to get into the details of directory blocks, etc. If a consumer wants to know how much storage the device has available, they can easily check by looking in Settings / General / Usage, and it shows the exact storage used and available. They'll even show you how much storage is used by each app, and for some apps (e.g. videos, podcasts) you can drill down into individual files in the app and delete them. It's really, really easy to manage storage in iOS 8.
"You mean like how when Apple purposefully degrades the performance of older iOS devices when a new iOS version is out"
Example? So far (and I've run every iOS release) they do the opposite - they allow a much wider range of devices to upgrade than any other consumer electronics company. I have several Android devices, and new OS release support is spotty, because it's dependent on manufacturer and carrier QA, while Apple is the manufacturer, and got the carriers to allow Apple to push software straight to users without going through telco gatekeepers.
Apple does disable new features that run badly on older hardware, such as Siri only being available on newer phones, but that's the opposite of degrading - it's protecting users from degraded performance. So, as is typical with Apple, they'd rather deliver less functionality, with better performance, while Google goes the opposite direction - all sorts of functionality, but iffy performance. Both strategies are legitimate, and suit different kinds of users.
I've seen the bug reports. The largest causes of bugs in Android and WinCE is managing multiple apps (memory, etc.), which Apple automatically manages pretty aggressively, nearly eliminating those issues (basically by forcing developers to manage resources very tightly or have their apps shut down by the OS, which means that they get good at managing resources). After that are Flash and Java, which therefore Apple eliminated. And after that is managing removable storage. Consumers (i.e. not engineers) don't want to deal with their phone like a "computer" with files on volumes, copying files around, etc. so as much as possible Apple strips the user experience down to the minimum.
For a comparison, look at what it takes to play video files on iOS and Android. On iOS, you load the video into iTunes, and synch it to your mobile device and it plays. On Android, you plug the device into USB, mount the filesystem, copy the video file. Then you run into the issue of format compatibility - you have to install different players to play different formats. And, weirdly, they expect the files to be in different directories for different players. It's not impossible to get working - I installed VLC, DivX, etc., and pretty much got everything working - but I'm an experienced engineer who knows how to dig around linux filesystems, etc. The whole process is way too messy for non-technical people. As far as I can tell, normal people using Android devices end up just using Hulu and Netflix and Amazon Instant Video, because they're properly managed. Oddly enough, making the same tradeoff Apple users make with iTunes - Apple keeps things organized and working properly, but they limit your options - you can only play a few specific formats and resolutions, and everyone knows and supports that, so it's predictable.
So yes, Apple limits options in iOS. In a phone, that's a reasonable tradeoff - they get consistent behavior, and a simple user interaction model, which is what most people want on a phone. If you want a general purpose computer, with the associated complexity and control, Apple would be happy to sell you a computer. :-)
Worse, it adds significant complexity to have to different physical sets of storage.
And it also means that they would need to get an over-sized OS storage volume just to have room for future features, meaning that you'd have wasted/unused storage in your device, driving up the cost and power consumption, getting nothing in return until some hypothetical future date when the OS might grow to use that space. And if there's no such wasted space now, that means that the OS new features are constrained to fit into the current storage, so the OS won't have features that it could otherwise have.
It's really much better for users to have one storage device, with the OS and user data sharing it, so that you can use 100% of the storage for whatever mix of OS and user data you happen to have.
Apple clearly documents the storage capacity of the phones, and if you read the details, they explain that the OS uses up some of that storage, so you have less than that available to you. Of course, the same is true of virtually all phones, tablets, laptops and desktop computers. And OSs have all gotten larger as they add features. So the only reason that they're suing Apple is that Apple's very successful and profitable, so they're a target for lawsuits. And given that lawsuits are cheap to file, and the potential payoff (if they manage to somehow win) would be huge, so it's not surprising that they'd try. But it's still a stupid argument. Yes, 16 GB is not a lot of storage if you want to run apps, shoot video, watch movies, etc. That's why they sell phones with more storage.
If you read the rest of the lawsuit, it gets even stupider. They claim that Apple's trying to force people to use iCloud storage. Of course, by default iPhones synch your media to your computer every time you plug in, which clears up your phone's space (assuming you opt to delete the media from your phone after it's transferred), and it does it for free.
Nope. If you want to actually affect the outcome of the election, the optimal strategy is to vote for the candidate that you like the most out of the two viable candidates. If you vote for anyone else, that's a wasted vote. Worse, because you didn't vote for your preferred viable candidate, your throwing away your vote cost the one you prefer a vote, effectively giving a vote to whoever you dislike the most.
If you really don't care which candidate wins, then you're not paying attention. Sure, neither candidate is perfect, particularly the ones that can make it through the process, but do you _really_ think that Gore would have done exactly the same thing that Bush Jr did? Idiots voting for a third party candidate threw that election, and the result was horrible. Please don't encourage that behavior in the future.
The difference, of course, is that a camera will accurately report what it sees. Police can, if the like, say whatever they feel they need to say to make a case. So if the police will freely lie about your behavior, you might as well put up a fight, because you might win. If the camera will show you being cooperative, you can trust that as being reliable evidence. And I'd hope that in court, the evidence of a digital camera (with timestamps and digital signatures, etc.) will trump witnesses, even police.
"and reports against officers dropped by 87% ...
While most people on here are focusing on the police portion, the civilian portion is more damning. It shows the amount of crap police have to put up with by people who think they'll file a brutality report so they can not be held responsible for their actions."
You're assuming that police behavior didn't change, and that people lied when reporting police violence 87% of the time. Of course, the previous sentence in the report (which you didn't quote) said that the police reported using force 60% less often, which means that the actual use of force reduced significantly, and must account for a significant portion of the decrease in public complaints about police behavior.
The way to moderate that is to treat disabling a camera as admission of guilt by whoever turned off the camera for whatever happened while the camera was off. That gives the police an incentive to make sure that the cameras are working, have a full charge, etc.
Given that you can make cameras that can record for days or weeks continuously, on a single charge, it should be possible to make them run reliably for the duration of a shift.
I'd think that privacy laws would apply to the footage. That is, unless the footage is released because it's relevant, they shouldn't be publishing all footage of everyone who walked in front of a policeman. Though it'd be an interesting experiment - eliminating all privacy for police and anyone near them. But I wouldn't want to live that way. But once the footage is relevant to a case, it should be public, just like any evidence used in a trial.
Then there's the question of who gets to decide what's relevant. That can't be the police, of course. Perhaps judges?
Number of times force was used dropped 59%, but that doesn't mean that represented 59% of police.
For example, imagine that 80% of police never used force, so the stats only related to the 20% that did. Which are typical numbers, based on other reports. So if the 20% of the officers who used force did so 59% less often with cameras, but still used force at least once a year, then the number of police using force wouldn't change, just the frequency with which they did so.
Make sense?
All of the wild speculation posted as if it were facts, by people who weren't there and this don't actually know what happened, is pretty good evidence that it'd be beneficial for police to wear body cameras that can't be disabled. Then if the truth were documented objectively, rather than the via the recollections of a bunch of people with imperfect memories and biases, then the situation would be better.
Revealing illegal government activity, on the other hand, appears to be relatively effective at triggering some change. Far more than reporting the illegal government to the employer and to the government, both of which Snowden did first, with no result at all.
If the government doesn't want people to "blow the whistle" publicly for their illegal activities, they might want to either consider not engaging in illegal activities, or responding to the notifications made through proper channels, so that people aren't forced to reveal the criminal activities publicly.
The question, of course, is whether it's legal for an NDA to require people to conceal illegal activities when their employer is trying to conceal them.
So are you arguing that the US is less secure now than it was in 1774? Back when we had almost nothing, fighting the globe-spanning England, we rejected torture as being against our principles. Now that we're the richest, most powerful country on the planet, "threatened" by terrorists (i.e. fighters without even the backing of a country) we're willing to give up our principles?
If you observe a several hundred year trend in global climate, which has dips up and down for years and even decades, a few years of a dip doesn't disprove the long-term trend.
Let's compare it to the stock market. It's been going up as a general trend for decades, making stocks a generally very good investment with great long-term returns. There were certainly years where stocks went down, and certainly many individual stocks that collapsed, but that doesn't mean that stocks don't go up, or won't go up, just that some years and specific stocks deviated from the long-term trend.