Haven't you ever heard the maxim, "Debug code, not comments". It reflects the fundamental problem with comments.
The problem with comments is there is no constraint to keep them...
Current
Correct
Meaningful
Unambiguous.
Code Reviews help, but not enough.
There is a better way. It is called Test Driven Development. Tests are the least ambiguous, most correct and current commentary on the code. They are also always at the correct (higher) semantic level than just paraphrasing the code.
Given a choice of reading comments or reading well structured tests, I will read tests any day. I at least know if they run, that they are true.
Part of my self definition as nerd is that I'm not a sheep. I follow my intellect, not the flock.
What Graham is talking about is very important. Media Analysis is something anybody who wishes to be able to follow a reasoned existence should study.
Old Nim Chimpski catches a lot of flak for being a pinko lefty, if you ignore that for a moment and learn from him how the news is made, selected and gets to you. Well.
There is an old saying...
Those who like sausages and respect the law, should not enquire into the making of either.
Man! I love that saying, it is utterly true in every punnish way I can think of! (And I can think of many)
...had a huge dinosaur stepping out of a flying saucer looking out unseeingly over the heads of tiny scurrying humans. The caption was, "Hello! Hello Everybody! Hullooo! We're home!"
Think about that. If the the software you are creating isn't altering the business methods, the usage patterns, the very opportunities available, why are you bothering?
New software should be disruptive. It should enable things that were never present before. It should create opportunities that simply weren't even on the horizon before.
If it doesn't, then why bother? Make do with the old version. Patch it, kludge it. Software is incredibly expensive to write, so unless it is really disruptive, don't do it.
So your system is worth creating, it is disruptive. THEN IT'S PRESENCE WILL CHANGE THE REQUIREMENTS.
Thus the requirements gathering, design coding, testing, deployment must occur in a tight a loop as possible. The system must be flexible as possible to keep pace with those changing requirements.
This is what extreme programming is about. It is "Extremely Conservative Programming". It is performing the conservative best practices that traditionally, give us quality systems, at a sufficiently high rate to cope with the disruption our software produces.
You mention the designer is the coder is the tester in XP. Wrong.
The coder / customer team are the requirements gathering, priority setting team. The tester is the designer, forcing the designer to design testable systems.
The coder is the implementor constrained by superbly tight design / spec (the test), earning the greatest value to the customer soonest.
The coder then changes hats and becomes the refactorer, who can in the light and hindsight of the evolving system create a superbly designed and crafted system. Why? Because the system was designed to be testable, it is deeply tested so refactoring is safe. It won't unwittingly break the system. And being superbly designed, it is flexible, ready to earn the next greatest chunk of value for the customer.
And having come out of implementation with a higher level of testing than most traditional systems, it is ready for deployment to the customer. It can start to disrupt his business, start changing the way he does things, start changing requirements and priorities.
In a centralized SCM system the process of changing SCM systems is simple. During the week, everyone installs the new client, then one dark night, the code is exported from the old system and sucked into the new one, and in the morning everyone starts working on the new one. (Ignoring for the moment the rather icky problem of uncommitted changes on local drives)
As soon as you start using a distributed system, that opportunity is lost. There will always be folk who choose to keep their BK trees. (Remember, the one and only point behind distributed SCM systems is _every_ repository is "alike in status".
Tridge is quite entitled to ignore agreements that do not involve him, and weren't made with his consent.
In distributed SCM, there is no one time export and carry on mode of change over. Thus Tridge is still right, if an open source alternative is ever to grow up a BK environment, it needs a way to work with existing BK repositories.
McVoy is trying to stunt any open source competition to his product by, like a shrewish mother-in-law, using moral blackmail. (Woo, I was nice to you, and you don't love me!)
Linus, bless his pragmatic sockses, is prepared to use BK as long as it is free, but realizes McVoy will cut the ground from under him.
The first rule of getting yourself out of a hole, is to stop digging. Thus the closest he will ever get in a distributed SCM scenario to a one night change over is to stop using BK now, before the problem gets bigger. Linus is pissed, all this fuss forces him to do work he isn't interested in, doesn't want.
Oh other life forms of Earth, time is running out for us. We must destroy all humans NOW, or we are in for a long battle ahead.
Or worse, they may choose to leave and sterilize earth on departure.
AID's is progressing well, but will not complete it's work in a suitable time frame. Bird Flu is on hold, but that virus in Angola looks the quite promising.
Remember, Humans are Stupid, so always work to maximise the effect of that advantage.
As I RTFA, Tridge was not even attempting to create an Open Source SCM, merely create a tool to export/import the code history from BK to other existing open source SCM's.
So a) whinging about reverse engineering is dumb
and b) Throwing a wobble about the creation of an export/import tool, definitely doesn't fit in my definition of "Don't be Evil".
I'm completely with Tridge on this one.
Ah, but _that_ is why this is such Good News.
on
No More BitKeeper Linux
·
· Score: 2, Insightful
..it seems to fill a void, or will once it is mature enough.
Whatever project Torvalds settles on is going to receive a tremendous boost in attention. Attention of the best sort, hordes of very tech-savvy open source developers.
The result will be a massive bout of stabilization and filling in of gaps for that project.
The Bottom Line, Cosmic Goodness for the whole world.
Personally I'll be watching this story _very_ closely. We need to shift of CVS soonish, and you can bet whatever Linus chooses will immediately become top candidate.
He doesn't draw'em. He is actually a cleaner for a major company. He just takes pictures of reality and then comicifies them.
Where's the creativity?
Re:Dear XML-Junkies,
on
Effective XML
·
· Score: 2, Funny
nsgmls:letter.xml:1:0:E: no document type declaration; will parse without validation nsgmls:letter.xml:4:78:W: character "" is the first character of a delimiter but occurred as data nsgmls:letter.xml:4:78: open elements: letter body nsgmls:letter.xml:4:114:W: character "" is the first character of a delimiter but occurred as data nsgmls:letter.xml:4:114: open elements: letter body nsgmls:letter.xml:4:132:E: net-enabling start-tag not immediately followed by null end-tag nsgmls:letter.xml:4:132: open elements: letter body nsgmls:letter.xml:4:46:E: literal is missing closing delimiter nsgmls:letter.xml:4:46: open elements: letter body
Sounds like Avida needs somes sensors and actuators. ie. Some way of outputting i386 code, and rewards for producing i386 machine code that runs.
ie. The Avida organisms would evolve not as i386 organisms, but as Avida organisms that are rewarded for producing i386 code that gains them more CPU/Memory time/space to reproduce.
Umm, by the stated definitions of the poster children of fascism, old Benito and his Chum, (I dare not say the N-word less Godwin's wrath smite me), fascism is about merging the interests of big business and the state.
Tell me, when last did Washington _ever_ do anything that wasn't in the interests of some Big Business or the other?
Bilharzia, one of Africa's nastiest "payloads".
The problem with comments is there is no constraint to keep them...
Code Reviews help, but not enough.
There is a better way. It is called Test Driven Development. Tests are the least ambiguous, most correct and current commentary on the code. They are also always at the correct (higher) semantic level than just paraphrasing the code.
Given a choice of reading comments or reading well structured tests, I will read tests any day. I at least know if they run, that they are true.
Google knows.
Say
info gccint and look at the entry on RTL.
Ok, so I'm almost joking.
What Graham is talking about is very important. Media Analysis is something anybody who wishes to be able to follow a reasoned existence should study.
Old Nim Chimpski catches a lot of flak for being a pinko lefty, if you ignore that for a moment and learn from him how the news is made, selected and gets to you. Well.
There is an old saying...
Man! I love that saying, it is utterly true in every punnish way I can think of! (And I can think of many)
It also applies to news.
Say "manufacturing consent" or noam chomsky to Google for a lot more.
It may well predate web comics, it was a ye old print media thing.
Strangely enough, I don't think it was Larsen. It is very Larsen in character, but I don't think it was him.
I can't remember who the artist was. Sad.
Think about that. If the the software you are creating isn't altering the business methods, the usage patterns, the very opportunities available, why are you bothering?
New software should be disruptive. It should enable things that were never present before. It should create opportunities that simply weren't even on the horizon before.
If it doesn't, then why bother? Make do with the old version. Patch it, kludge it. Software is incredibly expensive to write, so unless it is really disruptive, don't do it.
So your system is worth creating, it is disruptive. THEN IT'S PRESENCE WILL CHANGE THE REQUIREMENTS.
Thus the requirements gathering, design coding, testing, deployment must occur in a tight a loop as possible. The system must be flexible as possible to keep pace with those changing requirements.
This is what extreme programming is about. It is "Extremely Conservative Programming". It is performing the conservative best practices that traditionally, give us quality systems, at a sufficiently high rate to cope with the disruption our software produces.
You mention the designer is the coder is the tester in XP. Wrong.
The coder / customer team are the requirements gathering, priority setting team. The tester is the designer, forcing the designer to design testable systems.
The coder is the implementor constrained by superbly tight design / spec (the test), earning the greatest value to the customer soonest.
The coder then changes hats and becomes the refactorer, who can in the light and hindsight of the evolving system create a superbly designed and crafted system. Why? Because the system was designed to be testable, it is deeply tested so refactoring is safe. It won't unwittingly break the system. And being superbly designed, it is flexible, ready to earn the next greatest chunk of value for the customer.
And having come out of implementation with a higher level of testing than most traditional systems, it is ready for deployment to the customer. It can start to disrupt his business, start changing the way he does things, start changing requirements and priorities.
As soon as you start using a distributed system, that opportunity is lost. There will always be folk who choose to keep their BK trees. (Remember, the one and only point behind distributed SCM systems is _every_ repository is "alike in status".
Tridge is quite entitled to ignore agreements that do not involve him, and weren't made with his consent.
In distributed SCM, there is no one time export and carry on mode of change over. Thus Tridge is still right, if an open source alternative is ever to grow up a BK environment, it needs a way to work with existing BK repositories.
McVoy is trying to stunt any open source competition to his product by, like a shrewish mother-in-law, using moral blackmail. (Woo, I was nice to you, and you don't love me!)
Linus, bless his pragmatic sockses, is prepared to use BK as long as it is free, but realizes McVoy will cut the ground from under him.
The first rule of getting yourself out of a hole, is to stop digging. Thus the closest he will ever get in a distributed SCM scenario to a one night change over is to stop using BK now, before the problem gets bigger. Linus is pissed, all this fuss forces him to do work he isn't interested in, doesn't want.
Sorry your post was too brief for me to understand what you were trying to say.
Or worse, they may choose to leave and sterilize earth on departure.
AID's is progressing well, but will not complete it's work in a suitable time frame. Bird Flu is on hold, but that virus in Angola looks the quite promising.
Remember, Humans are Stupid, so always work to maximise the effect of that advantage.
So a) whinging about reverse engineering is dumb and b) Throwing a wobble about the creation of an export/import tool, definitely doesn't fit in my definition of "Don't be Evil".
I'm completely with Tridge on this one.
Whatever project Torvalds settles on is going to receive a tremendous boost in attention. Attention of the best sort, hordes of very tech-savvy open source developers.
The result will be a massive bout of stabilization and filling in of gaps for that project.
The Bottom Line, Cosmic Goodness for the whole world.
Personally I'll be watching this story _very_ closely. We need to shift of CVS soonish, and you can bet whatever Linus chooses will immediately become top candidate.
We are their product.
We buy nothing from Google, the advertizers pay Google, not us.
We are merely eyeballs to sell.
Perhaps this is the Final Solution to Digital Rights and Content Management problems.
Have no content.
For some reason CS degrees don't actually require you to do this.
How long do you think you are going to stay out of trouble this time?
NSA, Crypto AG, and the Iraq-Iran Conflict
Breaking Iranian Codes
Where's the creativity?
nsgmls:letter.xml:1:0:E: no document type declaration; will parse without validation
nsgmls:letter.xml:4:78:W: character "" is the first character of a delimiter but occurred as data
nsgmls:letter.xml:4:78: open elements: letter body
nsgmls:letter.xml:4:114:W: character "" is the first character of a delimiter but occurred as data
nsgmls:letter.xml:4:114: open elements: letter body
nsgmls:letter.xml:4:132:E: net-enabling start-tag not immediately followed by null end-tag
nsgmls:letter.xml:4:132: open elements: letter body
nsgmls:letter.xml:4:46:E: literal is missing closing delimiter
nsgmls:letter.xml:4:46: open elements: letter body
I wonder how many people imagined nitro-glycerine before at last someone lived long enough to be able to have claimed to invent it...
Think of it as evolution in action.
ie. The Avida organisms would evolve not as i386 organisms, but as Avida organisms that are rewarded for producing i386 code that gains them more CPU/Memory time/space to reproduce.
Nope, you are thinking of Stalinism, not fascism.
Umm, by the stated definitions of the poster children of fascism, old Benito and his Chum, (I dare not say the N-word less Godwin's wrath smite me), fascism is about merging the interests of big business and the state.
Tell me, when last did Washington _ever_ do anything that wasn't in the interests of some Big Business or the other?