If you don't comment your code, I won't pay you for it. I'll inform the management that you neglected an important step and don't deserve a good reference. I won't be able to give you the benefit of the doubt when your code doesn't make perfect sense. I'll trash talk your code in front of your colleagues. Look at all the mistakes in this guy's work; I'll sure never recommend him if his resume crosses my desk. We may need to just rewrite this stuff because it's not maintainable as written.
If you pulled such a stunt with me I'd meet you in the parking lot. I'd slash your tires and seduce your wife. I'd sell your kids into some underground market. I'd burn your house and smack you so hard your DNA would be bruised.
Ok, hyperbole aside, I do want to point out that there are code that do not require any comments. Surely you can think of an example. And there are code that is clear, but still deserves some explanation of intent due to the clarity of the code but the abstractions between it and its supplier or consumer. I'm sure you can think of an example. And there is the case where the existing implementation is replaced entirely with some facility that was not previously available or maybe simply done better. I'm sure...
In each case the documentation need is quite different.
My general rule is the longer I spent thinking about it, the more I should probably say about it. That's not one-to-one with code comments though. I might reasonably add explanation to the design and implementation docs if that's the environment I'm in. My general assumption is that I *cannot* explain the code better than the code explains itself. I should *not* mislead the next programmer into a false sense of security or understanding. If s/he is unable to understand the code as written then there's a management issue to resolve regarding skills resourcing, but I *must* not presume I know that person to-be.
As a pragmatic measure I tend to comment more than I feel is necessary for myself. That's due to an experiential regression issue with my later understanding of what I did earlier;) That includes TODO or HACK comments for which I can grep; I find that *really* useful. I'd at least have put/*ME yeah, I don't like that either*/ where ME are my initials so I can find it later. I'd probably have put a version marker in there too. And I would want to see a comment explanation of any bit of the code that did something in a novel or unusual way. I often include in such a comment the url that helped:)
But not having comments at all? I prefer that to badly outdated, imprecise and *incorrect* comments. It's hard to quantify but, when faced with the latter, I find I waste many many more hours finding the original req, asking around, finding the original programmer, etc. than if there were just nothing at all. The code I can believe. When someone contradicts the code there is a bug. I *do* enter bugs on code review of such mis-matches.
My guess is that in the same day you'd be too busy talking to management. brava.
The kick I got from modifying Commodore VIC20 BASIC programs was that I could easily make it do things. For me, creating a loop where x was incremented and printing out the correct final value was just fascinating all in of itself. If the little-brother has no interest in such minutae he'll likely be a very poor programmer.
If I allow myself to assume that the whole point is a reaction to a request from the 12 yr old, and not as it appears simply another of those HowToTeachKidsProgramming.post("/.") or worse a misguided attempt to make the little-one into a facade of the older-one then I would advise this course of action:
Ask him to describe delivering a newspaper (or some other manageable short task). First thing you'll notice is he thinks about delivering newspapers, not just a single newspaper. Then he'll spin about with monster robotic solutions. He'll not initially notice that there is an address lookup to the routine. Probably traffic avoidance will be his focus but properties have boundaries and some customers get really aggravated when you don't keep to the concrete walks. Point is, it's fairly hard. And harder to explain.
In short, the best language to start a pre-pubescent or adolescent into programming is his native spoken language.
If I allow myself a further extension and consider how to nurture a beginner who has interest and maybe has poked (see what I did there?!;) around a little with programming environments or tools and has been mostly unsuccessful, I would suggest a shell, even command.com if necessary. I think being able to list and manipulate files and iterate through file directory hierarchies poses enough of a challenge to assess the student's organizational and motivational resources.
I would urge that an early lecture would cover Leverage (effort vs. work done). The right tool and language for the right job is an unbeatable combination. He should know early-on that C++ is not something to ftp files into your database, usually.
Do put him in front of the environment early on, even if you advise that it may seem too hard at first. The newspaper example can be redirected as a copy a file shell script. And you can show him how to stub out the address lookup (and explain that such 'hard-coded constants are a bad thing'. And you can grow that into a full-blown model of the domain, actually.
Writing some software and releasing it freely for other people to use it, *is* a political gesture: the only "pragmatical" thing to do with one's own work is to keep it for oneself, or sell it to others for a fee.
I did not release XT-Clock because of any political concern. I did so because I needed it and I figured other people might need it. I spent more time than I like to admit thinking of ways to make it available. The machine I was working with was a sale item at a local appliance chain. Heavily discounted and proportionally diminuated.
I spent far less time in writing it.
This was the days of newspaper, evening news on NBC, and BBS by dialup. BI.
The problem is that GNU is becoming just as hurtful to the movement as those proprietary vendors once were. Instead of permitting branching out and new ideas and new philosophies to extend the movement, GNU is preventing anything that disagrees with their Dogma to speak, or at least, trying to do that here.
FUD and just plain wrong.
OSS is Open. You can branch it at any time. You can modify it at your will. That is, to say, it's Point.
To the dotter'ing fool who marked you insightfull, you will now turn in your card. now. yes. now.
They do not know how things went before GNU and Linux were there, when to have an usable development environment you had to pay for an operating system (more expensive if it was a developer-oriented version), a windowing system, a file manager, an office application, a web browser, an email client, a compiler, a debugger, a zip program, a picture viewer, access to the official developer's documentation, and a full set of "Undocumented %s" books. Not to mention any library you might want to use.
You could get CP/M pretty inexpensively and it provided plenty of tools on the boards (BBS's).
Yeah, what you say is probably accurate for a snip of time for intel PC programmers. On Windows. Other alternatives were Turbo C and friends. I wrote a time setter for an XT that had no bios clock battery using Borland's toolset and it cost me nothing beyond the initial software cost.
You might summarize by saying every new thing for that platform was initially a cost, then imitated at a loss by Microsoft, then included in the OS distribution or dependencies.
Gnome is not like that. It's open source. Any Mono or other.NET piece can be removed. If, and that's a big Eye Eff, Gnome were to become so dependent on Mono *and* it be attacked by patent, then Gnome would take a hit, but Gnome has philosophical differences from KDE apart from QT and incompatible with proprietary.NET. It would survive. As free.
I think the newest generations of free software developers take free software for granted.
it should be noted that RMS precipitated the fight with more rhetoric about not including anything non-free.
And in response to Van Hoof's comments about VMware, Stallman said people should not write about their work on Planet GNOME "unless VmWare (sic) becomes free software. GNOME should not provide proprietary software developers with a platform to present non-free software as a good or legitimate thing."
If Planet GNOME is restricted from software developers worldwide based on the status of their current work, that's a very sad thing.
The exact wording was different, because it's usually in a different language, but it's the same meaning. Usually it's just before a totalitarian regime takes over.
Any Privacy Right, I would agree, is most closely addressed in the 9th Ammendment, but that reserves any right to Knowledge Of What Your Neighbors Are Up To for the people. That makes sense. Village and all that.
Do I have a right to interfere with you if you bring biological work home with you?....uh... yeah!
So there is an Right To Knowledge about one's neighbors that is ill-addressed in SCOTUS rulings about the ephemeral 'Privacy' meme. And you've bought it line totally sinker.
It's still a class war. Those early rulings to be AFCertain that the rich had Privacy to do their deeds.
Every time I hear the "Well, if you have nothing to hide..." canard, I want to scream. I have everything to hide -- my LIFE. To me, it doesn't matter if my life is perfect, "normal," and utterly free of sin, excess, and debauchery -- it's still MY life, and no one else's business.
Isn't it?
In small nomadic tribes you find that everyone is aware of what goes on in situations that you and I would consider private; How often you have sex and with whom, what you are making and when it is done and when you failed to work on it as you had boasted, what music you listen to or create, your financial transactions insofar as trade with others (you could probably get away -for awhile- with squirrelling away extra arrowheads) and on and so on.
This surely was a result of their need to survive. It takes a Village to raise a child but it also takes a Village to keep the child in the adult at bay.
Can we afford privacy for the masses?
My fear is the evolutionary pressure toward insular individuals. There's a slippery-slope in privacy too. My works are private (eg. mine) so you must not do the same without acceptance from me. This attitude provided for shamans but sporadically created insular Priest-God enclaves. My art is private... and only our group can make Art. WE are the protectors so we must be supported in a proper manner. Show us your closet!
But the whole idea of a closet is a privilege of the upper caste.
I sometimes wonder if cave-paintings are those societal outliers trying to be certain that their acts were private. Guess the joke's on them!;)
This is a superficially compelling argument, but it's also one that scientists have considered and rejected. One test is that the urban heat island effect should be less pronounced on windy days than calm days. That's because if this warming is just caused by local exhaust vents, wind should carry that heat away whereas calm weather won't. This doesn't happen:
Radiant energy doesn't get carried away by winds. Urban heat envelopes primary cause is pavement and concrete. Think- warm-air exhaust would *rise* on calm days. I'd expect a larger influence to ground-based sensors on windy days because something has to be upwind, excepting the case where the sensor is on the very edge of the urban environment.
A similar scenario is being able to select which I run, 32 or 64 bit. I did that for awhile with Firefox both to compare their general performance and to try things on one first as a kind of experimental environment. The reasons are really immaterial. I don't see a palatable way to do this with FatELF though. Another edge scenario, admittedly.
that's not the issue. The whole point of FatELF is to deliver binaries. I may have missed it in his site project description and FAQ but I was left thinking that I'd not be able to similarly substitute 32bit app as I now do.
The moment a person truly places their faith and trust
Ok, I'm bored so I was looking back through comments and, in the interest of conversation, wanted to address this particular issue. I asked if you ever doubted. Your answer implies that you must accept without doubt, otherwise it would seem to me that it is not "truly" accepting.
It's a bit like the "you must be this tall" limit placed on the bigger rides at the amusement park. If you have doubt you still can say you believe, and you can even temporarily blind yourself to your doubt but it will resurface. Does God let you stand on tippy-toes?
And even for the tallest of us, if s/he should throw someone out of the ride to their death, then that person is not separate? But the person who was not able to be tall enough is forever and ever *pwned? And pity the poor sap who never got into the park at all! Didn't even know there was all this ridage and heightage and whatnot going on. He must surely sit furthest from the ride-master of anyone.
* You no longer need to have separate/lib,/lib32, and/lib64 trees.
from what I gather he's not talking about system lib but application-specific trees. So for the majority of us using 64bit systems in a mixed world, only from those developers who chose to use FatELF would we derive any benefit. Even then the vast majority of dependant libs would still be required. And the compat libs. Skype anyone?
Over time it might prove beneficial. But over time the status quo will become 64bit. To me its a wash. Especially since I've experienced some times, admittedly fairly rare in the major repositories, but nonetheless times when a misbehaving application is pulled or broken in x86_64 but not i386 and I've been able to temporarily run the 32bit version. Since FatELF would, apparently, take that power away from me and defer it to systems-magic, well, as the shark's say; "for that reason, I'm out".
I have to say that after college, medical school, graduate school, and over 12 years of virology and immunology research, I've read a lot of stuff (including popular science that was meant to be educational) that was ridiculous.
and you couldn't find a moment to correct some of it? as another replyer says; 'Welcome to Slashdot'.
If you are happening to doubt when, oh say, a meteorite decides to target your cerebellum and you die while not actually being certain and trusting, wouldn't God consider you a separate?
On the other hand, if you are full of trust and invitation to God and Jesus and you decide that you just can't cut it here on Earth and that it would be a good thing and you suicide, would not God consider you faithful and faultless?
So, in effect, it *does* matter how you die.
Except that no rule set unambiguously covers all scenarios so it really doesn't. namene?
I installed to my laptop and a vb hosted by linux. The former is Vista 32bit and the latter is XPpro 32bit. Both of them seem to get a small performance boost having removed defender and avg.
My concern, however, is that when you consider the software that inspects every download or launch on your computer, well, that's the AntiVirus (AV) domain. I'm not sure I like Microsoft having a direct feed.
Is anyone watching that it's not abused?
--- so let's go ahead and go there. the tinfoil conspiracy perspective would probably rest on the concept of 'absolute power corrupts to the absolute extent...'
My question is not about intent, it's about motive. I think Microsoft has a strong motive to collect statistics of what files are examined. Rolling that up to "your GUID uses iTunes on Sunday" is not a stretch.
--- a clear corollary to having a direct feed of what is installed and what is used - This gives this entity control enough to allow a profile (eg. communicates over non-standard port, sends identifyable information, is uninteruptable) to be skipped.
--- I'm going to keep Microsoft Security Essentials installed there, but thanklinus I can NOT run it where it matters to me.
AVG leading McAfee and Norton by a significant margine. Some other "Unknown" a/v has 35% but is not avast. These are not corporate computers.
If you click on the Get More Charts link you can see the entire array. Another I found interesting was Home Premium lead among Vista uses. Again, not corporate.
RAM has 2-3GB leading so I'd think these are mostly 32-bit systems. It would be nice if that were a metric.
I don't know how many you would want to put in. They take a lot of space. What with the large coats, bling and Cadillacs, well, putting them all in storage is pretty big deal.
jesus. geeks. peeps. c'mon!
They're outside because it is pleasurable.
obviously indeed...
If you pulled such a stunt with me I'd meet you in the parking lot. I'd slash your tires and seduce your wife. I'd sell your kids into some underground market. I'd burn your house and smack you so hard your DNA would be bruised.
Ok, hyperbole aside, I do want to point out that there are code that do not require any comments. Surely you can think of an example. And there are code that is clear, but still deserves some explanation of intent due to the clarity of the code but the abstractions between it and its supplier or consumer. I'm sure you can think of an example. And there is the case where the existing implementation is replaced entirely with some facility that was not previously available or maybe simply done better. I'm sure...
In each case the documentation need is quite different.
My general rule is the longer I spent thinking about it, the more I should probably say about it. That's not one-to-one with code comments though. I might reasonably add explanation to the design and implementation docs if that's the environment I'm in. My general assumption is that I *cannot* explain the code better than the code explains itself. I should *not* mislead the next programmer into a false sense of security or understanding. If s/he is unable to understand the code as written then there's a management issue to resolve regarding skills resourcing, but I *must* not presume I know that person to-be.
As a pragmatic measure I tend to comment more than I feel is necessary for myself. That's due to an experiential regression issue with my later understanding of what I did earlier ;) That includes TODO or HACK comments for which I can grep; I find that *really* useful. I'd at least have put /*ME yeah, I don't like that either*/ where ME are my initials so I can find it later. I'd probably have put a version marker in there too. And I would want to see a comment explanation of any bit of the code that did something in a novel or unusual way. I often include in such a comment the url that helped :)
But not having comments at all? I prefer that to badly outdated, imprecise and *incorrect* comments. It's hard to quantify but, when faced with the latter, I find I waste many many more hours finding the original req, asking around, finding the original programmer, etc. than if there were just nothing at all. The code I can believe. When someone contradicts the code there is a bug. I *do* enter bugs on code review of such mis-matches.
My guess is that in the same day you'd be too busy talking to management. brava.
The kick I got from modifying Commodore VIC20 BASIC programs was that I could easily make it do things. For me, creating a loop where x was incremented and printing out the correct final value was just fascinating all in of itself. If the little-brother has no interest in such minutae he'll likely be a very poor programmer.
If I allow myself to assume that the whole point is a reaction to a request from the 12 yr old, and not as it appears simply another of those HowToTeachKidsProgramming.post("/.") or worse a misguided attempt to make the little-one into a facade of the older-one then I would advise this course of action:
Ask him to describe delivering a newspaper (or some other manageable short task). First thing you'll notice is he thinks about delivering newspapers, not just a single newspaper. Then he'll spin about with monster robotic solutions. He'll not initially notice that there is an address lookup to the routine. Probably traffic avoidance will be his focus but properties have boundaries and some customers get really aggravated when you don't keep to the concrete walks. Point is, it's fairly hard. And harder to explain.
In short, the best language to start a pre-pubescent or adolescent into programming is his native spoken language.
If I allow myself a further extension and consider how to nurture a beginner who has interest and maybe has poked (see what I did there?! ;) around a little with programming environments or tools and has been mostly unsuccessful, I would suggest a shell, even command.com if necessary. I think being able to list and manipulate files and iterate through file directory hierarchies poses enough of a challenge to assess the student's organizational and motivational resources.
I would urge that an early lecture would cover Leverage (effort vs. work done). The right tool and language for the right job is an unbeatable combination. He should know early-on that C++ is not something to ftp files into your database, usually.
Do put him in front of the environment early on, even if you advise that it may seem too hard at first. The newspaper example can be redirected as a copy a file shell script. And you can show him how to stub out the address lookup (and explain that such 'hard-coded constants are a bad thing'. And you can grow that into a full-blown model of the domain, actually.
It's not about language.
dude. you're talking Apple. did they ride the bandwagon to assure interoperbility? No, they have their own vision.
I did not release XT-Clock because of any political concern. I did so because I needed it and I figured other people might need it. I spent more time than I like to admit thinking of ways to make it available. The machine I was working with was a sale item at a local appliance chain. Heavily discounted and proportionally diminuated.
I spent far less time in writing it.
This was the days of newspaper, evening news on NBC, and BBS by dialup. BI.
I would make the same choice now .
FUD and just plain wrong.
OSS is Open. You can branch it at any time. You can modify it at your will. That is, to say, it's Point.
To the dotter'ing fool who marked you insightfull, you will now turn in your card. now. yes. now.
You could get CP/M pretty inexpensively and it provided plenty of tools on the boards (BBS's).
Yeah, what you say is probably accurate for a snip of time for intel PC programmers. On Windows. Other alternatives were Turbo C and friends. I wrote a time setter for an XT that had no bios clock battery using Borland's toolset and it cost me nothing beyond the initial software cost.
You might summarize by saying every new thing for that platform was initially a cost, then imitated at a loss by Microsoft, then included in the OS distribution or dependencies.
Gnome is not like that. It's open source. Any Mono or other .NET piece can be removed. If, and that's a big Eye Eff, Gnome were to become so dependent on Mono *and* it be attacked by patent, then Gnome would take a hit, but Gnome has philosophical differences from KDE apart from QT and incompatible with proprietary .NET. It would survive. As free.
I think you don't really understand it.
it should be noted that RMS precipitated the fight with more rhetoric about not including anything non-free.
And in response to Van Hoof's comments about VMware, Stallman said people should not write about their work on Planet GNOME "unless VmWare (sic) becomes free software. GNOME should not provide proprietary software developers with a platform to present non-free software as a good or legitimate thing."
If Planet GNOME is restricted from software developers worldwide based on the status of their current work, that's a very sad thing.
That's crap.
As I've demonstrated in http://slashdot.org/comments.pl?sid=1470340&cid=30372884, it's unnatural for the common person to have any significant privacy due to both pragmatic as well as philosophical constraints.
What he said is True, in the logical domain. What rubs is its implication towards our station.
The U.S. Constitution does not convey privacy ( http://www.usconstitution.net/constnot.html#privacy ). it's more about not being bullied. IMO.
Any Privacy Right, I would agree, is most closely addressed in the 9th Ammendment, but that reserves any right to Knowledge Of What Your Neighbors Are Up To for the people. That makes sense. Village and all that.
Do I have a right to interfere with you if you bring biological work home with you? ....uh... yeah!
So there is an Right To Knowledge about one's neighbors that is ill-addressed in SCOTUS rulings about the ephemeral 'Privacy' meme. And you've bought it line totally sinker.
It's still a class war. Those early rulings to be AFCertain that the rich had Privacy to do their deeds.
Which works against the rest of us...
Isn't it?
In small nomadic tribes you find that everyone is aware of what goes on in situations that you and I would consider private; How often you have sex and with whom, what you are making and when it is done and when you failed to work on it as you had boasted, what music you listen to or create, your financial transactions insofar as trade with others (you could probably get away -for awhile- with squirrelling away extra arrowheads) and on and so on.
This surely was a result of their need to survive. It takes a Village to raise a child but it also takes a Village to keep the child in the adult at bay.
Can we afford privacy for the masses?
My fear is the evolutionary pressure toward insular individuals. There's a slippery-slope in privacy too. My works are private (eg. mine) so you must not do the same without acceptance from me. This attitude provided for shamans but sporadically created insular Priest-God enclaves. My art is private... and only our group can make Art. WE are the protectors so we must be supported in a proper manner. Show us your closet!
But the whole idea of a closet is a privilege of the upper caste.
I sometimes wonder if cave-paintings are those societal outliers trying to be certain that their acts were private. Guess the joke's on them! ;)
Radiant energy doesn't get carried away by winds. Urban heat envelopes primary cause is pavement and concrete. Think- warm-air exhaust would *rise* on calm days. I'd expect a larger influence to ground-based sensors on windy days because something has to be upwind, excepting the case where the sensor is on the very edge of the urban environment.
that is the funniest thing I've read all week. Make that all month!
fair enough. technically possible.
A similar scenario is being able to select which I run, 32 or 64 bit. I did that for awhile with Firefox both to compare their general performance and to try things on one first as a kind of experimental environment. The reasons are really immaterial. I don't see a palatable way to do this with FatELF though. Another edge scenario, admittedly.
that's not the issue. The whole point of FatELF is to deliver binaries. I may have missed it in his site project description and FAQ but I was left thinking that I'd not be able to similarly substitute 32bit app as I now do.
Ok, I'm bored so I was looking back through comments and, in the interest of conversation, wanted to address this particular issue. I asked if you ever doubted. Your answer implies that you must accept without doubt, otherwise it would seem to me that it is not "truly" accepting.
It's a bit like the "you must be this tall" limit placed on the bigger rides at the amusement park. If you have doubt you still can say you believe, and you can even temporarily blind yourself to your doubt but it will resurface. Does God let you stand on tippy-toes?
And even for the tallest of us, if s/he should throw someone out of the ride to their death, then that person is not separate? But the person who was not able to be tall enough is forever and ever *pwned? And pity the poor sap who never got into the park at all! Didn't even know there was all this ridage and heightage and whatnot going on. He must surely sit furthest from the ride-master of anyone.
weird.
see http://www.hedoesnottrulyloveyou.net/
from what I gather he's not talking about system lib but application-specific trees. So for the majority of us using 64bit systems in a mixed world, only from those developers who chose to use FatELF would we derive any benefit. Even then the vast majority of dependant libs would still be required. And the compat libs. Skype anyone?
Over time it might prove beneficial. But over time the status quo will become 64bit. To me its a wash. Especially since I've experienced some times, admittedly fairly rare in the major repositories, but nonetheless times when a misbehaving application is pulled or broken in x86_64 but not i386 and I've been able to temporarily run the 32bit version. Since FatELF would, apparently, take that power away from me and defer it to systems-magic, well, as the shark's say; "for that reason, I'm out".
and you couldn't find a moment to correct some of it? as another replyer says; 'Welcome to Slashdot'.
sigh
Do you ever doubt? Ever?
If you are happening to doubt when, oh say, a meteorite decides to target your cerebellum and you die while not actually being certain and trusting, wouldn't God consider you a separate?
On the other hand, if you are full of trust and invitation to God and Jesus and you decide that you just can't cut it here on Earth and that it would be a good thing and you suicide, would not God consider you faithful and faultless?
So, in effect, it *does* matter how you die.
Except that no rule set unambiguously covers all scenarios so it really doesn't. namene?
crap. you made me spill my beer! LOL
who has time for therapy :P
I installed to my laptop and a vb hosted by linux. The former is Vista 32bit and the latter is XPpro 32bit. Both of them seem to get a small performance boost having removed defender and avg.
My concern, however, is that when you consider the software that inspects every download or launch on your computer, well, that's the AntiVirus (AV) domain. I'm not sure I like Microsoft having a direct feed.
Is anyone watching that it's not abused?
---
so let's go ahead and go there. the tinfoil conspiracy perspective would probably rest on the concept of 'absolute power corrupts to the absolute extent...'
My question is not about intent, it's about motive. I think Microsoft has a strong motive to collect statistics of what files are examined. Rolling that up to "your GUID uses iTunes on Sunday" is not a stretch.
---
a clear corollary to having a direct feed of what is installed and what is used - This gives this entity control enough to allow a profile (eg. communicates over non-standard port, sends identifyable information, is uninteruptable) to be skipped.
---
I'm going to keep Microsoft Security Essentials installed there, but thanklinus I can NOT run it where it matters to me.
Stop picking on Billy!
AVG leading McAfee and Norton by a significant margine. Some other "Unknown" a/v has 35% but is not avast. These are not corporate computers.
If you click on the Get More Charts link you can see the entire array. Another I found interesting was Home Premium lead among Vista uses. Again, not corporate.
RAM has 2-3GB leading so I'd think these are mostly 32-bit systems. It would be nice if that were a metric.
citation needed.
I read through wikipedia's page on the topic and it would appear this is un-factual (or Fox-like, if you prefer)
I don't know how many you would want to put in. They take a lot of space. What with the large coats, bling and Cadillacs, well, putting them all in storage is pretty big deal.
err, wait...