1) Do you write clean Code? Is it maintainable? Is it readable? What is the spaghetti rating? Are your functions/classes nested to deep?
By what metrics? I've never seen a metric that's truly a good indicator for a wide variety of code.
2) Can you re-write the code from just the comments? Is it self documenting?
If you need so many comments that you have duplicated your code completely as comments, your comments are inappropriate. Comments should explain the intent of your code. They should refer to algorithms, not re-describe them in their entirety. For example: Formulae should not be duplicated in comments - if the developer can't read a formula as code, they should not be permitted to modify it! - but a description of variables is (that is if the names aren't self explanatory, or the formula isn't so common any expert should be able to read it. For example commenting Newtonian motion formulae like F=ma and s=ut+0.5at^2 isn't appropriate), the intent of the formula is important, the algorithms used are important, references to design documents are important.
3) Is is 'Done', complete, FIN? If you have any technical debt then it is NOT DONE.
If you're putting out incomplete code as a finished product, it doesn't matter what techniques or methodologies you use, you shouldn't be permitted to code.
4) What percentage of the code is covered by your test cases? anything less than 80% is IMHO unclean.
I've seen code with 80% inappropriate coverage. Not only is the code not properly tested, but the coder has wasted additional time on test cases that are not useful - time that should have been spent writing better code (including better tests). Metrics like this are no more sophisticated or appropriate than the old kloc measure of performance. There is no substitute for proper code review (including the test cases). I'd rather 50% coverage with proper tests than 80% coverage with bad tests.
All these things combine together to give you 'Clean Code'.
So what is it?
Btw, I've been following 'Clean Code' Principals since 1983 when I read 'The Software Reliability Cookbook'.
Nope. I think I've demonstrated - with the exception of code completeness and within the limits of what you'd expect of a slashdot post - why these things are neither necessary nor sufficient.
If you want to write good code your first port of call is to have a second person that wasn't involved in writing it do a proper review. That's exceedingly hard because even the best read code is hard to walk into. That is nonetheless what needs to be done. Formal processes should only be used as a guidelines. If you want to see how horribly badly over-formalising and over-prescribing can go take a look at ISO9001. Software and methodologies must not be treated like religion. It is part engineering and part science - no magic required.
There is a happy medium between making minor corrections as expected through the design and development of code, and completely redesigning the project every few days or weeks. Both traditional and agile approaches can be implemented well or can be implemented very very poorly. My experience has been that you start with fairly solid requirements and are flexible enough to make the darn thing work and if you have the time to also take advantage of any insights that come as the project progresses. However under no circumstances should you start off designing a bridge and end up designing an airliner. That isn't agile - it's moronic.
Actually, I'd say that the difference between a professional craftsman and a hobbyist who builds stuff in his garage is often largely because the professional has a much larger assortment of tools to use.
There are many differences between hobbyist and professional apart from the tools: - Professional may spend 10x as long doing the work -> more practice, more experience - Professional tackles all parts of his job, doesn't pick and choose what he feels like doing -> Wider range of experience - Professional will avoid taking on the job without adequate tools, whereas hobbyist may try to wing it -> More predictable results - Professional is held accountable by standards other than his own - Professional will avoid all work that is not for profit -> Less range in experience
Even though MtGox is the largest BTC exchange, this dip in value seems to have affected only that one exchange. Tradehill for example was completely unaffected. Bitcoin is still a pretty small currency so these kind of events should be expected until more people buy into it to create stability. If nothing else, it may attract daytraders.:-)
More people buy into it? Ha! More people wake up to the fact that it's a failed experiment more likely.
Hey, you're not allowed to hack companies who aren't flagrantly, explicitly evil! It's almost like you're hacking companies whose security is weak, rather than acting as moral crusaders. How could that be?
No sympathy. Their copy protection bullshit has on more than one occasion caused me more grief than most other company's crap (and I am not a pirate by the way). Hate that my account may have been compromised, especially since I haven't used it in years (quite literally).
What you need to do is divorce the right to control a work from the right to profit from it.
Beware the law of unintended consequences. This is exactly the kind of thing that enables things like patent trolling. Buy the rights to control something, wait for someone else to do the hard work and extract payment. We want less of that kind of thing, not more. Rather figure out a way to ensure that the right to control a work comes with the obligation to exercise good stewardship and a mandate to develop the work, not just the right to profit.
No, it's not the same at all. The work we're protecting in this case is the invention. Someone else picking it up and selling it as is should forward most of the money back to the parent company because they've invented nothing. If they add something original they should be paid for their part.
I've never seen anyone excercise good stewardship of their work rather than just profit. I can't see how that would be done either. You might as well mandate sunny weather or world peace. The best you can provide is incentives and what better incentive than someone else will beat you to it.
"Also it should be clear that their product is based on the Disney one but does not come from Disney"
We can't even get people to do not click on links for v14gr4.. you think they'll discern that derivative works aren't made by the original IP holder after XYZ corp makes a Mickey porn? If I'm Disney, I wouldn't bet on it...
The ones who want to will. The ones who don't won't care. As it should be.
What you need to do is divorce the right to control a work from the right to profit from it.
It should be permitted for anyone to copy or make any derivative work from day one. It should not be possible for the rights holder to disallow further creative work or making physical copies. HOWEVER the creators of the copies or derivative work must in turn compensate the creator at a similar price to the one that the creator set. (There need to be rules and standards).
For example Disney creates a new Mickey movie in 2011. It should be possible for some other company to make a new TV show based on it BUT they would need to provide some large percentage of gross to Disney. If they make it right away to capitalise on Disney's marketing investment, the percentage they should pay should be higher than if they wait 5 years to do it. Also it should be clear that their product is based on the Disney one but does not come from Disney. If Disney creates it's own series, it'll just have to compete along with the rest but it does get to carry the Disney name. But Disney can only sue the 3rd party company for not providing payment to Disney, rather than actually controlling the work and all derivatives for centuries. The result: Disney's has greater incentive to make any derivative works better and make them sooner. Innovation by little companies is not stifled. True competition. True capitalism.
Of course the current media mega-corps would never stand for it. They'd actually have to compete...
...and responding with "don't like the lockout, don't buy the console" is something you can afford, but not the console makers. Enough people don't buy and their business tanks.
I don't see life being that much harder for pirates at all. Locked out hardware which you then sell to the user to own is just an idiotic concept. Someone out there will have the tools to break it. Once broken they'll facilitate others with lesser tools, or sell mod chips. It has never worked. It is just moronic. All these megacorps have created is ill will and people unwilling to buy the next gen of console. Then they lament that the games industry is dying.
You fool! You put antimatter in a SuperMax prison with all sorts of hardened criminals and you'll get ANTIHEROs. And then where will we be, Mr. Smartypants American Patriot? There is a reason that the world hates us.
What maker has been effective at stopping them by harassing people.
Honestly, go after the pirates, not the tinkerers.
Homebrew feeds piracy, while homebrew itself is fine and dandy it exposes raw hardware which can easily be used for pirate methods (see wii usb loaders everywhere, which while they do serve a valid purpose for reducing loading times I imagine a fair number of people have a few games they don't legitimately own from tpb)
Their aim is not to stop homebrew outright, but just make the barrier of entry higher. With a sufficiently high barrier of entry to playing with it tinkerers will simply be more determined and the people who think 'I just want to play burnt games' are more likely to simply not bother.
What you are arguing is essentially that no one should ever be able to tinker with their own hardware because it may compromise the platform. The same argument can be made against home programming on the PC. Yet copy protection schemes exist on the PC, some of which have not been cracked (but all of which seem to catch out legitimate users too). So it is possible to have hardware and software exposed to the user for play but to still secure games from being copied. Stifling innovation, tinkering and free spirit is way too high a price to pay to protect some company's intellectual property. It has also proven ineffective, whether or not hardware is involved. There are games companies making money now who do not put any copy protection on their title.
All of these lame excuses and yet no system has been made piracy proof, and the anti-piracy schemes continue to put people off both hardware and software. It's just idiotic. Yet the companies all chant "Next generation will get it right" like a bunch of drug addled idiots.
As for casual gamers not bothering to pirate, not every casual gamer needs to know how to write a USB loader, just how to install it. That too is a losing strategy.
Nintendo actually cares about their customers' privacy... I can't think of anything Nintendo has ever done to justify this.
This is the company that got their Wii hacked because they couldn't implement RSA (They chose to do a string comparison where binary was needed).
Also the same guys that keep trying to kill off homebrew and go around harassing the homebrew devs.
They would be hard pressed to be more anti consumer, but I bet we see a better attempt anyway with the Wii's successor. Me thinks you've been imbibing of the coolaid, or you're a Wii fanboi, or a Nintendo astroturf monkey.
This isn't limiting freedom of speech. Granted it sucks (I know in Australia we've had all kinds of stupid/funny "if we get x followers on twitter we'll do y" things on breakfast shows that this sort of thing would stomp on were it here), but it doesn't have anything to do with civil rights.
Please tell me how you figure this isn't a limitation on freedom of speech?? It's not just a limitation on freedom of speech. It's a directive that requires news organisations to make the news vaguer. If an issue has been discussed on Facebook, and they are forced to say "social network sites" and not identify the social network, that's diluted the information. Idiotic!
There is no reason to use MD5 anymore, The SHA-ciphers are superior.
For web site security, you're right.
It's still useful as a checksum algorithm. I use it on my photos to determine if software has messed with the metadata. Clearly we're not talking about a security application here.
C'mon timothy, this is pathetic. What the fuck does Dr. Jack Kevorkian dying have to do with news for nerds? I don't recall any other article here about him or even the topic of assisted suicide on this site at all.
Stick to your lane please. This is not stuff that matters.
Hasn't being a nerd ever made you suicidal?;-)
I really shouldn't joke. Way too important a topic. Many, many facets to consider here.
With so many bugs and battery life limited to less than a day on a lot of the latest phones, I think the brain cancer worry isn't the greatest. The risk of having an aneurysm while throwing your phone at the pavement far outweighs it!
Speaking of aneurysms, I didn't need another fucking thing to have to factor in when buying a phone. Now in addition to battery life, reliability, features and bugs, sluggish behaviour, DRM and lockdown, I have to look at the SAR? FFFFUUUUCCCCKKKK!!!
As a company becomes larger, IT guy becomes a full time role. Eventually you need an IT staff. What percentage of your staff should be in IT depends on your business. But having 1 IT staff member per 10 or so users is a minimum.
OpenOffice.org will start off in the ASF's incubation program as a "podling" -- the first stage in a multistep process toward becoming a top-level project within the organization.
Larry spread the wrong fertilizer and poisoned the little podling before it made it to sapling. Oh well no use in crying, it's dead now.
My Mac had voice commands in the 90s, but it didn't include useful stuff like being able to choose which file was selected etc, despite being able to open and close files/windows with it. Even if it could do everything that your mouse and keyboard can do, it's still faster to just use your hands for the most part. Voice command is great for people with disabilities, but on a smartphone in a busy environment, what's the point? It's either not going to work because of ambient noise, or you're just going to piss everyone off.
I know "The Woz " is a geek favourite, and he certainly has technical prowess BUT the man is also a self aggrandising fool who has a bad habbit of exaggerating things. He wrote a book "How I Invented the Personal Computer And Had Fun Doing It" for feck sake. The man for all his prowess did NOT invent the PC. I'm sure I'll be modded into oblivion but it has to be said. I wouldn't take any of his predictions seriously.
1) Do you write clean Code? Is it maintainable? Is it readable? What is the spaghetti rating? Are your functions/classes nested to deep?
By what metrics? I've never seen a metric that's truly a good indicator for a wide variety of code.
2) Can you re-write the code from just the comments? Is it self documenting?
If you need so many comments that you have duplicated your code completely as comments, your comments are inappropriate. Comments should explain the intent of your code. They should refer to algorithms, not re-describe them in their entirety. For example: Formulae should not be duplicated in comments - if the developer can't read a formula as code, they should not be permitted to modify it! - but a description of variables is (that is if the names aren't self explanatory, or the formula isn't so common any expert should be able to read it. For example commenting Newtonian motion formulae like F=ma and s=ut+0.5at^2 isn't appropriate), the intent of the formula is important, the algorithms used are important, references to design documents are important.
3) Is is 'Done', complete, FIN? If you have any technical debt then it is NOT DONE.
If you're putting out incomplete code as a finished product, it doesn't matter what techniques or methodologies you use, you shouldn't be permitted to code.
4) What percentage of the code is covered by your test cases? anything less than 80% is IMHO unclean.
I've seen code with 80% inappropriate coverage. Not only is the code not properly tested, but the coder has wasted additional time on test cases that are not useful - time that should have been spent writing better code (including better tests). Metrics like this are no more sophisticated or appropriate than the old kloc measure of performance. There is no substitute for proper code review (including the test cases). I'd rather 50% coverage with proper tests than 80% coverage with bad tests.
All these things combine together to give you 'Clean Code'.
So what is it?
Btw, I've been following 'Clean Code' Principals since 1983 when I read 'The Software Reliability Cookbook'.
Nope. I think I've demonstrated - with the exception of code completeness and within the limits of what you'd expect of a slashdot post - why these things are neither necessary nor sufficient.
If you want to write good code your first port of call is to have a second person that wasn't involved in writing it do a proper review. That's exceedingly hard because even the best read code is hard to walk into. That is nonetheless what needs to be done. Formal processes should only be used as a guidelines. If you want to see how horribly badly over-formalising and over-prescribing can go take a look at ISO9001. Software and methodologies must not be treated like religion. It is part engineering and part science - no magic required.
There is a happy medium between making minor corrections as expected through the design and development of code, and completely redesigning the project every few days or weeks. Both traditional and agile approaches can be implemented well or can be implemented very very poorly. My experience has been that you start with fairly solid requirements and are flexible enough to make the darn thing work and if you have the time to also take advantage of any insights that come as the project progresses. However under no circumstances should you start off designing a bridge and end up designing an airliner. That isn't agile - it's moronic.
Actually, I'd say that the difference between a professional craftsman and a hobbyist who builds stuff in his garage is often largely because the professional has a much larger assortment of tools to use.
There are many differences between hobbyist and professional apart from the tools:
- Professional may spend 10x as long doing the work -> more practice, more experience
- Professional tackles all parts of his job, doesn't pick and choose what he feels like doing -> Wider range of experience
- Professional will avoid taking on the job without adequate tools, whereas hobbyist may try to wing it -> More predictable results
- Professional is held accountable by standards other than his own
- Professional will avoid all work that is not for profit -> Less range in experience
Even though MtGox is the largest BTC exchange, this dip in value seems to have affected only that one exchange. Tradehill for example was completely unaffected. Bitcoin is still a pretty small currency so these kind of events should be expected until more people buy into it to create stability. If nothing else, it may attract daytraders. :-)
More people buy into it? Ha! More people wake up to the fact that it's a failed experiment more likely.
Look around you some time. Nothing at all scarce about shit. The human race is drowning in it.
Now phlem, that's the next big thing!
Hey, you're not allowed to hack companies who aren't flagrantly, explicitly evil! It's almost like you're hacking companies whose security is weak, rather than acting as moral crusaders. How could that be?
No sympathy. Their copy protection bullshit has on more than one occasion caused me more grief than most other company's crap (and I am not a pirate by the way). Hate that my account may have been compromised, especially since I haven't used it in years (quite literally).
You should get a PPL and a light aircraft then.
He said he had thousands of dollars of gear, not hundreds of thousands. And certain medical conditions that afflict gamers will deny you a PPL.
What you need to do is divorce the right to control a work from the right to profit from it.
Beware the law of unintended consequences. This is exactly the kind of thing that enables things like patent trolling. Buy the rights to control something, wait for someone else to do the hard work and extract payment. We want less of that kind of thing, not more. Rather figure out a way to ensure that the right to control a work comes with the obligation to exercise good stewardship and a mandate to develop the work, not just the right to profit.
No, it's not the same at all. The work we're protecting in this case is the invention. Someone else picking it up and selling it as is should forward most of the money back to the parent company because they've invented nothing. If they add something original they should be paid for their part.
I've never seen anyone excercise good stewardship of their work rather than just profit. I can't see how that would be done either. You might as well mandate sunny weather or world peace. The best you can provide is incentives and what better incentive than someone else will beat you to it.
"Also it should be clear that their product is based on the Disney one but does not come from Disney"
We can't even get people to do not click on links for v14gr4.. you think they'll discern that derivative works aren't made by the original IP holder after XYZ corp makes a Mickey porn? If I'm Disney, I wouldn't bet on it...
The ones who want to will. The ones who don't won't care. As it should be.
What you need to do is divorce the right to control a work from the right to profit from it.
It should be permitted for anyone to copy or make any derivative work from day one. It should not be possible for the rights holder to disallow further creative work or making physical copies. HOWEVER the creators of the copies or derivative work must in turn compensate the creator at a similar price to the one that the creator set. (There need to be rules and standards).
For example Disney creates a new Mickey movie in 2011. It should be possible for some other company to make a new TV show based on it BUT they would need to provide some large percentage of gross to Disney. If they make it right away to capitalise on Disney's marketing investment, the percentage they should pay should be higher than if they wait 5 years to do it. Also it should be clear that their product is based on the Disney one but does not come from Disney. If Disney creates it's own series, it'll just have to compete along with the rest but it does get to carry the Disney name. But Disney can only sue the 3rd party company for not providing payment to Disney, rather than actually controlling the work and all derivatives for centuries. The result: Disney's has greater incentive to make any derivative works better and make them sooner. Innovation by little companies is not stifled. True competition. True capitalism.
Of course the current media mega-corps would never stand for it. They'd actually have to compete...
...and responding with "don't like the lockout, don't buy the console" is something you can afford, but not the console makers. Enough people don't buy and their business tanks.
I don't see life being that much harder for pirates at all. Locked out hardware which you then sell to the user to own is just an idiotic concept. Someone out there will have the tools to break it. Once broken they'll facilitate others with lesser tools, or sell mod chips. It has never worked. It is just moronic. All these megacorps have created is ill will and people unwilling to buy the next gen of console. Then they lament that the games industry is dying.
You fool! You put antimatter in a SuperMax prison with all sorts of hardened criminals and you'll get ANTIHEROs.
And then where will we be, Mr. Smartypants American Patriot? There is a reason that the world hates us.
Bad superhero jokes?
Couldn't you just hook the door bell up to your LAN and make it call through Skype or whatever instead of this 3g chip nonsense?
No! Microsoft clowns would eat you!
What maker has been effective at stopping them by harassing people.
Honestly, go after the pirates, not the tinkerers.
Homebrew feeds piracy, while homebrew itself is fine and dandy it exposes raw hardware which can easily be used for pirate methods (see wii usb loaders everywhere, which while they do serve a valid purpose for reducing loading times I imagine a fair number of people have a few games they don't legitimately own from tpb)
Their aim is not to stop homebrew outright, but just make the barrier of entry higher. With a sufficiently high barrier of entry to playing with it tinkerers will simply be more determined and the people who think 'I just want to play burnt games' are more likely to simply not bother.
What you are arguing is essentially that no one should ever be able to tinker with their own hardware because it may compromise the platform. The same argument can be made against home programming on the PC. Yet copy protection schemes exist on the PC, some of which have not been cracked (but all of which seem to catch out legitimate users too). So it is possible to have hardware and software exposed to the user for play but to still secure games from being copied. Stifling innovation, tinkering and free spirit is way too high a price to pay to protect some company's intellectual property. It has also proven ineffective, whether or not hardware is involved. There are games companies making money now who do not put any copy protection on their title.
All of these lame excuses and yet no system has been made piracy proof, and the anti-piracy schemes continue to put people off both hardware and software. It's just idiotic. Yet the companies all chant "Next generation will get it right" like a bunch of drug addled idiots.
As for casual gamers not bothering to pirate, not every casual gamer needs to know how to write a USB loader, just how to install it. That too is a losing strategy.
Also the same guys that keep trying to kill off homebrew and go around harassing the homebrew devs.
But what alternative do you recommend? Which maker of set-top video game appliances is friendly to homebrew devs?
What maker has been effective at stopping them by harassing people.
Honestly, go after the pirates, not the tinkerers.
Nintendo actually cares about their customers' privacy ... I can't think of anything Nintendo has ever done to justify this.
This is the company that got their Wii hacked because they couldn't implement RSA (They chose to do a string comparison where binary was needed).
Also the same guys that keep trying to kill off homebrew and go around harassing the homebrew devs.
They would be hard pressed to be more anti consumer, but I bet we see a better attempt anyway with the Wii's successor. Me thinks you've been imbibing of the coolaid, or you're a Wii fanboi, or a Nintendo astroturf monkey.
This isn't limiting freedom of speech. Granted it sucks (I know in Australia we've had all kinds of stupid/funny "if we get x followers on twitter we'll do y" things on breakfast shows that this sort of thing would stomp on were it here), but it doesn't have anything to do with civil rights.
Please tell me how you figure this isn't a limitation on freedom of speech?? It's not just a limitation on freedom of speech. It's a directive that requires news organisations to make the news vaguer. If an issue has been discussed on Facebook, and they are forced to say "social network sites" and not identify the social network, that's diluted the information. Idiotic!
There is no reason to use MD5 anymore, The SHA-ciphers are superior.
For web site security, you're right.
It's still useful as a checksum algorithm. I use it on my photos to determine if software has messed with the metadata. Clearly we're not talking about a security application here.
C'mon timothy, this is pathetic. What the fuck does Dr. Jack Kevorkian dying have to do with news for nerds? I don't recall any other article here about him or even the topic of assisted suicide on this site at all.
Stick to your lane please. This is not stuff that matters.
Hasn't being a nerd ever made you suicidal? ;-)
I really shouldn't joke. Way too important a topic. Many, many facets to consider here.
With so many bugs and battery life limited to less than a day on a lot of the latest phones, I think the brain cancer worry isn't the greatest. The risk of having an aneurysm while throwing your phone at the pavement far outweighs it!
Speaking of aneurysms, I didn't need another fucking thing to have to factor in when buying a phone. Now in addition to battery life, reliability, features and bugs, sluggish behaviour, DRM and lockdown, I have to look at the SAR? FFFFUUUUCCCCKKKK!!!
Yeah, I'm sure a 12-person office has an extra 100k sitting around for an IT guy.
Not all IT staff start at 100k, or work full time.
As a company becomes larger, IT guy becomes a full time role. Eventually you need an IT staff. What percentage of your staff should be in IT depends on your business. But having 1 IT staff member per 10 or so users is a minimum.
FTFA:
OpenOffice.org will start off in the ASF's incubation program as a "podling" -- the first stage in a multistep process toward becoming a top-level project within the organization.
Larry spread the wrong fertilizer and poisoned the little podling before it made it to sapling. Oh well no use in crying, it's dead now.
+1 concur.
My Mac had voice commands in the 90s, but it didn't include useful stuff like being able to choose which file was selected etc, despite being able to open and close files/windows with it. Even if it could do everything that your mouse and keyboard can do, it's still faster to just use your hands for the most part. Voice command is great for people with disabilities, but on a smartphone in a busy environment, what's the point? It's either not going to work because of ambient noise, or you're just going to piss everyone off.
Bonus clip.
I know "The Woz " is a geek favourite, and he certainly has technical prowess BUT the man is also a self aggrandising fool who has a bad habbit of exaggerating things. He wrote a book "How I Invented the Personal Computer And Had Fun Doing It" for feck sake. The man for all his prowess did NOT invent the PC. I'm sure I'll be modded into oblivion but it has to be said. I wouldn't take any of his predictions seriously.