Difference between revisions of "Allen Pope should make software executable by others"

From Geoscience Paper of the Future
Jump to: navigation, search
Line 1: Line 1:
 
[[Category:Task]]
 
[[Category:Task]]
 
<br/><b>Details on how to do this task:</b> [[Make software executable by others]]<br/><br/>
 
<br/><b>Details on how to do this task:</b> [[Make software executable by others]]<br/><br/>
 +
 +
Between READMEs, the Workflow diagram, and Comments, all code should now be sufficiently clear for other people to execute my software.
 +
I made explicit the order of scripts to be called, the purpose of the code, any paths called for files I/O, any other functions/scripts called within the code, and any parameters used in the code (thresholds, etc.)
  
 
This task made me realize how many things were hard-coded into the software.
 
This task made me realize how many things were hard-coded into the software.
The unwieldy issue here is the large filestructure that is in place - scripts call from all over the place, and I know now for the future to create folders & populate them from within the code so that it can be more repeatable int the future. As it is, there are so many manual calls for folders that there we really too many to reasonably make parameters.
+
The unwieldy issue here is the large filestructure that is in place at this point (the end of the study) - scripts call from all over the place, and I know now for the future to create folders & populate them from within the code so that it can be more repeatable in the future. As it is, there are so many manual calls for folders that there we really too many to reasonably make parameters.
  
 
Instead - as with some models I have used - I have defined these things thing up front in the script. Yes, it requires some user interaction, but after that initial section everything should run smoothly. If these haven't been set correctly, it will throw and error and the user will then have to go fix it.
 
Instead - as with some models I have used - I have defined these things thing up front in the script. Yes, it requires some user interaction, but after that initial section everything should run smoothly. If these haven't been set correctly, it will throw and error and the user will then have to go fix it.

Revision as of 12:58, 6 April 2015


Details on how to do this task: Make software executable by others

Between READMEs, the Workflow diagram, and Comments, all code should now be sufficiently clear for other people to execute my software. I made explicit the order of scripts to be called, the purpose of the code, any paths called for files I/O, any other functions/scripts called within the code, and any parameters used in the code (thresholds, etc.)

This task made me realize how many things were hard-coded into the software. The unwieldy issue here is the large filestructure that is in place at this point (the end of the study) - scripts call from all over the place, and I know now for the future to create folders & populate them from within the code so that it can be more repeatable in the future. As it is, there are so many manual calls for folders that there we really too many to reasonably make parameters.

Instead - as with some models I have used - I have defined these things thing up front in the script. Yes, it requires some user interaction, but after that initial section everything should run smoothly. If these haven't been set correctly, it will throw and error and the user will then have to go fix it.

ALSO - some of my code is text files to just copy and run in the command line. These are by necessity hard-coded. I have now many this explicit with some commenting. I don't currently have the knowledge to automate these or make paths parameters.

So - my software is executable by others, but it will take just a little more work and stresses the importance of thinking of these things BEFORE you start coding!