Beneficial effects of lightweight packing

Just back from CIBCB’10 which was held in Montreal Canada.  Great city, a fun chance to practice my small amount of French, good food, good company, and great science.  GSU actually showed up quite well with three (of about 25) accepted papers (two from my lab – but all the graduate students whose papers were accepted share the same office). You can get the details from the conference website, and the proceedings – so I won’t bore you with them here.

I was surprised at how light-weight I packed.  For a 4-day trip, I went easily on carry on, which isn’t surprising.  However, I went with a daypack!.  My lighter weight bias has resulted in using lighter more compact clothing, and fabrics that are rinse and wear.  Since it was so light I could sprint around the airports or to catch the 747 bus to the airport (Montreal has a direct express bus to the airport, $7 buys a daypass for it).  Since the clothes wash so easily, I came back with only one set of dirty clothes – so as usual – I overpacked.


On controls in science

There was a bit in the Atlanta fish-wrapper this morning by one of the local “child rearing advisors” (can’t call her/him/it a psychologist in good faith).  To skirt the laws of libel I’m not identifying him/her/it any further, but let’s just say it/him/her is of the “smack’em hard, lock’em up” school of parental advise. (it might be more charitable to say the ‘children should be neither seen nor heard school – which makes great foot soldiers and poor Americans)  The article was about fish oil or dietary supplements for ADHD and ended with

“Although these parent reports are dismissed as non-scientific by what I term as the ADHD establishment, the issue boils down to one fundamental question: Why would these parents say their kid’s behavior improves if it didn’t?”

Can you spell placebo?

More seriously there is an expectation effect in science.  People, and scientists are people, see the results they want to see.  That’s why we do control experiments.  It’s also why magicians wear slightly outlandish clothes and use pater. One of the difficulties in a complex experiment, and children are complex, is that this expectation effect is very pronounced.  Simply doing anything will have an effect.  I could develop a “theory of re-ionized water” complete with some impressive apparatus – say a UV steripen or one of the miox water purification devices, a pinch of some magic and harmless chemical – say potassium chloride, and a ritual for their application, and show that it worked.  It would really work, not by addressing the biological basis of the problem, but by cynically manipulating the experimental subjects.  The more complex and disturbing (or expensive) I make the apparatus and its associated spell the more effective it will be.

It’s a pity that there is this little thing called scientific ethics in the way.

Written by Rob in: engineering,laboratory practice,science |

Subtlety, or the art of dealing with idoits.

Subtlety, ah subtlety.  One of the difficulties with dealing with self proclaimed experts who aren’t is that they will never admit defeat in a rational argument.  To wit, after you’ve invalidated points a,b,c, and d they come up with a new bogus point e, which is validated by their years of (in)experience.

One important role of being a committee chair is to ensure that issues get dealt with quickly and professionally, but it takes both parties agreeing to be professional.

You can’t fight fire with fire.  You fight fire with water (or foam or CO2 or liquid nitrogen (pretty cool to watch) or even a rocket engine or explosive).

I realized that I could as my particular set of blowhards to advise me, hypothetically as it were (I think they understand hypothetically (well, I hope they understand it)), before we discuss the serious issue, about what to do if:

  1. Someone wanted to tear the organization (troop in this case, including firing or reprimanding an excellent scoutmaster) apart because of a perceived problem and
  2. Their proposed solution was against the organizations policies (in this case I’d read the BSA policy guide and checked with Nationally prominent, district level, other troop leaders and even one of my own old scoutmasters and received unanimous “say what?” negative responses.  The particular ‘solutions’ would have violated both advancement and youth protection policies) and
  3. They wouldn’t accept this answer, and
  4. Reliable information showed that the original problem did not really exist.

So, hypothetically, what should I do with that person?  Do we still need to discuss the issue?

While my most recent need for this has been with the scouts, I’ve run into similar problems on faculty committees so it isn’t unique to that domain.

I feel like I’m channeling Sir Humphrey in “yes minister” or one of the characters in Mark Twain’s “innocents abroad”.   I’ll let you know if I need to use this and if it works.

quote of the day.

There’s nothing like ‘Being Prepared’ is there, for what might seem possible, even if it may not seem probable.

