9,473 reputation
11840
bio website en.wikipedia.org/wiki/…
location United States
age 70
visits member for 3 years, 9 months
seen 22 hours ago

BS Mechanical Engr.
PhD CS(AI)
CS Prof (4yr)
Numerous consulting jobs.
15 yr at http://www.pharsight.com
Published book on CS & several articles
4 kids, 2 grand
Pilot(student)

P.S. The picture is a Beta-prime distribution. It shows the program speedup factors you can get if you see a problem twice in 2, 3, 4, and 5 samples.


Jul
7
comment How bad is it calling println() often than concatenating strings together and calling it once?
When doing console output, the real "bottleneck" is the human reader, so don't worry about it. There's nothing you can do to speed that up.
Jun
30
comment How to allow innovation in an Agile Methodology
@Kevin: I originally studied non-software engineering. I think of inventions in those fields - Sterling engines, Wankel engines, turbine engines, transistors, LSI chips, LEDs, numerous forms of aircraft. At the MIT AI Lab, inventiveness was also encouraged, because there are lots of things we don't know how to do, like intelligent learning. I've tried to be inventive in software engineering, resulting in a book, some articles, and some videos. The ratio of negative to positive responses is about an order of magnitude.
Jun
30
comment How to allow innovation in an Agile Methodology
Innovation in software development is not easy regardless of methodology because people are taught (with good reason, I suppose) to stick to the things most people agree on. I think it's because software engineering is not very scientific, compared to other engineering disciplines, in which ideas are judged on their merits, not on their conformism.
Jun
30
comment How to allow innovation in an Agile Methodology
+ I think you've got it. I think the problem is with books that tell people how to do it. (I've found it's very hard to write without making stuff up.) Our team follows "Agile" and what it means is endless meetings. One member simply said "Count me out. It's just the latest fad. If you don't need me, that's fine."
Jun
28
comment get all the combination of a given set of numbers
You might want to get the terminology right. Check out Combinations and Permutations
Jun
2
comment How can Swift be so much faster than Objective-C in these comparisons?
Caveat Emptor! It all comes down to machine language. There probably are good ideas in Swift, but charts like that are meaningless.
May
29
comment Simplicity-efficiency tradeoff
@sarepta: A group of co-workers is a team - like a little family. There needs to be mutual trust, friendship, and helpfulness. That's more important than programming techniques. I'm sure you know this, so you're doing the right thing. Then, keep your expectations low.
May
29
comment How does an optimizing compiler react to a program with nested loops?
I hope you understand that the inner loop is the only one worth optimizing, and only if some computation inside it does almost nothing. Optimizing has benefit in code only to the proportion that the program counter actually spends time in it. Of course, compilers do a lot of unnecessary optimization.
May
13
comment Is lack of whitespace a sign of a cargo cult programmer?
I work with a lot of highly-educated people who write a lot of programs, but are not software engineers. They are full of what we call bad habits. Sometimes I'm able to nudge them into writing stuff that's readable. It's not a concern that they're used to considering. They tend to smile at us with all our pseudo-religions, but when they have to maintain their own code over years, they start to see the value of indentation, spacing, meaningful names, not using the same variable for multiple pusposes, etc. etc.
May
13
comment Does profiling without benchmarking lead to micro-optimization?
@nsfyn55: You're quite right. One case where it did not point to the problem was in a manufacturing simulation where there was an asynchronous protocol between processes, and delays were caused by fast actions being prioritized behind slow ones like DB update. For that, I used a laborious logging method, which worked.
Apr
26
comment Is there a performance difference between ++x over x++?
You've heard of the streetlight effect? You're not alone in falling for it. There are so many questions like this on SO, where people wonder if language feature X is faster than Y, when real performance issues are totally elsewhere. For one thing, you can only find them after you're written and run a program and (dare I say it) -profiled- it.
Apr
22
comment True/false on the left or the right?
@Parham: Ditto. It's a case of the streetlight effect.
Apr
3
comment Trying to “combine” similar objects without doing a bazillion comparisons
Not being primarily a database person, I'm trying to understand the question. In something vaguely similar that I did ages ago, there was one database that described the structure of another database. Then, since the first one changed at low frequency, there was benefit in precompiling it.
Mar
24
comment Reason for (post/pre) increment operator in Java or C#
@Doval: I even built a language I called D, like C but with OO and parallelism features. It went nowhere (mercifully) and has no relation to the D you are talking about. I drive people crazy in C?? by always writing break; case ... ;-)
Feb
25
comment How to identify performance bottlenecks in your software
Until you get more experience, don't expect to be able to figure out in advance where the performance problems are. Instead, get it running with a workload and find out where each problem is, and fix it. To find the problem(s), this is the method I rely on.
Jan
30
comment How do I traverse a tree without using recursion?
Come on @Mat, that's kid stuff. You may disagree, like if you are afraid of bombing out on a tree that's too deep, that's a reasonable concern. You can just say so.
Jan
30
comment How to convey your approach is faster than the built-in, alternative approaches?
+ @Joan: I find if you say "It used to take a minute, and now it takes less than a second", that gets the idea across.
Jan
28
comment C++ Performance vs. Java/C#
+ It isn't about "hot path" so much as "hot spot", because where jitting matters is where the program counter spends time. Bigger apps tend not to have hot spots because at most any random point in time they are in system or library routines that the jitter doesn't see. But of course, if they actually do have hot spots, as you say, those will be optimized.
Jan
22
comment How has an increase in the complexity of systems affected successive generations of programmers?
@david.pfx: Agreed. Macros could use a debugger of their own :)
Jan
21
comment How has an increase in the complexity of systems affected successive generations of programmers?
@david.pfx: When I worked in Lisp, macros were perfect for that. In C-like languages, I would first see if I could do it just using C macros (I hated that the Java-folks deprecated those), otherwise I write recursive-descent parsers. I've done so many now, it's almost sleepwalking.