<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Marcus, <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks for taking my question seriously.  I understood what I was talking about even less than I usually do. <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Let’s say I was an evil genius and wanted to introduce evil code into a project on github.  What would happen?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>N<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>Nicholas Thompson<o:p></o:p></p><p class=MsoNormal>Emeritus Professor of Ethology and Psychology<o:p></o:p></p><p class=MsoNormal>Clark University<o:p></o:p></p><p class=MsoNormal><a href="mailto:ThompNickSon2@gmail.com"><span style='color:#0563C1'>ThompNickSon2@gmail.com</span></a><o:p></o:p></p><p class=MsoNormal><a href="https://wordpress.clarku.edu/nthompson/"><span style='color:#0563C1'>https://wordpress.clarku.edu/nthompson/</span></a><o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div><p class=MsoNormal><o:p> </o:p></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From:</b> Friam <friam-bounces@redfish.com> <b>On Behalf Of </b>Marcus Daniels<br><b>Sent:</b> Thursday, May 7, 2020 11:05 AM<br><b>To:</b> The Friday Morning Applied Complexity Coffee Group <Friam@redfish.com><br><b>Subject:</b> Re: [FRIAM] Meanwhile, back on the troll farms<o:p></o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-size:12.0pt'>Nick writes:<o:p></o:p></span></p><p class=MsoNormal><b><span style='font-size:12.0pt'><o:p> </o:p></span></b></p><p class=MsoNormal><b><span style='font-size:12.0pt'>< </span></b>What exactly IS the policing mechanism in open source.  Darwinian? Reputational?  Does this HAVE to provoke a crisis of confidence in the general public?  Or could it be seen as a heroic thrown-together first step that is now being improved? ><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>They are whining about simple or absent unit tests as a litmus test for whether the code is reliable.   It’s like saying you don’t dare drive your car if you didn’t take out its alternator and test its voltage output last week.   ‘cause someone might have changed the alternator!   Eventually there will be consequences if the alternator fails, like stalling or the battery dying.   Same thing in a big simulation.   All of the parts and pieces of a simulation are there for a reason and global things will start to change in noticeable ways if something is broken.   I would say getting mechanisms working correctly is less difficult that choosing what mechanisms are appropriate in the first place.   Usually in use of a simulation one has instrumentation available on almost everything, and there is a constant checking and double- checking even if those checks are not embodied in automated tests.  Automated tests can even give a false sense of security, because they may not deal with the parameter ranges that happen in with the coupled system.  If you would rather have a bunch of unit tests, or to have modelers using and stressing the code every day, you have the wrong priorities.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>My irritation is with the notion of unit tests as a prerequisite for code reliability.   There are tighter ways to integrate assertions of code behavior with the code.   The bandwagon obsession with unit tests is in some sense an obstacle even better practices.   I wouldn’t even call them trolls, because a troll has intention to rile people up.  These folks are more like pompous ditto heads who feel the need to posture about the right way to do software engineering.   People that love unit tests love not understanding the problem they are solving, and prefer to work in pieces.   This take a is a little harsh, but in this context (advising COVID-19 policy) I don’t find the behavior very helpful.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Marcus<o:p></o:p></p><div><div><p class=MsoNormal><o:p> </o:p></p></div></div></div></body></html>