Lord Baden-Powell

Founder of Scouting

On Rapid Prototyping

Computer science has an interesting schizoid feel to it.  There are plenty of CS people who will say that it is a branch of mathematics and that is that.  But then there is an engineering side to it and that isn’t really mathematics (though it requires the use of rigorous mathematics).

The Mathematical Approach – Mathematicians, by definition, prove things.  They tend to want the problem completely defined and tend to be upset with uncertainty.  The ideal result for them is a proof that an approach is correct (except maybe for a “set of measure zero” set of “corner cases” or “boundary cases” that can “safely” be skipped), and actually writing a program is sort of an afterthought.  Something you do, like a cross word puzzle, just to fill the time.

The Engineering Approach – Engineers get upset when things don’t work.  While they would try to prove as much as possible, eventually they actually write code and measure its performance.   For example in AMMP, the code uses a number of polynomial expansions of expensive functions and the only way to show that the order of the expansion is “good enough” is to try it out.  (you can derive and prove an error bound for the expansion, but you don’t know what the desired error bound is without trying it out).  They are much more comfortable with uncertainty, but like mathematicians want a well posed problem.

There is actually a third approach – The Scientific Approach – where you assume you don’t yet know everything you need to know.  There are “unknown unknowns”.  This is where rapid prototyping comes to the fore.  It is not good practice to design the final application or algorithm when you don’t know what you don’t know.  So how do you find out what you don’t know?  You quickly write a “just good enough” program or algorithm and you try it out.  If it works then you knew what you were doing and move on to building a sufficiently good approach with all of the critically important aspects of good software design.  If it doesn’t then you now know what you didn’t know and can design a better solution.  This iterative process of problem refinement eventually should  converge on a well posed problem.  You can’t prove that it does – certainly with random trial and error it is highly inefficient – so therefore you have to use the engineering and mathematical tools of analysis to point it in the right direction.  Done well, it is surprisingly effective and results in truly innovative computer science.

Written by Rob in: engineering,laboratory practice,science |

Maybe not quite so bad

(followup on my last post)
The structure prediction server is back online. There was a combination of events that caused it, but the fix involved:

  1. Making sure it was properly registered with the GSU authorities
  2. Fixing a weird network bug – somehow (probably related to the troubles with the cabling but possible a fossil configuration) the netmask was set to a weird value (it was set for the local net (192.168.1.x) behind a router). Why this let it talk to GSU but not the rest of the world is odd but true.

Thanks to Shaochieh and Yan Fang for their help.

Written by Rob in: laboratory practice,pedagogy |

more on “daemonic” programming

In the last post I alluded to trying to use a reactional programming model for distributed programs. Since it mimics network deamons – we call it demonic programming. (once thought about calling it project 666 – but not in the baptist south).

There are some security issues with such an approach, but they can be managed.
In addition to secure implementation of the deamon itself (i.e. it needs to be effectively sandboxed and not crash ungracefully) there are basically two features that ensure secure behavior.

  1. The XML document describes what the calculation does, but does not allow programming of the application. To put it simply the document can say add two numbers, but does not define what addition is.
  2. The deamon is stateless. No information is saved from invocation to invocation. In this sense, it is a purely functional approach. We’re used to this in the HTML world – Apache is a stateless program because requests arrive in arbitrary order and must be processed as they arrive. (when they are stateful – for example wordpress which is being used for this blog – the statefullness is via other parts of the code, like the database engine, and is always a potential security hole. It would be easier to break wordpress than apache).

    The system is then programmable in that it selects from a menu of defined (nominally secure) functions in some sequence. The sequence is controlled by the document, and more interestingly by the ability of the functions to proceed. So if events a,b,c are independent of each other, but even d requires the outputs of a & c, then a,b,c can occur in any order, but d must wait for a & c.

    There are some other issues involving what happens if you allow jobs to spawn multiple ones, and what happens if processors die, but I think it may be time to run a simulation.

Written by Rob in: engineering,laboratory practice,science |

On Simulations, or Amber, Charmm and MATLAB oh MY!

