Of course, I should have mentioned that I'm using Microsoft Developer Studio, but regardless, I'm looking for a completely cross-platform compiler-independent and build-system-independent test framework.
It's a pity the submitter didn't provide a short paragraph review of the article rather than just copy-paste the abstract.
Anyway, having had a quick look, it is all about Java.
I'd love to hear from anyone who can recommend test coverage tools for C (ie. non-object oriented). I think that just about all of the articles I've ever read about testing methodologies have been exclusively about object-oriented patterns, and pretty much only Java or.NET.
Object-oriented techniques are a good tool, but not the right tool for every job...
What you say is absolutely right, but we must remember that if you are about to try to dereference a NULL pointer, whether you check for NULLness beforehand or not, something has already gone wrong.
This is why all of the comments about using a managed language are completely missing the point. Catching exception conditions before they terminate the process is great for tracking down bugs and for code that's allowed to recover from errors, but if you need error-free code, then you cannot afford to have these exception conditions in the first place.
Your other point about checking all return values is 100% right.
My own recommendation is to keep the code as simple as possible, and avoid anything that 'hides' code. Use OO design if you like, but be very wary of C++ constructs that might result in a whole load of code being fired off behind your back. This is especially true of operator overloading and temporary objects with their constructors.
Do as little dynamic memory allocation as possible. Sometimes you can arrange things so that you know before you start exactly how much memory you'll need for everything and then allocate this all statically. Even consider accepting arbitrary limitations on data sizes if it helps achieve this and doesn't cost much in terms of flexibility.
A 8MP camera is equivalent to a 4MB camera plus a x2 zoom.
Not quite. An 8MP sensor has sqrt(2) = 1.4 times as many pixels in each direction to get twice as many pixels overall. So it's only equivalent to a 1.4x zoom.
You actually need to go to 16MP to get the equivalent of a 2x zoom on 4MP, which is quite a different proposition.
The other problem of more pixels is the one you mentioned yourself - more noise. A low noise 800MP sensor would be far too big to fit in a normal sized camera.
Here's an excerpt from Wikipedia, concerning herders sharing a piece of common pasture:
The division of these components is unequal: the individual herder gains all of the advantage [of adding an extra animal], but the disadvantage is shared between all herders using the pasture. Consequently, for an individual herder..., the rational course of action is to add an extra animal. And another, and another. However, since all herders reach the same conclusion, overgrazing and degradation of the pasture is its long-term fate... [because] the gain is always greater to an individual than the distributed cost is.
That sounds useful, and is something I wasn't aware of.
My big question though is whether it will bring my KDE desktop up faster than a plain vanilla boot? Does software suspend get round all that time-consuming service startup (and all the rest of the stuff that goes on while those messages are scrolling up the console)?
OK, I should have quoted the original question. Here it is:
Does the GPLv3 distinguish between DRM that you control, vs. DRM controlled by others?
Ignoring whether file permissions could really be classed as DRM, the article clearly says "unless users can control them". That is my mind is a clear 'yes' to the above question.
(Of course if file permissions don't count as DRM, then the question doesn't apply. Either way, the GPL3 doesn't have anything against file permissions.)
When you accuse several million people of demonstrating "indefensible smugness"...
Smugness is highly subjective, and says much more about the person making the judgement than the person being judged.
I doubt that many Mac users think to themselves "I'm very pleased with myself because my Mac is immune from viruses." They just don't really think about the problem at all.
That isn't smugness in any objective sense.
The Mac user may appear 'smug' to the embattled Windows user who has just had to do a clean install for the 3rd time due to virus damage. But that's purely subjective.
I think Bill writes a great deal of excellent stuff in his columns. Let's not get hung up on one sentence and then miss the entire point of the essay.
Me: What does it say? Mom: It says, "9F D8 34 7B..."
You should think yourself lucky. I had someone coming to me for support once who seemed to find it impossible to just tell me what was on the screen verbatim. Every time I asked him what the error dialog said, he would paraphrase it in a way that said more about his (wildly incorrect) guesses about what had gone wrong than what was actually displayed in front of him. I ended up asking him to tell me the first word of the message displayed, then the second,... I even got him to spell the second word to me when I realised he was giving me a word that doesn't appear in any of the error dialogs. We got there eventually. I think he just decided I was mentally retarded.
If you teach them a little, you just make them dangerous, able to screw up... Solution? Teach them as little as possible... make it so they can't install software...
Every place I've worked since then, I've longed for that level of control.
Unfortunately, you give the game away with your last statement. Systems administrators love to have absolute power and it does avoid all those tedious problems of sorting out machines their users have broken. The problem is that unless they are really well resourced they won't be able to do everything the users need doing in the timescales that are necessary.
But worse still, in your effort to protect the unsophisticated users from themselves, you inevitably hamstring the more sophisticated users.
It's all very well saying that all requests for new software have to go through IT support. But then one of your sophisticated users wants some highly specialised piece of software that could just be downloaded and installed in 15 minutes. No one in IT has even heard of it before. It has to be approved and scripted, and while there is one user waiting for this there are 200 clamouring for the upgrade to MS Project. The result is that you're lucky to get it any time in the next 10 weeks. Something you could have installed yourself in 15 minutes if only IT would drop their one-size-fits-all policy and give trust where trust is due.
It's the same with shopping in the high street, at least for things I don't actually want to be shopping for.
If I go into a clothes shop and within the first 30 seconds can't see in which corner of the store mens' trousers are located (or whatever), then I won't hang around to play search.
The standard access keys, according to Dive Into Accessibility are:
Access key 1
Home page
Access key 2
Skip to main content (the navigation bar skip link)
Access key 9
Feedback
Access key 0
Accessibility statement so I think you are on to something there. Stick to numbers and you stand a good chance of not conflicting with any browser short cuts.
Incidently, if you are a pure pragmatist and don't mind using a closed proprietory codec, Microsoft's Voice 9 codec (IIRC) gives very good quality at a low bit-rate, and probably over 98% of users will be able to play it back without installing any new software. (The encoder is a free download from Microsoft.)
I'm pretty sure LAME would work as an mp3 encoder for your case
Yes, LAME does a surprisingly good job on speech at low bit-rates, provided you use one of the --preset xxxxx options. In my own tests, I found it was only a little worse than speech-optimised codecs like those from Microsoft and Real.
Don't use LAME just with a low bit-rate though - it will sound dreadful. Use --preset whatever.
I may not have been entirely clear, but what I was getting at is that a printer with large drops and nominally high resolution (close nozzle spacing or multiple passes) will produce large dots that overlap a great deal. A printer with small drops and high resolution will produce dots that overlap much less. The apparent sharpness should be better with the latter, but it is not laying down more ink. In fact at a given resolution, the printer with smaller dots is laying down less ink.
It isn't necessarily true that printers with closer-spaced nozzles/higher resolution have smaller drops - that depends on the quality of the printer.
But I expect you are quite right that printers with small drops have more nozzles (and more closely spaced), or otherwise require more passes to get full ink coverage.
When you're out shopping, the higher the resolution, the smaller the dots...
No, higher resolution does not necessarily mean smaller drops. Smaller drop size means smaller drops.
The best way to gauge any printer's photo capabilities is looking at sample prints at the store
Except that these are often highly tweaked images and are sometimes even printed from a demo application that doesn't even use the usual printer driver.
or on printer company websites.
Huh? Am I supposed to judge from an image on the website, or should I download a sample and print it out? (It reminds me of a TV ad trying to demonstrate how much better the colours are on their TV...)
Another important specification for inkjet printers is ink drop size, typically measured in picoliters. The smaller the number, the more ink per square inch can be placed on the paper.
No, the smaller the drop size, the more dots are needed to lay down an equivalent amount of ink.
This got me to thinking about energy levels of those who aren't dieting. Do you find yourself correcting 'fade' by snacking (careful or otherwise) as you work?"
As someone who happily has never had to diet, I can report that I've never been in the habit of eating between meals - just the way I was brought up I suppose - and I haven't experienced what you call 'fade'.
(If I'm out walking in the hills and lunch is very late, I've been known to run out of energy and just have to stop and eat a chocolate bar, but that's physical exertion rather than mental.)
Thanks.
Of course, I should have mentioned that I'm using Microsoft Developer Studio, but regardless, I'm looking for a completely cross-platform compiler-independent and build-system-independent test framework.
Thanks for that excellent link. On a quick first glance, http://check.sourceforge.net seems like it could fit the bill.
Cheers
It's a pity the submitter didn't provide a short paragraph review of the article rather than just copy-paste the abstract.
.NET.
Anyway, having had a quick look, it is all about Java.
I'd love to hear from anyone who can recommend test coverage tools for C (ie. non-object oriented). I think that just about all of the articles I've ever read about testing methodologies have been exclusively about object-oriented patterns, and pretty much only Java or
Object-oriented techniques are a good tool, but not the right tool for every job...
What you say is absolutely right, but we must remember that if you are about to try to dereference a NULL pointer, whether you check for NULLness beforehand or not, something has already gone wrong.
This is why all of the comments about using a managed language are completely missing the point. Catching exception conditions before they terminate the process is great for tracking down bugs and for code that's allowed to recover from errors, but if you need error-free code, then you cannot afford to have these exception conditions in the first place.
Your other point about checking all return values is 100% right.
My own recommendation is to keep the code as simple as possible, and avoid anything that 'hides' code. Use OO design if you like, but be very wary of C++ constructs that might result in a whole load of code being fired off behind your back. This is especially true of operator overloading and temporary objects with their constructors.
Do as little dynamic memory allocation as possible. Sometimes you can arrange things so that you know before you start exactly how much memory you'll need for everything and then allocate this all statically. Even consider accepting arbitrary limitations on data sizes if it helps achieve this and doesn't cost much in terms of flexibility.
A 8MP camera is equivalent to a 4MB camera plus a x2 zoom.
Not quite. An 8MP sensor has sqrt(2) = 1.4 times as many pixels in each direction to get twice as many pixels overall. So it's only equivalent to a 1.4x zoom.
You actually need to go to 16MP to get the equivalent of a 2x zoom on 4MP, which is quite a different proposition.
The other problem of more pixels is the one you mentioned yourself - more noise. A low noise 800MP sensor would be far too big to fit in a normal sized camera.
Perhaps you've never heard of the Tragedy of the Commons? You should read about it.
Here's an excerpt from Wikipedia, concerning herders sharing a piece of common pasture:
That sounds useful, and is something I wasn't aware of.
My big question though is whether it will bring my KDE desktop up faster than a plain vanilla boot? Does software suspend get round all that time-consuming service startup (and all the rest of the stuff that goes on while those messages are scrolling up the console)?
Thanks for the inforamtion.
Here's the URL for the Real Video stream for those who don't want to watch in some horrible little JavaScript window:
The Money programme investigates the internet search engine Google.
(Works here in the UK at least.)
Yes, different question, but you had a good point.
OK, I should have quoted the original question. Here it is:
Does the GPLv3 distinguish between DRM that you control, vs. DRM controlled by others?
Ignoring whether file permissions could really be classed as DRM, the article clearly says "unless users can control them". That is my mind is a clear 'yes' to the above question.
(Of course if file permissions don't count as DRM, then the question doesn't apply. Either way, the GPL3 doesn't have anything against file permissions.)
The article says:
I think that is a clear 'yes'.
When you accuse several million people of demonstrating "indefensible smugness"...
Smugness is highly subjective, and says much more about the person making the judgement than the person being judged.
I doubt that many Mac users think to themselves "I'm very pleased with myself because my Mac is immune from viruses." They just don't really think about the problem at all.
That isn't smugness in any objective sense.
The Mac user may appear 'smug' to the embattled Windows user who has just had to do a clean install for the 3rd time due to virus damage. But that's purely subjective.
I think Bill writes a great deal of excellent stuff in his columns. Let's not get hung up on one sentence and then miss the entire point of the essay.
Me: What does it say? ..."
... I even got him to spell the second word to me when I realised he was giving me a word that doesn't appear in any of the error dialogs. We got there eventually. I think he just decided I was mentally retarded.
Mom: It says, "9F D8 34 7B
You should think yourself lucky. I had someone coming to me for support once who seemed to find it impossible to just tell me what was on the screen verbatim. Every time I asked him what the error dialog said, he would paraphrase it in a way that said more about his (wildly incorrect) guesses about what had gone wrong than what was actually displayed in front of him. I ended up asking him to tell me the first word of the message displayed, then the second,
If you teach them a little, you just make them dangerous, able to screw up... Solution? Teach them as little as possible... make it so they can't install software...
:-)
Every place I've worked since then, I've longed for that level of control.
Unfortunately, you give the game away with your last statement. Systems administrators love to have absolute power and it does avoid all those tedious problems of sorting out machines their users have broken. The problem is that unless they are really well resourced they won't be able to do everything the users need doing in the timescales that are necessary.
But worse still, in your effort to protect the unsophisticated users from themselves, you inevitably hamstring the more sophisticated users.
It's all very well saying that all requests for new software have to go through IT support. But then one of your sophisticated users wants some highly specialised piece of software that could just be downloaded and installed in 15 minutes. No one in IT has even heard of it before. It has to be approved and scripted, and while there is one user waiting for this there are 200 clamouring for the upgrade to MS Project. The result is that you're lucky to get it any time in the next 10 weeks. Something you could have installed yourself in 15 minutes if only IT would drop their one-size-fits-all policy and give trust where trust is due.
Sorry, rant over
It's the same with shopping in the high street, at least for things I don't actually want to be shopping for.
If I go into a clothes shop and within the first 30 seconds can't see in which corner of the store mens' trousers are located (or whatever), then I won't hang around to play search.
The standard access keys, according to Dive Into Accessibility are:
Access key 1 Home page Access key 2 Skip to main content (the navigation bar skip link) Access key 9 Feedback Access key 0 Accessibility statement
so I think you are on to something there. Stick to numbers and you stand a good chance of not conflicting with any browser short cuts.
Incidently, if you are a pure pragmatist and don't mind using a closed proprietory codec, Microsoft's Voice 9 codec (IIRC) gives very good quality at a low bit-rate, and probably over 98% of users will be able to play it back without installing any new software. (The encoder is a free download from Microsoft.)
I'm pretty sure LAME would work as an mp3 encoder for your case
Yes, LAME does a surprisingly good job on speech at low bit-rates, provided you use one of the --preset xxxxx options. In my own tests, I found it was only a little worse than speech-optimised codecs like those from Microsoft and Real.
Don't use LAME just with a low bit-rate though - it will sound dreadful. Use --preset whatever.
in order to check in any code, no matter how inconsequential, it has to be reviewed by at least one other dev
That's a great way to ensure that developers delay checking in their code until they absolutely have to.
If you've never lost code due to a disk crash or had to roll back some edits, you won't realise what a bad idea this is.
And finally, all people who use Hungarian notation are locked in the basement and given menial tasks until they repent their sinful ways.
Don't forget that there is a difference between 'system hungarian' and 'apps hungarian'.
System Hungarian I agree is a waste of time. The compiler already knows the types of each variable.
Application Hungarian - the original intention of the inventor, Charles Simonyi - though is another matter entirely and seems quite sensible.
I may not have been entirely clear, but what I was getting at is that a printer with large drops and nominally high resolution (close nozzle spacing or multiple passes) will produce large dots that overlap a great deal. A printer with small drops and high resolution will produce dots that overlap much less. The apparent sharpness should be better with the latter, but it is not laying down more ink. In fact at a given resolution, the printer with smaller dots is laying down less ink.
It isn't necessarily true that printers with closer-spaced nozzles/higher resolution have smaller drops - that depends on the quality of the printer.
But I expect you are quite right that printers with small drops have more nozzles (and more closely spaced), or otherwise require more passes to get full ink coverage.
When you're out shopping, the higher the resolution, the smaller the dots...
No, higher resolution does not necessarily mean smaller drops. Smaller drop size means smaller drops.
The best way to gauge any printer's photo capabilities is looking at sample prints at the store
Except that these are often highly tweaked images and are sometimes even printed from a demo application that doesn't even use the usual printer driver.
or on printer company websites.
Huh? Am I supposed to judge from an image on the website, or should I download a sample and print it out? (It reminds me of a TV ad trying to demonstrate how much better the colours are on their TV...)
Another important specification for inkjet printers is ink drop size, typically measured in picoliters. The smaller the number, the more ink per square inch can be placed on the paper.
No, the smaller the drop size, the more dots are needed to lay down an equivalent amount of ink.
I stopped reading at this point.
This got me to thinking about energy levels of those who aren't dieting. Do you find yourself correcting 'fade' by snacking (careful or otherwise) as you work?"
As someone who happily has never had to diet, I can report that I've never been in the habit of eating between meals - just the way I was brought up I suppose - and I haven't experienced what you call 'fade'.
(If I'm out walking in the hills and lunch is very late, I've been known to run out of energy and just have to stop and eat a chocolate bar, but that's physical exertion rather than mental.)
Correction before I get bashed for this. You are aware that "The windows has been broken for 3 weeks." is passive.
Oops. That will teach me to read the rest of the thread before replying. Apologies.
"The unit was strapped in." Please make *that* into an active sentence.
:-)
Straps held the unit.
"The window has been broken for 3 weeks." *is* a passive sentence.
I know. That was my point.
Yes, I should know better than to keep banging on with an argument on Slashdot