[lbo-talk] The extreme Google brain

Chuck Grimes cgrimes at rawbw.com
Sat May 2 12:04:32 PDT 2009


[This was offlist, but I thought there would be list members who would be interested..]

``...code as if there DEFINITELY are mistakes in your code. my life is now so much easier, knowing there is no perfect code...''

This reminds me of my final project in Fortran and solving the quadratic. I started off with an if-then filter for coefficients (A,B,C) input and realized I was testing input that kept the solutions all real. Then I found some code in a Basic text for complex roots, so I translated that into Fortran. So I constructed the if-then filter to call the complex subroutine and pass those inputs that failed the real test. The ones that passed the real test dropped out by default and followed the subroutine algorithm for the real solution. The writeline for output was a little tricky, because it involved two different nested print loops with the appropriate notation. The whole program was about a 100 lines or a page and half with output examples.

Ah, the sound of pneumatic pumps of the card reader, the ozone in the card punch machine room, the roar of the drum printers. All of this was on a CDC 6400 in the basement of Evans with guys milling around with their shoe boxes at three or four o'clock in the morning. Then I'd get up at seven or eight, get my kid to school, and go to work in yet another dying wheelchair shop.

``... before Fortran90 there was no way to create interesting data structures. hell, i didnt even know what that meant. Abstract Data Type: HUH????? WHA???? ...''

I left off just as Fortran77 was coming out. I had to look up 90 and ADT and read a little. Here is what I read:

http://polar.ncep.noaa.gov/mmab/papers/tn185/cpp185.html

I got through most of it this afternoon so I could get a rough idea of what you are doing. While I was reading it, I was struck by how clear it was, and how unclear most programming language textbooks are.

There is a real difference of philosophy going on. The scientific computing world explains the concepts involved with examples. The non- scientific world seems to skip the concept building, and go immediately for coding by examples, like learning algebra in secondary school. The basic difference seems to be, in the non-sci world, the writer assumes the reader can not understand the concepts, so they just skip to practice and exercise and maybe the reader will get the idea that way. Grumbine by contrast assumes the reader understands most of the concepts involved and then teaches the new concepts on the basis of assumed knowledge base.

Getting back to my other experience in Biophysics, there was one member of the team who worked at Lawrence Livermore where she had access to top end computers and software environments. Her speciality was fluid dynamics modeling. She took the basic theory and wrote out the equations for the hormone flows through the plant root. Then she converted that equation into a computer model of that flow. We took empirical data which I collected and entered into data arrays, as coordinates from a linear trace on photographs. Those data sets were run through the model simulation as inputs. Then using various constructed data sets, she changed the factors in the simulation to show that the assumed explanation closely followed the empirical data.

If you follow all that, my job became one of technical illustrator. I pulled these two different data output sets into Illustrator and superimposed them as two different curves, one in dot-dash, the other smooth lines on a graph chart. I got this idea from reading astronomy where they do the same thing. They show what some model predicts and what observation data actually shows. The correspondence was stunning.

After I was laid off, I did a graduate student poster with one of the false color microscopy photos and drew dashed lines over the photos to show the flow path and then quoted the pieces of the fluid dynamics equation component part that corresponded to the illustration. God damned this was fun. Unfortunately, later analysis showed this was wrong. But never mind that science detail. It was a fun illustration job. I put that poster in my design portfolio as an example of my technical illustration skills. I was shooting for LBL and NASA look and feel.

There is a message here for you. Get a graduate student who has played with illustration and get them to present your model results. The science types are really suckers for good illustration. If it is done right, you end up with an excited cluster around your poster presentation at conferences. Science needs to be well illustrated to communicate its contributions to the world.

Yes, I should play with Mathematica. I left off with MathCad....

[This was offlist, but I thought there would be list members who would be interested..]

``...code as if there DEFINITELY are mistakes in your code. my life is now so much easier, knowing there is no perfect code...''

This reminds me of my final project in Fortran and solving the quadratic. I started off with an if-then filter for coefficients (A,B,C) input and realized I was testing input that kept the solutions all real. Then I found some code in a Basic text for complex roots, so I translated that into Fortran. So I constructed the if-then filter to call the complex subroutine and pass those inputs that failed the real test. The ones that passed the real test dropped out by default and followed the subroutine algorithm for the real solution. The writeline for output was a little tricky, because it involved two different nested print loops with the appropriate notation. The whole program was about a 100 lines or a page and half with output examples.

Ah, the sound of pneumatic pumps of the card reader, the ozone in the card punch machine room, the roar of the drum printers. All of this was on a CDC 6400 in the basement of Evans with guys milling around with their shoe boxes at three or four o'clock in the morning. Then I'd get up at seven or eight, get my kid to school, and go to work in yet another dying wheelchair shop.

``... before Fortran90 there was no way to create interesting data structures. hell, i didnt even know what that meant. Abstract Data Type: HUH????? WHA???? ...''

I left off just as Fortran77 was coming out. I had to look up 90 and ADT and read a little. Here is what I read:

http://polar.ncep.noaa.gov/mmab/papers/tn185/cpp185.html

I got through most of it this afternoon so I could get a rough idea of what you are doing. While I was reading it, I was struck by how clear it was, and how unclear most programming language textbooks are.

There is a real difference of philosophy going on. The scientific computing world explains the concepts involved with examples. The non- scientific world seems to skip the concept building, and go immediately for coding by examples, like learning algebra in secondary school. The basic difference seems to be, in the non-sci world, the writer assumes the reader can not understand the concepts, so they just skip to practice and exercise and maybe the reader will get the idea that way. Grumbine by contrast assumes the reader understands most of the concepts involved and then teaches the new concepts on the basis of assumed knowledge base.

Getting back to my other experience in Biophysics, there was one member of the team who worked at Lawrence Livermore where she had access to top end computers and software environments. Her speciality was fluid dynamics modeling. She took the basic theory and wrote out the equations for the hormone flows through the plant root. Then she converted that equation into a computer model of that flow. We took empirical data which I collected and entered into data arrays, as coordinates from a linear trace on photographs. Those data sets were run through the model simulation as inputs. Then using various constructed data sets, she changed the factors in the simulation to show that the assumed explanation closely followed the empirical data.

If you follow all that, my job became one of technical illustrator. I pulled these two different data output sets into Illustrator and superimposed them as two different curves, one in dot-dash, the other smooth lines on a graph chart. I got this idea from reading astronomy where they do the same thing. They show what some model predicts and what observation data actually shows. The correspondence was stunning.

After I was laid off, I did a graduate student poster with one of the false color microscopy photos and drew dashed lines over the photos to show the flow path and then quoted the pieces of the fluid dynamics equation component part that corresponded to the illustration. God damned this was fun. Unfortunately, later analysis showed this was wrong. But never mind that science detail. It was a fun illustration job. I put that poster in my design portfolio as an example of my technical illustration skills. I was shooting for LBL and NASA look and feel.

There is a message here for you. Get a graduate student who has played with illustration and get them to present your model results. The science types are really suckers for good illustration. If it is done right, you end up with an excited cluster around your poster presentation at conferences. Science needs to be well illustrated to communicate its contributions to the world.

Yes, I should play with Mathematica. I left off with MathCad....

CG



More information about the lbo-talk mailing list