Just read one of the email newsletters that comes from the ACM, and in it a scientific panel was lamenting the sorry state of simulation science in the USA. To paraphrase, the field is flat, there is no new algorithm development, and the competition can buy similar performance machinery so we’re loosing our edge.

As a computer scientist who works in simulation, this comes as no surprise. In the application domains, the “scientists” are wedded to standard programs and cannot conceive that someone other than “the master” could write useful code or develop algorithms. I’ve personally experienced a major simulation group publishing their version of an algorithm as the “first example”, when others have published close or identical versions before them. Similarly the “high priests” of computer science have decided that programming isn’t a necessary skill – which is fine until you need to have an instantiation of a new algorithm that actually works. (programming is not computer science in precisely the same way that spelling and grammar are not parts of English literature). Matlab and similar programs are similar in their effect – people learn incantations that work, but do not understand the mathematics behind them. In fact, students who depend on these programs are singularly useless because they haven’t put in the work to understand what they are doing.

Until there is real support for research in simulation algorithms, and not just running code, this sorry state of affairs won’t change.

Written by Rob in: engineering,laboratory practice,science |

On the Dissertation Proposal

One of the steps in the Ph.D. is the dissertation proposal.  This is when a student actually says what the plan to do for the next few years of their life, and their dissertation committee gets to review it.  While it is a bit of a formality, it is actually quite important for several reasons:

  1. The work has to be sufficiently novel and interesting to be worth doing.
  2. The scope of the project has to be achievable – graduate student is not a tenured position.
  3. The amount of work has to be big enough.

It amounts to a contract – If the student does this then they can write up their dissertation and graduate.

The proposal serves another very important point though.  The primary aim of Ph.D. education is not just more stuff “piled higher and deeper”, but the ability to recognize an interesting research problem and to formulate a plan to answer it.

We have a bit of an argument in my department about this (though I’m in  a distinct minority about it), and many of the faculty treat it as a “pre-disseration” to be done just before the dissertation defense.  In the physical sciences, it is done very early in the students work – usually just after the dreaded qualifiers.  Developing the ability to structure research is even more critical in computer science, because – unlike the natural sciences – in computer science a student quite often goes directly to an assistant professorship and therefore has to be able to make these plans and proposals from the very start of their post-doctoral career.

Written by Rob in: laboratory practice,pedagogy,science |

Playing with the new Asus EEE pc1000

Always looking at new toys and I like the asus netbooks for their small size and solid state drives.

There are lots of reviews on the web about the software, and i’m not going to add to them.

As configured there is a problem with them for CS people, though. NO COMPILERS! and the usual synaptic mechanism fails. (in fact it fails badly and if you force it to work you’ll roach the operating system and have to reload). This is horrible.

But – and this is a neat feature – Asus makes a software development kit available. It can be downloaded both from Asus and sourceforge I found the sourceforge version to be much faster to download and it is a disk image that can auto install if needed.

Since I don’t have a disk reader for this box (yet) I worked around it with

sudo su

mount -o loop sdk_file_name.iso sdk

and then put a file:/// link in synaptic (pointing to the local mount point)

g++ and gcc and gjc now work fine and I can go ahead and get the rest of the tools as needed.


Written by Rob in: engineering,laboratory practice |


Well the US election is over, and I must admit I’m not disappointed (too much).  Elections are always tricky when you have students.  It is critical to make it clear that political beliefs will not influence grades.  This may sound trivial – but it is fraught with the occasional trap.  For example, I had a class on election day.  I wanted the students to be aware that voting is, in my opinion, an excellent reason to miss class.  More accurately, I didn’t want a student who was in a long wait at the polling place to feel that they had to trade their voting place for a class session.    So I sent an email to the class to make this clear.  Here’s the trap – I could have been seen as endorsing one candidate – so the email included an explicit statement that it was not endorsing a specific candidate or party.  In fact, I would not and did not discuss politics with the students because I don’t want a student to say “well because the prof. likes “X” and I like “Y” I got a bad grade” or “because ‘joe’ likes “X” and the prof. likes “X” he got a good grade”.

It also gives me a little protection in the rough and tumble world of faculty politics (which I try to avoid).

Written by Rob in: laboratory practice,pedagogy |

Powered by WordPress | Aeros Theme | WordPress Themes