9,772 reputation
12143
bio website en.wikipedia.org/wiki/…
location United States
age 70
visits member for 4 years, 8 months
seen 9 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.


Nov
10
comment How many types of programming languages are there?
I remember that one. I may have even used it. Boy, that was state-of-the-art. You didn't have to manually guide the milling machine, just push the start button. And if there was a bug, all hell would break loose.
Nov
10
comment How many types of programming languages are there?
@sova: (continued) You don't have to master all the off-putting math. For me, what mattered was the framework it gave me for thinking about things.
Nov
10
comment How many types of programming languages are there?
@sova: For me, information theory was a great revelation (both Shannon and Kolmogorov). It's about how meanings are encoded and passed through channels, with concepts of bandwidth, error-detection, minimal coding, randomness, etc. So, data encodes information, and algorithms are channels. Programs encode information, and programming is a channel. So, what information is encoded? where does it come from and when? where is it going to? what are the sources of errors (noise)? how are they corrected? I found that a useful perspective.
Nov
9
comment What do you optimize for?
++ I think everyone would agree, but here's my problem. When systems get big, they get loaded down with data structure, which "notifications" try to keep consistent. That's how programmers are taught to work, and it ends up with massive performance cost, because those things compound in layer upon layer upon layer. If I were back in teaching, I would try to teach how to be ruthlessly minimalist, when it comes to data.
Nov
9
comment Should I use a parser generator or should I roll my own custom lexer and parser code?
++ Good experience. I wouldn't put too much weight on performance. It's easy for otherwise good programs to be slowed down by something silly and unnecessary. I've written enough recursive-descent parsers to know what not to do, so I doubt if there's anything much faster. After all, the characters need to be read. I suspect parsers that run off tables will be a bit slower, but probably not enough to notice.
Nov
9
comment Should I use a parser generator or should I roll my own custom lexer and parser code?
++ This answer is exactly what I would say. I've built numerous languages and almost always used recursive descent. I would only add that there have been times when the language I needed was built most simply by layering some macros on top of C or C++ (or Lisp).
Nov
9
comment What's a nice explanation for pointers?
++ That's more or less the way I taught the subject.
Nov
9
comment What's a nice explanation for pointers?
++ There's nothing like teaching to make you think about these things.
Nov
9
comment What's a nice explanation for pointers?
++ This is exactly how I was going to explain it. I started out in Fortran (for better or worse!). In Fortran, way back then, we used parallel arrays instead of arrays of structs (no such thing as new). If one array contained an index of "another row" in the arrays, we called it a "pointer", and this was exciting. We made linked lists, trees, you name it.
Nov
5
comment How important is the ability to touch-type?
@Nemi: I was a h&p programmer on keypunches. It was even harder on the old teletypes because the keys were so stiff. On the other hand, I've seen h&p journalists going like mad with just their index fingers. Go figure. But I'm glad I "learned" to type.
Nov
3
comment What's the most absurd myth about programming issues?
@MarkJ: Well, OK, if you insist. I'm just trying to knock folks out of their rut where they believe rather than thinking. Another think I like to say is it doesn't matter where a program "spends its time", but why.
Nov
2
comment What is abstraction?
@Jason: "If a change in one place makes you have to make multiple changes elsewhere, then your abstractions are bad." I'm with you there. I seem to be surrounded by bad ones.
Nov
2
comment What is abstraction?
OK, you get a gold star for professorism :)
Oct
27
comment What is a Ph.D. good for in the software industry?
@mlvljr: Minsky was my thesis advisor.
Oct
26
comment What is a Ph.D. good for in the software industry?
@mlvljr: I might point out that Isaac Asimov and Marvin Minsky both have Russian heritage.
Oct
4
comment Why is Lisp useful?
++ Makes sense, especially the last sentence.
Oct
3
comment I am in a rather difficult work situation. Should I stay or should I go?
Excellent question. Widely applicable.
Oct
3
comment I am in a rather difficult work situation. Should I stay or should I go?
++ Very wise, especially the part about staying in the job while you look for another.
Oct
2
comment I am in a rather difficult work situation. Should I stay or should I go?
@Bob: I'm sure you're right. I haven't worked at any (well, maybe one - a lottery business). Some were just trying to start up something that sounded good so they could sell it in a few years and go buy a yacht.
Sep
27
comment Is Java “dead in the water” as a consequence of Oracle buying Sun and subsequently suing Google
@Dean J: Well, my examples are DAO, Fortran, and C/C++. We built a product, using a 3rd-party grid control, based on DAO, and the programmers move on. Whattayaknow - MS tries to rip it out from under us. Fortran (not that I like it): try to stick with one compiler - you can't, you gotta keep buying new ones, 'cause the old ones don't work with customers' new machines. Same for C and C++. But what if I don't WANNA do .net? What if I LIKE VC? Too ****ing bad, soldier.