9,078 reputation
11839
bio website en.wikipedia.org/wiki/…
location United States
age 69
visits member for 3 years, 7 months
seen 21 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.


Feb
3
comment How to profile a Perl + FastCGi + StarRunner web program?
You're right. 20 years ago I worked on a factory-floor system with multiple machines TTY-ing each other. It wasn't easy, but I managed to get time-stamped logs, from which I could trace the history of individual message flows across machines/processes. It wasn't fun, but I did manage to dig out some tumors. Glad you found something that works.
Feb
2
comment How to profile a Perl + FastCGi + StarRunner web program?
Hi @Paul. This is a case where, in general, my favorite method only takes you part way, because you need visibility into round-trips between server and client, although here's a case where it was effective, even with a protocol in the middle.
Jan
29
comment How can I plan optimization tasks in Scrum?
Possibly helpful ...
Jan
23
comment What performance topics should I be aware of?
That's my point. A lot of people think that, and they blissfully assume the other 99% is as optimal as it could possibly be. That's the issue.
Jan
23
comment What performance topics should I be aware of?
You mentioned caching, aliasing, branching, loop unrolling, etc. That's the last 1% of the job. The lion's share is not in things you know ahead of time, it's in things you discover as you work.
Jan
23
comment What performance topics should I be aware of?
There's what you do before you write it, and what you do after. What you do before is KEEP IT SIMPLE, especially in the class and data structure, so you avoid putting in performance problems. What you do after is TAKE OUT THE PROBLEMS YOU DID PUT IN, and be willing to do large re-writes. It's possible to reduce time by a factor of 10-100. gnat's link gives an example.
Dec
15
comment Is there any evidence that lisp actually is better than other languages at artificial intelligence?
@Giorgio: The ancestors and cousins of Prolog are mostly written in what? Lisp. Fischer Black's deduction program, Micro-Planner, etc. For me, a good book on this is Deductive Foundations of Computer Programming.
Dec
7
comment KISS principle applied to programming language design?
I would just compare C vs. PL/1
Nov
23
comment When does “proper” programming no longer matter?
Since performance is your concern, you should be asking the program what you should be looking at, not asking if your preconceived question makes a difference. Please click on this link, and do what it says. It will tell you what the program is really spending time at, and that will tell you how to make it faster.
Oct
2
comment What causes bad performance in consumer apps?
@Crash: If you're still interested, here's probably the most math-heavy explanation I've put together.
Oct
1
comment Good example of gprof, for iOS project
You sound like a fan of gprof.
Sep
18
comment understanding computers
+ Petzold is an awesome author!
Sep
15
comment Has “Not everyone can be a programmer” been studied?
@Sulthan: Not in my class they didn't. Some tried. Some tried copying from others on a test. It was obvious - the code was too much like someone else's, and at the same time contained obvious mistakes. For projects, no two were alike, and nothing raises a red flag like somebody who does mediocre work on quizzes and homework but turns in a beautiful project. I just make up another test and give it to them. If they clearly don't know which way is up, I'm under no obligation to give them a good grade. Alternatively, I can call in another professor.
Sep
6
comment Are there studies on what programming does to the brain?
IMHO, people make too big a deal out of how "abstract" programming is. Other temporarily impressive buzzwords come and go, like "virtual" and "logical" and "intrinsic" and "what-have-you-centric" and "XYZ-oriented". I think it's simply a matter of not obfuscating the rules. I taught programming to hundreds of students, and I found it was mainly a matter of learning the rules and just doing programming. If people can learn to play Bridge, or Poker, or Chess or (you name it) they can learn programming. Whether they want to is another matter.
Sep
5
comment Has “Not everyone can be a programmer” been studied?
+ I am so thankful that I have never (almost) had to go through HR.
Sep
5
comment Has “Not everyone can be a programmer” been studied?
@Den: Well, they had to do small programs for homework, they had quizzes and tests, and they each had to do a significant personal programming project, all of which I graded. The course was required.
Sep
5
comment Has “Not everyone can be a programmer” been studied?
@Jimmy: I tried to make it interesting by getting them going on personal projects about games, science, finance, music, whatever appealed to them. Programming is much more interesting when it's a means to an end.
Sep
3
comment Does it still make sense to think about effective code on micro scale in C++?
@Martin: Thanks for making my favorite point. People figure if the profiler can't find it, nobody can, which is silly, at best.
Aug
22
comment Is there any better approach to shortest path finding within a (vehicular) traffic network?
I'm not clear what N and V are. Is V the number of vertices (intersections) and N the number of arcs between vertices? Also, what is E?
Aug
16
comment How will quantum computing change programming?
@Philip: Suppose you have a 1024-entry table, so it takes 10 bits to index it. You have a 10-(qu)bit register, and it has 1024 possible states. OK, so you create a universe in which the register is 0, another in which it is 1, up to 1024 parallel universes. Then the quantum "instructions" operate on all of these in parallel. Each universe has an "amplitude vector", whose magnitude is its probability, but it also has a direction, and those are being manipulated. Since the collection of 1024 vectors has a non-zero average vector, the rotation makes one bigger, the rest smaller.