12,516 reputation
53045
bio website
location
age
visits member for 4 years, 3 months
seen 7 hours ago
Very senior embedded real-time systems programmer (Texas law is very picky about the use of the term "engineer"), unsuccessful candidate for U.S. Congress, and unreconstructed Cold Warrior.

Apr
25
comment Why do C# developers newline opening brackets?
@Craig, remember, this was at Bell Labs, back when Bell Labs was chartered to "do interesting stuff" that was not necessarily required to be practical for anything. Put smart people in a building, tell them to do some interesting research, move them out of what they do isn't "interesting", and, funny thing, INTERESTING stuff (like transistors and Unix) tends to pop out. DARPA had sort of the same focus, back in the beginning, and they funded a LOT of good work, in the name of basic research.
Apr
25
comment Why do C# developers newline opening brackets?
@Craig, You're right. UNIX started on an unused PDP-7. As far as I know, and was able to check quickly, there was never a PDP-10 (PDP-6, KA10, KI10, KL10, or KS10) implementation of it. The only 36-bit UNIX I found mentioned anywhere was a Univac 1100, that ran as a guest OS under Exec. (And I find myself trying to avoid becoming violently ill at the mere mention of a Univac 110anything...)
Apr
25
comment Why do C# developers newline opening brackets?
One quibble. Unix was never implemented on the DEC-10, only on the PDP-11 (and from there it was ported all over the place).
Apr
13
answered Is byte stuffing required when using a packet field length
Apr
7
comment Can I change operator precedence and associativity in C++?
@gbjbaanb, at least a.add(b) warns me that there's something hinky going on, that I have to track down. Years ago, I had to debug a piece of code, where the guy had done a quick copy-and-paste, and mistakenly wound up overloading '*' to be addition. First, you have to find where he DID it.
Apr
6
comment Can I change operator precedence and associativity in C++?
+1 for the second paragraph. Operator precedence and associativity is built into the common language under the programming language. Operator overloading can make code clear and concise. It can also create some incredible obfuscation. Consider the fun you would have debugging something in which (a+b) != (a+b). (Bad enough that you can't rely on f(x) == f(x).)
Apr
6
comment What process will you use to clarify functional requirements and to gather non-functional requirements?
The fundamental issue is that there is no good, objective way to test for "clear and unambiguous". You would not believe some of the crap I have seen masquerading as "requirements".
Apr
5
answered Is secretive systems development really possible?
Apr
5
comment Is secretive systems development really possible?
ARPAnet was never a classified project. It was built to allow researchers at one facility access to large, powerful computer systems somewhere else, without spending fortunes on travel.
Mar
31
comment Does the GPL allow anyone to obtain GPL software without paying for it?
@Elin, read GPLv3 section 6b. Pay particular attention to where it says "anyone who possesses the object code". Observe that it does NOT say "anyone who got the object code directly from us". Presumably, AcmeSoft is distributing their stuff under the GPL because they incorporated GPL'ed code into it, and THEY are required by the GPL to make THEIR source available downstream.
Mar
30
comment Does the GPL allow anyone to obtain GPL software without paying for it?
@Elin: I believe you are mistaken. Scenario: AcmeSoft distributed the binary to Betty, but, rather than including the source, included a promise to supply the source upon request. Betty gave a verbatim copy of the binary to Chuck, with the promise intact, as permitted under Section 4 of GPLv3. Under Section 6, item b, of GPLv3, AcmeSoft is now on the hook to give Chuck a copy of the source.
Mar
30
answered Trouble understanding the COCOMO model
Mar
30
comment Trouble understanding the COCOMO model
Basic COCOMO is better than no estimating methodology at all, and it is better than any linear (10 lines per man per day) estimator, but that's about all you can say for it. If you want any real accuracy, you need to use its big brothers, and Wikipedia is NOT the place to go to learn how to do that. Read "Software Engineering Economics", by Barry Boehm. AFTER you've read "Software Engineering Economics", read "Controlling Software Projects" by Tom DeMarco, and "Software Cost Estimation Using COCOMO II", by Boehm, Abts, Brown, and Chulani.
Mar
29
comment Does the GPL allow anyone to obtain GPL software without paying for it?
@MartinSchröder: ALL versions of the GPL are transitive that way. GPL2 AND GPL1 section 6: "Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein."
Mar
29
comment Does the GPL allow anyone to obtain GPL software without paying for it?
@MartinSchröder: Section 10, first sentence, of the GPL says "Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License." That's your transitivity right there. Betty gave it to Chuck, and Chuck automagically got the license from AcmeSoft. Chuck gave it to Dave, and Dave got licensed. Ditto Eddie and Freddy. At the end of the chain, there most certainly is a license between AcmeSoft and Freddy.
Mar
27
reviewed Approve Is it fine to make a default constructor unusable?
Mar
26
comment Does the GPL allow anyone to obtain GPL software without paying for it?
@zxq9: Not quite. The requirement in the actual language of the GPL is to give the source on request to anyone who HAS the binary, not just to anyone who got the binary directly from them. That's the point of the Betty-Chuck-Dave-Eddie-Freddy chain. The GPL explicitly forbids everyone involved at any point form restricting redistribution of binary or source.
Mar
26
revised Left and Right most Derivation
added 325 characters in body
Mar
26
answered Left and Right most Derivation
Mar
25
comment Does the GPL allow anyone to obtain GPL software without paying for it?
@zxq9, in the scenario you describe, as long as your client NEVER distributes the binary to the modified work, they can keep their changes closely-held. However, recall that they initially acquired the base code via the GPL. This imposes a requirement on them that any modified versions they make be distributed under the GPL or not at all. The moment they distribute a modified binary, the source release obligation comes crashing down on their corporate head.