12,972 reputation
53046
bio website
location
age
visits member for 4 years, 8 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.

22h
comment How can I get good internship without a prestigious college?
The standard advice for things like this is "Talk to your professors." They will know of local firms offering internships, and their recommendations WILL carry weight with those firms.
1d
comment Is byte stuffing required when using a packet field length
@supercat: The question was about a protocol for data to be transmitted via TCP. TCP provides a reliable medium for payload data. That was one of the specific requirements for its design, back in the 1970s.
May
12
comment Is 25% to me as sole author a good deal?
@Bobson: +1000 if I could.
May
12
comment GPLing an implementation of a patented algorithm
There's a flip side that you may not have considered. It is POSSIBLE that the paper published ten years ago constitutes prior art which would invalidate their patent. If someone else wrote that paper, whatever it disclosed may not have been theirs to patent. You REALLY need to consult a patent attorney on this one.
May
12
comment What is the most efficient / fastest way to keep a list in order?
@JamesJackson, upvoted it for you.
May
6
awarded  Nice Answer
Apr
23
comment Is it common to print out code on paper?
@user1249: It was the photon torpedo routine from the Matuszek-Reynolds-McGehearty-Cohen "STARTRK" ("Star Trek") game. It was written in FORTRAN IV. It had to parse the command, simulate the flight of either one or three photon torpedoes (possibly aborting if a misfire occurred), with perturbations, AND set up a stack to do 8-way connectivity of stars going nova when torpedo'ed or being adjacent to a star going nova, and killing off any Klingons adjacent to said stars. FORTRAN IV did not do recursion, and there just wasn't any way to factor it that didn't make it worse.
Apr
23
revised How does multitasking work
Add "priority inversions" to incomplete list of bad stuff.
Apr
10
comment Is there a license that prohibits code share and using outside the company?
You need to consult an attorney on this one.
Apr
7
comment Has pre-increment operators become that common?
Historical background: The postincrement and predecrement operators have their roots in the PDP-11 indirect addressing modes. The addressing modes were designed that way SPECIFICALLY to facilitate operand stack PUSH/POP operations, stack-based subroutine call/return, and immediate operands (using postincrement on the program counter). C provided those cases to make it easy to generate tight code for computers with (by 21st century standards) microscopic memories. Later, they were generalized. I never see preincrement or postdecrement operators used.
Mar
30
comment Does path coverage guarantee finding all bugs?
Dijkstra actually said that on several occasions. Earliest I could find on a very quick Google was 1966 (just under 50 years ago!), again in 1970, and again in 1972, in his Turing Award lecture.
Mar
30
answered Source file shouldn't be more than 100 SLOC
Mar
4
comment Is it always a best practice to write a function for anything that needs to repeat twice?
Actually, you want something like (mapc #'print name-list), and then something like (mapc (lambda (l) (mapc #'print l)) (list vip-list guest-list)). You can actually do things like this in C and C++, but it WILL baffle those of your coworkers who have never read the Wizard Book.
Mar
4
comment In ifs inside for loops, prefer checking for true, or for false and continue?
No, different kinds of PROGRAMMERS will use different things. A lot depends on what you grew up with. PERSONALLY, I do not use "continue", and I try very hard not to use "break" in anything other than a C/C++ "switch" statement "case" arm.
Mar
3
comment Helping testers who don't have specialized domain knowledge
Thinking like a user is not enough. In an article about the development of Zork, a very early text adventure game, one of the Four Great Implementors told a tale. One day, he made a modification on the weapons technology module, and made it possible for the player to acquire the axe wielded by a certain Very Bad Dude. (Normally, the axe vanished in a puff of smoke when the VBD croaked.) He told one of their better testers. The tester immediately said "GREAT! I'm gonna go chop down some trees in the forest!" Oops.
Mar
3
revised Helping testers who don't have specialized domain knowledge
edited body
Mar
2
answered Helping testers who don't have specialized domain knowledge
Mar
1
comment Protect memory from a potentially seg faulting function call
@rwong (continuing previous comment) Gypsy was designed to be formally verifiable AND to be suitable for systems programming. It did not have direct hardware access primitives; those were required to be supplied using assembly language (and by definition were not verifiable). HOWEVER, comma, the VAST amount of C and C++ code out there does NOT require direct hardware access primitives, nor does it require the ability to GOTO heck in a handcart. (Gypsy did not have a GOTO statement. Nobody missed it.)
Mar
1
comment Protect memory from a potentially seg faulting function call
@rwong, in the late 1970s, I was an undergraduate research assistant on Don Good's Certifiable Minicomputer Project. The project was doing research into formal verification. They were doing the work in Gypsy, a language that they developed, that was specifically designed to be robust and verifiable. Verification condition ("theorem") generation was completely mechanical and NO BIG DEAL.
Feb
23
comment Are there memory-memory instructions?
Older processors, most notably the DEC PDP-11 and TI 990, provided memory-to-memory instructions. Current-gen processors are almost all load/store machines, that do not do memory-to-memory.