There's nothing inherently wrong with cloud storage services, as long as you understand that you get what you pay for. If you're getting free storage, well, you have to understand that at some point the provider may decide it doesn't make business sense to keep offering that same sweet deal. If it's a reputable provider, though, that's not so bad because they'll give you time to move it when they decide to shut down.
In addition, your little rant fails to recognize that local storage is far from failure-proof, and that while keeping your data safely backed up across multiple devices may (though I'm skeptical) be reasonably easy for the average slashdotter, it's not so simple for the average slashdotter's grandmother. There is huge value in online storage that automatically replicates the local copy of your data, with zero effort or maintenance. In addition, the fact is that unless the provider actively decides to delete your data, it's far, far safer replicated across two or three professionally-managed data centers than it is on your phone, or your laptop. Get your device smashed to bits? Still in the cloud. House burns down? Still in the cloud.
Personally, my most important data lives in four places: On my desktop hard drive, on my laptop's SSD, on my wife's laptop's SSD, and in Google Drive. All three of the computers automatically synchronize their storage with Drive, and the desktop has a cron job which creates periodic copy-on-write snapshots of the Drive-synced volume, so just in case Drive decides to delete all my stuff and syncs the deletions to my other machines, I still have those snapshots. Particularly sensitive files are password-encrypted with GnuPG.
I'll grant that the copy-on-write snapshotting bit of my solution isn't grandma-appropriate, but the rest of it is. There's actually a simple workaround to not having it: have Drive sync set up on two machines, but keep it turned off on one of them. Every few weeks, flip it off on one, check that everything looks like it's there and maybe check to see if there are news reports of Drive blowing away lots of peoples' data, then turn it on on the other. This also protects against user error; if you accidentally delete a bunch of stuff off of the machine that's syncing, it's still on the other one where sync is disabled. In all honesty, though, I think the odds of grandma's device dying are a lot higher than the cloud service provider losing the data, and while she's not going to have two machines and do the sync-flipping thingy, she's still going to be better off if it's in the cloud as well as on her device.
While I use Google Drive for this, it would work just as well with Dropbox, One Drive or any other cloud storage service.
And not only does using a cloud solution like this give me an always-up-to-date off-site copy of my data, it also gives me access to that data from anywhere, on any (trustworthy) device, as long as I can get Internet access.
Could I get most of this with USB drives and manual replication? Yes. But it would be a lot more work and the replication a lot more error-prone. I also wouldn't have access on as wide a range of devices. Most importantly, though, if I have to manually manage the replication, I won't. My backup copies will always be stale. The cloud solution is better.
Justin fought against SOPA, for privacy, and has published his rationale for every vote that he makes.
Publishing his rationale for every vote is awesome. I looked on his web site, though, and it appears that he only publishes them on Facebook. That probably works well for many, but it makes it hard to search and isn't nearly as nice as if he'd just put the same information on his web site. Kudos to him for explaining his votes, though.
That doesn't contradict what I said. You *really* need to learn something about this stuff. Of course, if you did you'd understand why economists almost universally condemn protectionism as counterproductive.
Also, you should read the link you gave me, particularly the bit under "Criticisms of GDP", where it points out that GDP is incorrectly used as a measure of social welfare, when it's really a measure of productivity. If you keep productivity constant but increase the cost of goods consumed (which is what you effectively do when you eliminate cheap imports), then you lower the standard of living even though GDP hasn't changed.
If you don't believe me, though, that's fine. If you live in the UK, you're about to experience it firsthand.
At best your code can explain what it's doing, but not why or how. I mean, it's great that I can see you frob and then swizzle. But why frob first and swizzle second? Why frob at all? Why not frobnicate instead?
dom
Sometimes those sorts of things do require explanations which can't be made clear through naming. Most of the time, though, good naming and good code structure can explain everything except the road-not-taken questions... and it's relatively rare that the road-not-taken choice is actually important enough, or has sufficient non-obvious rationale, that it requires explanation. If it does, by all means put it in a comment, though -- and note that that sort of comment *doesn't* tend to become obsolete.
Skype for linux is one of those innovations from a market leader that youd expect if other market leaders came out with similar products. For example, Crispy Creme donuts stuffed with gravel, or new mcdonalds bacon double wall spackle burger.
What's wrong with Skype being supported on Linux? Many enterprises are using Skype as a video conferencing solution, and lack of Linux support means that it doesn't cover all of the major platforms, which puts it at a competitive disadvantage to Google Hangouts. Cross-platform VC is important, and useful, particularly when it's integrated with calendaring and meeting room reservation systems (as both Hangouts and Skype are -- well, I assume Skype is integrated with meeting room reservations; Hangouts is).
Actually no, that IS how it works. It isn't up to the copyright owners to monitor every video sharing site or search through Youtube. It is the responsibility of the site that is providing the service to make sure they arent SERVING copyrighted content they haven't licensed it. That is what the PRO-IP act was for.
WTF are you smoking? The PRO-IP act did nothing to remove the safe harbor provisions for site owners, which was established in the DMCA. It increased infringement penalties and allowed the DoJ to proactively go after infringers, rather than relying on copyright owners to initiate action, but nowhere did it do anything to require site owners to police content.
You apparently think site owners should be responsible for policing user-posted content, which is fine for you, but that's not what the law says, and I think the DMCA Safe Harbor provisions are a very good thing myself. Without them, no organization would dare host a site that allowed user-uploaded content. Slashdot might have to shut down, for example, or risk having to police user posts for material from copyrighted books.
The most important comments are the ones that specify "why not".
Like complex mathematical derivations, that's another case where comments may be essential. My recommendation isn't to eschew all comments, it's to avoid duplicating in comments what can be just as clearly expressed in code... and to work hard to try to express the information in code rather than in comments. Doing so will make your code cleaner and much more maintainable.
My code isn't comment-free, but it is comment-light, and I think it has gotten much better since I adopted this policy (which, BTW, I should be clear that I didn't originate. I got the idea from one of Robert Martin's books on code craftsmanship.).
Some examples might help. Consider this case, where I had to write a comment to explain why not to do something. Or (to pick a section from the same file), look at this case which is interesting because the comment is very large -- as large as the code that it documents -- and because I think that without the comment it's really not clear why the code is doing what it's doing. I have toyed with various ways of refactoring that code to eliminate the need for the comment, but short of using something like a strategy pattern I can't find one that does the job. And even a strategy-based implementation would still require me to both ensure that the strategies are applied in the correct *order*, and to document what that order is.
Doh! I just noticed that that long comment has bit-rotted a little. It was originally written when the code only handled options 1, 3 and 6, so the concluding paragraph doesn't explain about options 2, 4 or 5, or why they're tested in the order they are. That example is an even better one than I thought, since it demonstrates both the need for and risks of explanatory comments.
That SoftKeymasterContext class, however, is an exception to the rule. It exists specifically to address a bunch of unusual corner cases and so it's not surprising that it requires much more explanation than 99% of code should. Here's a better example (chosen more or less at random from the same project) of what comment-free code should look like.
I have been working on some scientific simulator code and the comments have the math equations that a block of code is based on.
That is absolutely a case where comments are essential. Ideally, they should not only contain the equations, but something of the derivation of the mathematical expressions and the rationale behind their use. In some cases it *may* be possible to write code in such a way that the expression itself is clearly expressed in the code, so a comment specifying the expression would add nothing... but even in that case an explanation of why that expression is appropriate is essential for any future understanding of the code. And in many cases the constraints of the programming language to not allow easy, direct statement of the expression, either, and then the comment that contains the mathematical representation is essential.
I'm not claiming that it's always possible to eliminate comments, but they should be eliminated whenever it is possible, and whenever you find yourself needing a comment you *should* take a step back and see whether it's possible to make the code clear without one.
Uncommented code that needs comments is bad, but the best code doesn't need comments at all. If I write a piece of code that requires a comment to be understandable, that's a hint that I need to step back and rethink that code. Maybe name variables better. Maybe pull a chunk out into a separate function so I can name that (that's particularly useful with those one-line comments that explain the goal of a block of code). Maybe reorder or reorganize it so that it's clearer.
Sometimes, after all I can do, I still feel like I need a comment so I write one, trying to keep it as concise, accurate and readable (including formatting) as possible. But I always consider that a failure and know that if I were a better programmer I could have avoided it.
The reason it's a failure and that it's better to avoid writing comments if you can is because comments are much less well-maintained than the code they describe. That means that comments often become obsolete (what you called the "worst comments"). Comments that don't exist can't become obsolete.
Note that I'm talking here about internal comments, not interface documentation, and especially not Javadoc/Doxygen/etc. comments which are used to generate API documentation. Those are very valuable and should always be written. Even those should be kept concise, though, and redundancy should be avoided. There's no reason to restate the function signature. If the function and argument names are well-chosen, they can often stand on their own. Let them.
First: I've had to use style cop. It sucks.
But... we each have our own variation of 'style'; which can be seen here.
So, why not have a 'stylecop' that acts locally; on white space & comments? If I like 3 spaces, and you like 4; we can just get along. The style is formatted on view, not on compile.
This would also fix his problem: When he views it... it will 're-format' to something he likes to see.
Check out clang-format. It's by far the best code formatting tool I've used, and using it allows you to stop thinking about formatting. However, your idea of everyone reformatting the code all the time to their preferred style is silly. Set a project style, "document" it in a.clang-format file and require everyone to use it. Everyone working on a project can learn the project's style; the tool just helps to make sure that it's applied consistently.
I like to make people work harder to figure out what I did.
I used to get a chuckle out of doing that... but then I figured out that the guy working hard to understand my code later is almost always me. I strive to write clean, clear code with useful comments to avoid making myself work harder to figure out what I did. Sometimes it even works.
Linus doesn't pay them and isn't their boss. Their boss tells them it's their job to get the changes they want upstreamed into the kernel. Linus' job is to act as gatekeeper, to keep the code quality high... which includes demanding good, consistently-formatted comments.
I am a lifelong Democrat and it is Hillary's stance on the H-1B that will prevent me from voting for her. Seriously, she will not get my vote over this one issue. I even donated cash 8 times to President Obama's 2008 campaign but I will neither vote for her nor donate to her campaign over this one issue.
Just make sure your decision doesn't hand your state's electoral votes to Trump. I feel rather differently about Clinton than you do. I really, really dislike her, her ideology, her character, everything about her. As someone else on slashdot said a few weeks ago, though, I'm voting for her because I'm a single-issue voter and my issue is avoiding opening the seventh seal and ushering in the apocalypse.
People living in urban areas often substituted beer for water, blended wine with water or drank tea instead of water (I've read that Chinese laborers on the railroads avoided a lot of sickness because their affection for tea meant they drank boiled water)
Beer, wine and tea were all created as solutions to the problem of unsanitary water which was actively dangerous to drink. Up until the wide availability of relatively modern sanitation systems, most Europeans walked around constantly mildly drunk, because they didn't drink anything but alcoholic beverages -- the alcohol needed to kill off waterborne infectious diseases.
Most modern city dwellers have easy access to sanitary water, whether from the tap or (if they don't like the taste of tap water) from a wide variety of bottled waters. If they choose beer, wine or tea over water it's because they like it better, not because the water available to them is unsafe.
Prior to industrialization, people tended to live in rural areas and generally ate what was within a day or two's walk at most if not food that was raised around them, whether wild game or domestic agriculture (poultry, fowl eggs, pork, goat, lamb).
And without refrigeration they ate a lot of semi-rotten meat and produce, and got their water from rivers (into which people upstream dumped their effluent) or from open wells. They also often lacked much variety in their diets, especially during the winter months. You can easily eat *far* better than your ancestors did a few hundred years ago... and that's true even if you have a modest income and your ancestors were kings.
Ask your favorite mathematician about axiom of choice
Many years ago, I asked one of my profs if he "believed" in the AC. I found his response very insightful. He said, "I don't believe in infinite sets".
Infinities are clearly a very useful mathematical construct, but it's hard to argue that they have any physical reality, especially since it seems that the universe is fundamentally quantized and discrete. Unless, of course, it's not:-)
(Very roughly, the Axiom of Choice is an assumption about whether it's possible to select elements of an infinite collection of sets to produce a new infinite set. Actually, AC says this can be done with all sets, but it's easy to show that it can be done with finite sets, so the possibly-controversial implications are with respect to infinite sets.)
There were no employees left. Those 1,170 jobs are essentially new jobs. Yeah, they likely pay less with fewer benefits than the old company
I'd expect they pay more. Most of the old jobs were unskilled line jobs. Those have been replaced by a few highly skilled people maintaining and operating the automated factory line. Skilled work pays better than unskilled work, and has better benefits.
the thing is, 99% of the malware you run into is run-of-the-mill stuff.
Which Windows' built-in antivirus protection will stop.
I think you missed the point that Windows is a virus.
Did you even read the EULA before clicking to accept?
No, because I don't use Windows. I switched to Linux in 1999 and have never gone back. Well, these days I also use OS X.
But anyway, that's irrelevant, because in the context of this conversation Windows is a given. The question is, if you are already using Windows, whether or not you should also install an anti-virus product.
science has no business telling people how to live
Maybe, but it would still be better than allowing religion or money telling people how to live.
Not true. Both religion and money are useful forces in shaping a good society. Neither are flawless, but both are important.
Taking religion first, lets suppose for the sake of argument that there is no god and no fundamental truth behind it. What's left is a collection of ideas about morality and how to structure society which have been distilled over millenia of experience. Those ideas have actually been further refined by lots of philosophical thinking. None of this means that those ideas are perfect... but it does mean that they are workable. Many ideas derived from pure rationality, on the other hand, are completely unworkable as a basis of society. If you take a basic philosophy course it quickly becomes clear that much of philosophy is simply an attempt to define a consistent, logical foundation for the moral values that the human race has already discovered are good, in that they enable people to live together and prosper with some degree of happiness. And it also quickly becomes clear that no one has ever managed to find a set of axioms which can be applied logically that don't produce some sort of insanely amoral decisions.
Religion, stripped of the supernatural characteristics, is the distilled wisdom of history. Except where it's not. Religion is also fundamentally conservative in nature, using the dictionary definition of "conservative", not the rather twisted political form. That means that it attempts to resist change. Resisting change is bad when the change is good, and good when the change is bad. Religious values, therefore, act as a brake on social change. Except in theocracies they don't generally stop change, they just slow it down, giving society time to weigh and test.
A purely science-based society would change much, much more rapidly, and without some significant damping force would oscillate wildly as theories are tested and modified. Religion isn't the only sort of damping force that would work, but it's hard to see what else could do it as effectively.
As for money, while there is certainly plenty of scope for abuse by people with money, overall a capitalistic society serves its people better than any other economic structure because it optimizes for maximizing production of the goods that they need (and want), for the lowest possible input of resources and labor, leaving the most resources and labor possible available for producing other goods. We want our resources directed to the uses that generate the maximal benefit for the most people. There might be some mechanism that is better at doing that than free(ish) trade in competitive markets, but we haven't found it.
Further, the fact is that some people are somewhat better at figuring out what sorts of uses of resources will generate the greatest benefit, and it's a good thing to allow those sorts of people to accumulate and employ wealth to generate more wealth. And, to directly address your point, that does mean that allowing society's direction to be shaped by money, to some degree, is also a good thing, because money will flow to the operations that generate more money, by producing the most beneficial goods.
Obviously there's a lot of potential for money to be used in ways that don't generate benefits for society, because money itself is just a tool; it doesn't care how it's used. And there are also plenty of nooks and crannies in the financial infrastructure that allow the extraction of wealth by people who don't actually generate anything useful. But those really are the exception, not the rule. Also, allowing society to be directed solely by money is clearly not a good idea.
All of these forces have their place, and the conflict between them and debate about their relative useful influence is a good way to allow society to move carefully forward, gradually incorporating the lessons from science into a framework that remains based primarily on what is already known to work morally and productively.
I should be more specific, an IOMMU exclusively controlled by the CPU. In this case, the secure side necessarily controls it (or it wouldn't be secure), not the user side. This makes the user side at the secure side's mercy. A narrow interface would leave the radio secure, but would also make the user side secure from the radio.
The IOMMU is controlled by the CPU, by which I mean the AP (application processor). The non-secure mode software (EL0 and EL1) controls most of its configuration, including allocating DMA pages for the baseband, though it can't override the configuration provided by the secure mode (EL3). That's my understanding, anyway. Most of my work is at a slightly higher level.
*Bangs head against wall repeatedly*
Dude, calm down. You're going to hurt yourself.
There's nothing inherently wrong with cloud storage services, as long as you understand that you get what you pay for. If you're getting free storage, well, you have to understand that at some point the provider may decide it doesn't make business sense to keep offering that same sweet deal. If it's a reputable provider, though, that's not so bad because they'll give you time to move it when they decide to shut down.
In addition, your little rant fails to recognize that local storage is far from failure-proof, and that while keeping your data safely backed up across multiple devices may (though I'm skeptical) be reasonably easy for the average slashdotter, it's not so simple for the average slashdotter's grandmother. There is huge value in online storage that automatically replicates the local copy of your data, with zero effort or maintenance. In addition, the fact is that unless the provider actively decides to delete your data, it's far, far safer replicated across two or three professionally-managed data centers than it is on your phone, or your laptop. Get your device smashed to bits? Still in the cloud. House burns down? Still in the cloud.
Personally, my most important data lives in four places: On my desktop hard drive, on my laptop's SSD, on my wife's laptop's SSD, and in Google Drive. All three of the computers automatically synchronize their storage with Drive, and the desktop has a cron job which creates periodic copy-on-write snapshots of the Drive-synced volume, so just in case Drive decides to delete all my stuff and syncs the deletions to my other machines, I still have those snapshots. Particularly sensitive files are password-encrypted with GnuPG.
I'll grant that the copy-on-write snapshotting bit of my solution isn't grandma-appropriate, but the rest of it is. There's actually a simple workaround to not having it: have Drive sync set up on two machines, but keep it turned off on one of them. Every few weeks, flip it off on one, check that everything looks like it's there and maybe check to see if there are news reports of Drive blowing away lots of peoples' data, then turn it on on the other. This also protects against user error; if you accidentally delete a bunch of stuff off of the machine that's syncing, it's still on the other one where sync is disabled. In all honesty, though, I think the odds of grandma's device dying are a lot higher than the cloud service provider losing the data, and while she's not going to have two machines and do the sync-flipping thingy, she's still going to be better off if it's in the cloud as well as on her device.
While I use Google Drive for this, it would work just as well with Dropbox, One Drive or any other cloud storage service.
And not only does using a cloud solution like this give me an always-up-to-date off-site copy of my data, it also gives me access to that data from anywhere, on any (trustworthy) device, as long as I can get Internet access.
Could I get most of this with USB drives and manual replication? Yes. But it would be a lot more work and the replication a lot more error-prone. I also wouldn't have access on as wide a range of devices. Most importantly, though, if I have to manually manage the replication, I won't. My backup copies will always be stale. The cloud solution is better.
Justin fought against SOPA, for privacy, and has published his rationale for every vote that he makes.
Publishing his rationale for every vote is awesome. I looked on his web site, though, and it appears that he only publishes them on Facebook. That probably works well for many, but it makes it hard to search and isn't nearly as nice as if he'd just put the same information on his web site. Kudos to him for explaining his votes, though.
That doesn't contradict what I said. You *really* need to learn something about this stuff. Of course, if you did you'd understand why economists almost universally condemn protectionism as counterproductive.
Also, you should read the link you gave me, particularly the bit under "Criticisms of GDP", where it points out that GDP is incorrectly used as a measure of social welfare, when it's really a measure of productivity. If you keep productivity constant but increase the cost of goods consumed (which is what you effectively do when you eliminate cheap imports), then you lower the standard of living even though GDP hasn't changed.
If you don't believe me, though, that's fine. If you live in the UK, you're about to experience it firsthand.
we have a trade deficit with the EU, we're actually losing money by trading with it
You know that the former does not imply the latter, right? If you don't, you really, really need to study macroeconomics.
But all three of us agree more than we disagree. Splitting hairs about the last 5% disagreement, while ignoring 95% agreement.
We're programmers :-)
At best your code can explain what it's doing, but not why or how. I mean, it's great that I can see you frob and then swizzle. But why frob first and swizzle second? Why frob at all? Why not frobnicate instead?
dom
Sometimes those sorts of things do require explanations which can't be made clear through naming. Most of the time, though, good naming and good code structure can explain everything except the road-not-taken questions... and it's relatively rare that the road-not-taken choice is actually important enough, or has sufficient non-obvious rationale, that it requires explanation. If it does, by all means put it in a comment, though -- and note that that sort of comment *doesn't* tend to become obsolete.
Skype for linux is one of those innovations from a market leader that youd expect if other market leaders came out with similar products. For example, Crispy Creme donuts stuffed with gravel, or new mcdonalds bacon double wall spackle burger.
What's wrong with Skype being supported on Linux? Many enterprises are using Skype as a video conferencing solution, and lack of Linux support means that it doesn't cover all of the major platforms, which puts it at a competitive disadvantage to Google Hangouts. Cross-platform VC is important, and useful, particularly when it's integrated with calendaring and meeting room reservation systems (as both Hangouts and Skype are -- well, I assume Skype is integrated with meeting room reservations; Hangouts is).
Actually no, that IS how it works. It isn't up to the copyright owners to monitor every video sharing site or search through Youtube. It is the responsibility of the site that is providing the service to make sure they arent SERVING copyrighted content they haven't licensed it. That is what the PRO-IP act was for.
WTF are you smoking? The PRO-IP act did nothing to remove the safe harbor provisions for site owners, which was established in the DMCA. It increased infringement penalties and allowed the DoJ to proactively go after infringers, rather than relying on copyright owners to initiate action, but nowhere did it do anything to require site owners to police content.
You apparently think site owners should be responsible for policing user-posted content, which is fine for you, but that's not what the law says, and I think the DMCA Safe Harbor provisions are a very good thing myself. Without them, no organization would dare host a site that allowed user-uploaded content. Slashdot might have to shut down, for example, or risk having to police user posts for material from copyrighted books.
The most important comments are the ones that specify "why not".
Like complex mathematical derivations, that's another case where comments may be essential. My recommendation isn't to eschew all comments, it's to avoid duplicating in comments what can be just as clearly expressed in code... and to work hard to try to express the information in code rather than in comments. Doing so will make your code cleaner and much more maintainable.
My code isn't comment-free, but it is comment-light, and I think it has gotten much better since I adopted this policy (which, BTW, I should be clear that I didn't originate. I got the idea from one of Robert Martin's books on code craftsmanship.).
Some examples might help. Consider this case, where I had to write a comment to explain why not to do something. Or (to pick a section from the same file), look at this case which is interesting because the comment is very large -- as large as the code that it documents -- and because I think that without the comment it's really not clear why the code is doing what it's doing. I have toyed with various ways of refactoring that code to eliminate the need for the comment, but short of using something like a strategy pattern I can't find one that does the job. And even a strategy-based implementation would still require me to both ensure that the strategies are applied in the correct *order*, and to document what that order is.
Doh! I just noticed that that long comment has bit-rotted a little. It was originally written when the code only handled options 1, 3 and 6, so the concluding paragraph doesn't explain about options 2, 4 or 5, or why they're tested in the order they are. That example is an even better one than I thought, since it demonstrates both the need for and risks of explanatory comments.
That SoftKeymasterContext class, however, is an exception to the rule. It exists specifically to address a bunch of unusual corner cases and so it's not surprising that it requires much more explanation than 99% of code should. Here's a better example (chosen more or less at random from the same project) of what comment-free code should look like.
I have been working on some scientific simulator code and the comments have the math equations that a block of code is based on.
That is absolutely a case where comments are essential. Ideally, they should not only contain the equations, but something of the derivation of the mathematical expressions and the rationale behind their use. In some cases it *may* be possible to write code in such a way that the expression itself is clearly expressed in the code, so a comment specifying the expression would add nothing... but even in that case an explanation of why that expression is appropriate is essential for any future understanding of the code. And in many cases the constraints of the programming language to not allow easy, direct statement of the expression, either, and then the comment that contains the mathematical representation is essential.
I'm not claiming that it's always possible to eliminate comments, but they should be eliminated whenever it is possible, and whenever you find yourself needing a comment you *should* take a step back and see whether it's possible to make the code clear without one.
"Code quality high". Are you fracking kidding me! This is the Linux kernel we are talking about. The code is hacker crap!
It's better to stay silent and have people think you a fool than to open your mouth and remove all doubt.
I'm not claiming she's good... just that she's not insane.
Next worst are no comments.
I disagree.
Uncommented code that needs comments is bad, but the best code doesn't need comments at all. If I write a piece of code that requires a comment to be understandable, that's a hint that I need to step back and rethink that code. Maybe name variables better. Maybe pull a chunk out into a separate function so I can name that (that's particularly useful with those one-line comments that explain the goal of a block of code). Maybe reorder or reorganize it so that it's clearer.
Sometimes, after all I can do, I still feel like I need a comment so I write one, trying to keep it as concise, accurate and readable (including formatting) as possible. But I always consider that a failure and know that if I were a better programmer I could have avoided it.
The reason it's a failure and that it's better to avoid writing comments if you can is because comments are much less well-maintained than the code they describe. That means that comments often become obsolete (what you called the "worst comments"). Comments that don't exist can't become obsolete.
Note that I'm talking here about internal comments, not interface documentation, and especially not Javadoc/Doxygen/etc. comments which are used to generate API documentation. Those are very valuable and should always be written. Even those should be kept concise, though, and redundancy should be avoided. There's no reason to restate the function signature. If the function and argument names are well-chosen, they can often stand on their own. Let them.
First: I've had to use style cop. It sucks. But ... we each have our own variation of 'style'; which can be seen here.
So, why not have a 'stylecop' that acts locally; on white space & comments? If I like 3 spaces, and you like 4; we can just get along. The style is formatted on view, not on compile.
This would also fix his problem: When he views it... it will 're-format' to something he likes to see.
Check out clang-format. It's by far the best code formatting tool I've used, and using it allows you to stop thinking about formatting. However, your idea of everyone reformatting the code all the time to their preferred style is silly. Set a project style, "document" it in a .clang-format file and require everyone to use it. Everyone working on a project can learn the project's style; the tool just helps to make sure that it's applied consistently.
Use
for code comments.
Nah, don't comment out or ifdef out code. Just delete it. If you need to bring it back later, that's what version control is for.
I like to make people work harder to figure out what I did.
I used to get a chuckle out of doing that... but then I figured out that the guy working hard to understand my code later is almost always me. I strive to write clean, clear code with useful comments to avoid making myself work harder to figure out what I did. Sometimes it even works.
Linus doesn't pay them and isn't their boss. Their boss tells them it's their job to get the changes they want upstreamed into the kernel. Linus' job is to act as gatekeeper, to keep the code quality high... which includes demanding good, consistently-formatted comments.
I am a lifelong Democrat and it is Hillary's stance on the H-1B that will prevent me from voting for her. Seriously, she will not get my vote over this one issue. I even donated cash 8 times to President Obama's 2008 campaign but I will neither vote for her nor donate to her campaign over this one issue.
Just make sure your decision doesn't hand your state's electoral votes to Trump. I feel rather differently about Clinton than you do. I really, really dislike her, her ideology, her character, everything about her. As someone else on slashdot said a few weeks ago, though, I'm voting for her because I'm a single-issue voter and my issue is avoiding opening the seventh seal and ushering in the apocalypse.
People living in urban areas often substituted beer for water, blended wine with water or drank tea instead of water (I've read that Chinese laborers on the railroads avoided a lot of sickness because their affection for tea meant they drank boiled water)
Beer, wine and tea were all created as solutions to the problem of unsanitary water which was actively dangerous to drink. Up until the wide availability of relatively modern sanitation systems, most Europeans walked around constantly mildly drunk, because they didn't drink anything but alcoholic beverages -- the alcohol needed to kill off waterborne infectious diseases.
Most modern city dwellers have easy access to sanitary water, whether from the tap or (if they don't like the taste of tap water) from a wide variety of bottled waters. If they choose beer, wine or tea over water it's because they like it better, not because the water available to them is unsafe.
Prior to industrialization, people tended to live in rural areas and generally ate what was within a day or two's walk at most if not food that was raised around them, whether wild game or domestic agriculture (poultry, fowl eggs, pork, goat, lamb).
And without refrigeration they ate a lot of semi-rotten meat and produce, and got their water from rivers (into which people upstream dumped their effluent) or from open wells. They also often lacked much variety in their diets, especially during the winter months. You can easily eat *far* better than your ancestors did a few hundred years ago... and that's true even if you have a modest income and your ancestors were kings.
Ask your favorite mathematician about axiom of choice
Many years ago, I asked one of my profs if he "believed" in the AC. I found his response very insightful. He said, "I don't believe in infinite sets".
Infinities are clearly a very useful mathematical construct, but it's hard to argue that they have any physical reality, especially since it seems that the universe is fundamentally quantized and discrete. Unless, of course, it's not :-)
(Very roughly, the Axiom of Choice is an assumption about whether it's possible to select elements of an infinite collection of sets to produce a new infinite set. Actually, AC says this can be done with all sets, but it's easy to show that it can be done with finite sets, so the possibly-controversial implications are with respect to infinite sets.)
There were no employees left. Those 1,170 jobs are essentially new jobs. Yeah, they likely pay less with fewer benefits than the old company
I'd expect they pay more. Most of the old jobs were unskilled line jobs. Those have been replaced by a few highly skilled people maintaining and operating the automated factory line. Skilled work pays better than unskilled work, and has better benefits.
the thing is, 99% of the malware you run into is run-of-the-mill stuff.
Which Windows' built-in antivirus protection will stop.
I think you missed the point that Windows is a virus.
Did you even read the EULA before clicking to accept?
No, because I don't use Windows. I switched to Linux in 1999 and have never gone back. Well, these days I also use OS X.
But anyway, that's irrelevant, because in the context of this conversation Windows is a given. The question is, if you are already using Windows, whether or not you should also install an anti-virus product.
Maybe, but it would still be better than allowing religion or money telling people how to live.
Not true. Both religion and money are useful forces in shaping a good society. Neither are flawless, but both are important.
Taking religion first, lets suppose for the sake of argument that there is no god and no fundamental truth behind it. What's left is a collection of ideas about morality and how to structure society which have been distilled over millenia of experience. Those ideas have actually been further refined by lots of philosophical thinking. None of this means that those ideas are perfect... but it does mean that they are workable. Many ideas derived from pure rationality, on the other hand, are completely unworkable as a basis of society. If you take a basic philosophy course it quickly becomes clear that much of philosophy is simply an attempt to define a consistent, logical foundation for the moral values that the human race has already discovered are good, in that they enable people to live together and prosper with some degree of happiness. And it also quickly becomes clear that no one has ever managed to find a set of axioms which can be applied logically that don't produce some sort of insanely amoral decisions.
Religion, stripped of the supernatural characteristics, is the distilled wisdom of history. Except where it's not. Religion is also fundamentally conservative in nature, using the dictionary definition of "conservative", not the rather twisted political form. That means that it attempts to resist change. Resisting change is bad when the change is good, and good when the change is bad. Religious values, therefore, act as a brake on social change. Except in theocracies they don't generally stop change, they just slow it down, giving society time to weigh and test.
A purely science-based society would change much, much more rapidly, and without some significant damping force would oscillate wildly as theories are tested and modified. Religion isn't the only sort of damping force that would work, but it's hard to see what else could do it as effectively.
As for money, while there is certainly plenty of scope for abuse by people with money, overall a capitalistic society serves its people better than any other economic structure because it optimizes for maximizing production of the goods that they need (and want), for the lowest possible input of resources and labor, leaving the most resources and labor possible available for producing other goods. We want our resources directed to the uses that generate the maximal benefit for the most people. There might be some mechanism that is better at doing that than free(ish) trade in competitive markets, but we haven't found it.
Further, the fact is that some people are somewhat better at figuring out what sorts of uses of resources will generate the greatest benefit, and it's a good thing to allow those sorts of people to accumulate and employ wealth to generate more wealth. And, to directly address your point, that does mean that allowing society's direction to be shaped by money, to some degree, is also a good thing, because money will flow to the operations that generate more money, by producing the most beneficial goods.
Obviously there's a lot of potential for money to be used in ways that don't generate benefits for society, because money itself is just a tool; it doesn't care how it's used. And there are also plenty of nooks and crannies in the financial infrastructure that allow the extraction of wealth by people who don't actually generate anything useful. But those really are the exception, not the rule. Also, allowing society to be directed solely by money is clearly not a good idea.
All of these forces have their place, and the conflict between them and debate about their relative useful influence is a good way to allow society to move carefully forward, gradually incorporating the lessons from science into a framework that remains based primarily on what is already known to work morally and productively.
I should be more specific, an IOMMU exclusively controlled by the CPU. In this case, the secure side necessarily controls it (or it wouldn't be secure), not the user side. This makes the user side at the secure side's mercy. A narrow interface would leave the radio secure, but would also make the user side secure from the radio.
The IOMMU is controlled by the CPU, by which I mean the AP (application processor). The non-secure mode software (EL0 and EL1) controls most of its configuration, including allocating DMA pages for the baseband, though it can't override the configuration provided by the secure mode (EL3). That's my understanding, anyway. Most of my work is at a slightly higher level.
There is an IOMMU. Among other things, TrustZone relies on it.