1.2 What's Under the Hood?


Formal Metadata

1.2 What's Under the Hood?
Title of Series
Part Number
Number of Parts
McLennan, Michael
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
Release Date

Content Metadata

Subject Area
00:09 What's Under the Hood? 00:27 Example: Fermi function tool 01:18 Tool Definition File 01:54 Running produces a driver file 02:52 Running produces a driver file 03:50 Running your program 04:20 Program produces a run file 05:03 Tool Definition File 06:49 All Together 09:36 Run file is a complete record of the run 11:23 How does your program get invoked? 11:59 How your program gets invoked 16:23 Object names in tool.xml and in your program 18:27 Assignment #2: Patch program into tool.xml 21:24 Assignment #2: Patch program into tool.xml
Metropolitan area network Simulation Process (computing) Computer animation Order (biology) Sheaf (mathematics) Hecke operator Online help Infinity Subtraction
Divisor Sheaf (mathematics) Function (mathematics) Parameter (computer programming) Food energy Number Electronvolt Device driver Skeleton (computer programming) Object (grammar) Computer programming Energy level output Curve Computer program Bit Functional (mathematics) Degree (graph theory) Skeleton (computer programming) Number Computer animation Function (mathematics) output Right angle Quicksort
12 (number) Game controller Collision Multiplication sign Curve Function (mathematics) Food energy Computer programming Number Electronvolt Device driver Units of measurement Descriptive statistics Physical system Exception handling Default (computer science) Simulation Interface (computing) Directory service Number Computer animation Personal digital assistant Function (mathematics) Device driver Right angle Hydraulic jump Data type
Curve Information Connectivity (graph theory) Computer program Sheaf (mathematics) Bit error rate Function (mathematics) Number Number Computer animation Function (mathematics) Computer programming Device driver Drum memory output Resultant
Point (geometry) Musical ensemble Multiplication sign Directory service Function (mathematics) Computer programming Number Formal language Device driver Goodness of fit Crash (computing) Roundness (object) Computer programming Energy level Subtraction Graphical user interface Default (computer science) Standard deviation Spacetime Debugger Computer program Interface (computing) Directory service Variable (mathematics) Functional (mathematics) Plot (narrative) Degree (graph theory) Computer animation Integrated development environment Graph coloring Data storage device Device driver output Right angle Resultant Electric current
Greatest element Structural load Computer program Complete metric space Function (mathematics) Directory service Machine code Mereology System call Machine code Computer programming Skeleton (computer programming) Computer animation Personal digital assistant Computer programming Device driver output Row (database) Right angle Library (computing) Resultant Metropolitan area network Library (computing)
Computer virus Ferry Corsten Multiplication sign Correspondence (mathematics) Sheaf (mathematics) Parameter (computer programming) Function (mathematics) Information privacy Mereology Object (grammar) Oval Flag Position operator Physical system Rhombus Curve Simulation Structural load Constructor (object-oriented programming) Substitute good Skeleton (computer programming) Data storage device output Right angle Pattern language Figurate number Quicksort Data type Electric current Ocean current Game controller Connectivity (graph theory) Template (C++) Number 2 (number) Device driver Computer programming Energy level Scripting language output Conditional-access module Subtraction Inheritance (object-oriented programming) Computer program Line (geometry) Directory service Machine code Component-based software engineering Word Computer animation Personal digital assistant Mathematics Function (mathematics) Device driver Free variables and bound variables Library (computing)
System call Structural load Chemical equation Direction (geometry) Flash memory Tape drive First-order logic Perturbation theory Host Identity Protocol Wiki Summation Pointer (computer programming) Bit rate Computer programming Alphabet (computer science) Booting Units of measurement Metropolitan area network Metropolitan area network Patch (Unix) Computer program Directory service Image resolution Process (computing) Computer animation Uniform resource name File archiver Quicksort Units of measurement Data type
Raw image format Empennage MUD Process (computing) Patch (Unix) Twin prime Computer program MIDI Perturbation theory Host Identity Protocol Emulation Table (information) Maxima and minima Computer animation Computer programming Dependent and independent variables Regular expression Integer Family Uniform space Newton's law of universal gravitation
Point (geometry) Axiom of choice Ocean current Game controller Chemical equation Ring (mathematics) Multiplication sign Simultaneous localization and mapping Insertion loss Student's t-test Tangible user interface Infinity Smith chart Emulation Medical imaging Device driver Goodness of fit Computer programming Operator (mathematics) Gastropod shell Integer Game theory God Metropolitan area network Default (computer science) Patch (Unix) Lemma (mathematics) Computer program Drop (liquid) Machine code Euler angles System call Inclusion map Process (computing) Computer animation Graph coloring Device driver Right angle Figurate number Units of measurement
Axiom of choice Default (computer science) Raw image format MUD Patch (Unix) Method of lines Interior (topology) Computer program Core dump Peg solitaire Host Identity Protocol Maxima and minima Mach's principle Depth of field Summation Computer animation Computer programming Computer cluster Integrated development environment Integer Right angle Integer Electric current Booting
Ocean current Recurrence relation User interface Mountain pass Programmable read-only memory Simultaneous localization and mapping MIDI Sheaf (mathematics) First-order logic Infinity Computer programming Emulation Depth of field Computer configuration Computer programming Moving average Physical law Addressing mode Arc (geometry) Metropolitan area network Default (computer science) Axiom of choice Patch (Unix) Repetition Computer program Bit Hidden Markov model Maxima and minima Computer animation Lie group Device driver output Clef Data type
Mountain pass Function (mathematics) Variance Software bug Pointer (computer programming) Dedekind cut Row (database) Drum memory Error message Library (computing) Structural load Interior (topology) Computer configuration Uniform resource name Convex hull Right angle Figurate number Data type Resultant Software engineering Mapping MUD Personal identification number Cellular automaton Perturbation theory Infinity Average Emulation Device driver Computer programming Integer Configuration space output Conditional-access module Subtraction Graphical user interface Default (computer science) Newton's law of universal gravitation Window Context awareness Raw image format Patch (Unix) Computer program Line (geometry) Inclusion map Computer animation Function (mathematics) System on a chip Device driver Element (mathematics) Integer
Ocean current Asynchronous Transfer Mode Inheritance (object-oriented programming) Mathematical singularity Sheaf (mathematics) Price index Formal language Summation Computer programming Gastropod shell Scripting language Arithmetic logic unit Subtraction Uniform space Raw image format Process (computing) Patch (Unix) Method of lines Computer program Hecke operator Exponential function Directory service Substitute good Arithmetic mean Computer animation Uniform resource name Lie group Labour Party (Malta) Computer cluster Device driver Data management
System call Mountain pass Denial-of-service attack Voltmeter Computer programming Device driver Ultimatum game Gastropod shell Configuration space output Local ring Error message Metropolitan area network Process (computing) Patch (Unix) Sine Method of lines Computer program Interior (topology) Grand Unified Theory Line (geometry) Disk read-and-write head Maxima and minima Internet forum Particle system Arithmetic mean Computer simulation Computer configuration Computer animation Function (mathematics) Device driver Convex hull Integer Router (computing) Wide area network
Dialect Manufacturing execution system User interface Mountain pass Auftragssprache MIDI Division (mathematics) Infinity Average Bit Variance Emulation Pointer (computer programming) Optics Dedekind cut Lattice (order) Row (database) Configuration space Process (computing) output Library (computing) Newton's law of universal gravitation Patch (Unix) Sine Back-face culling Computer program Coma Berenices Point cloud Maxima and minima Annulus (mathematics) Inclusion map Computer configuration Event horizon Computer animation Uniform resource name Function (mathematics) Computer cluster Device driver Element (mathematics) Units of measurement
all of a and it was hot only in simulation and will work for new technology Boardwalk but so the next
section we're going to take another look at rapture using the builder and you see now works for take a look under the hood and see how it works on the inside and that'll help a lot when you get stuck when is like child process executed normally what the heck do I do right so we're going to the next section can show you how it works and how to drug and in order to
explain it all and work through a simple example I call this the fairy function tool basically a little that evaluates the Fermi-Dirac factor were 1 half which leads to parameters and it is a number which is the ambient temperature but you know degrees Kelvin Fahrenheit or whatever and also of very low level of which is the the the fairy director of the sort of the where the Fermi energy sits on in electron volts that's a number of electron volts so those are the 2 inputs and when you click it's going to produce a curve as an output like that so and this is 1 of the examples that comes along with rapture and if you look to the example you be like how does it do that right put into numbers click the button curve comes out how does that work well we
started with the builder and we built the skeleton program and the tool that XML file right just like you guys have been doing and if you look inside the tool that XML program you can see all the bits there's no magic you can see there's a tool definition is an input section and output section the input section has the 2 numbers that we defined in the output section has the curve that we define 2 right so all this stuff is in there and all explained everything tells you everything you need to know about the tools
to how does it work well when you type rapture rapture looks for a file called tool that XML by default in the current directory and it reads that file and generates the interface you told rapture 2 numbers it draws the controls for 2 numbers if you told it has units of Calvin enjoyable thermometer there and does all that is based on your description of the tool that XML get you started then when you click simulate Bracha realizes all OK I gotta run this other programs to get the output so what it does is it produces what we call a driver files and gives the driver file weird number 1 8 2 7 6 5 9 8 or some weird number just so it doesn't collide with any other file on the system in case 2 people running at the same time you both produce a driver file they won't overwrite each other because they all have weird names right so so rapture produces this thing we call the driver file if we
take a quick look inside the driver file and put up side by side next to the original tool that XML file it's almost exactly the same same stuff except over here on the right you can see there are a couple of things that got added so in the tool that XML if you do a depth you'll see that the original tool that XML had a number with a default value and another number with a default value but the driver file as a current value the current value is the value that you want for the run that you're doing right now so every time Japan driver faggots generated it takes a copy of the tool that XML file and it sticks in current values for each of the controls so in this case for running a simulation where the current value 77 kelvin for the temperature and 200 million electron volts for the Fermi energy those of the current values of the values for the run and to buy so I've got a
driver file now just like my tool that XML that gets fed into the program that you're actually running your program that you're right in your program will generate another file would call the run files and again the right file is a really weird name 1 2 7 0 3 1 2 9 because again we don't want to run file from 1 run to overwrite run file of someone else's right so we give more unique weird names so the run file was take a look at that the
run file is just like the driver file remember the driver file had the current values in the wrong file also has the current values but it adds all the outputs when you looked at your original tool that XML if you looked at me in the output section of the tool that XML the driver you can find that there is a curve and you can see information about the curve but there is no value for the curve because we haven't run yet we don't know what the result should be so so we have a curve here and now in the run file that not only tells us all about it but there is actually a component section with x y and there's a bunch of numeric values and therefore the run file that are so your
program takes the driver file reads it does it's work and then saves out the run file and then the file gets loaded up by rapture into the graphical interface and rapture looks for all the results are confined plots the other thing that rapture does is it normally takes that run file and whisks it away for you into a special directory add the notice but when you get into a whole there's always a data directory and under the data directory there's a couple of directories 1 called results in 1 called the sessions right so and then under that there's all these weird number directories so and so on a day rapture every time you run it will take the result file is stored away into your results folder under whatever the number of the session is every time you run you get a different session number and there's an environment variable dollars session that tells you which session neuron right now if you echo dollars session it'll tell you your session session number and and that's where your results will go so every time you're running rapture is storing those run files the results away over there and that's really good right because let's say you're doing a bunch runs 1 day and it's like Eureqa I found a cure for cancer and then your workspace crashes and you like damn where's the cure for cancer right I know it's in your I know I simulated is somewhere well if you go back into your data results you'll find all those run that XML files and the random xml-files remember now we have the results that they have all the inputs that gave you the results so you you get every round an XML file standard stands alone if you look at it you'll see all year inputs and you'll see all year round it's so you know exactly what led to the cure for cancer are valid
put this together 1 more time see I'm like a magician like no magic here nothing at this lever 9 sleep on and then nothing about this later on showed it to you 1 step at a time because when you try to debug these programs you don't wanna go through the same way 1 step at a time there's no magic so I've got a tool that XML file tool that XML tells me everything about the interface tells me about all the inputs and all the outputs but it doesn't have any values it doesn't know the value of the inputs is does a what the value of the outputs are so when I run rapture rapture reads tool that XML and it generates interface inputs and default values but it's up to you to change you can set the temperature at a you know 4 degrees Kelvin and the very level to 1 or whatever set the values however you want when you click the simulate button it produces a driver file the driver file is an exact copy of the tool that XML but it has all the input values you know exactly what the temperature is and what the Fermi level is then your program reads that and it uses those values to to generate results generated run file the run files an exact copy of the driver file has all the inputs but also has the outputs that you generate so by the time you get all the way around you started with just the interface that he added the inputs and now you have the inputs and the outputs in that file and that file gets loaded into the graphical interface so that you can see it and it also gets with the with the way after that directory that I told you about for permanent storage now at some point you may bump up against a quote on interlobular color run on a quota space and there's actually little cleanup function that you can do when you when you get your quota will tell you know all your recorded you wanna clean up there's a way you can purge files music purge on nanoHUB what it does is it goes back and finds the oldest run files and gets rid of so as long as you don't the cure for cancer sitting around in there you can go ahead and purge those runs it'll get rid of all those old 1 . xml files you probably don't need on but if you ever did hit a cure for cancer in 1 go back to where you can always go into your results your data results directories and you can pull out run files and do stuff with them so right so that's how it works like and and the good thing about this is that we can grab we can get in and we can simulate each piece you know you don't have to run rapture if you have a driver file you can debug your program because you can take the driver file you can get in and run your program in matlab and C language or whatever debugger you want you can run your program debugging and then generate the output and check it so there's nothing nothing magic here if we look inside
that run file again just a hammer home the tool that XML only has the tool definition the driver file has tool definition that as the input values and the run that XML is the best 1 has everything as the tool definition the inputs and the outputs everything you need to know about you you can actually reload things later if you have a particular run file like this that was a cure for cancer and you pulled it back out your data results directory you like man that's a really important 1 keep that 1 you can always go back to it later in the rapture dash load and give it the name of that run that XML file and it'll reloaded it'll be loaded individually so you can see with the input values were you can see with the output value is too so you can always reloaded old resultant take a look at it if you need to decide you know a Rapture you can even treat the run file as if it were a tool that XML file remember normally rapture looks for a file called tool . xml right when you say rapture but you can say rapture dashed tool and give whatever name anyone you want to call your your tool Fred . xml you can do that when you're sitting on the builder you can call it Friday . XML and you can tell rapture best tool Fred . XML on in this case I'm saying Rashid actual and giving it the name run files and it'll look at the run 5 over the right file has the dual definition it it acts like a tool that XML so it will load that up and it will run the tool and go from there it that in that case what I'm using it like this it will ignore the input values in nor the output values that were already in run file but they're they're just giving work so well so you can reload all results and you Conservatory run file as a tool if you want to have a strange thing to do is you can buy
so let's take a closer look at exactly how your program gets invoked so I got this driver file and your programs getting it run and the producer run file and how exactly does all that happened has rational like where your program is or what it's supposed to do so your code is going to contain the rapture library in and we saw that in the skeleton program there's some stuff at the top and there's some stuff at the bottom of the skeleton program right that's like this yellow stuff it's kind of wrapped around the important part of your code so and so there's a rapture library calls and there's
also the whole program gets involved according to the instructions in the tool not XML if we look inside the tool that XML in the tools section of the top which we generally really look at before very carefully you'll notice there's a canadian section in this case inside the tool where it says me you can see this gobbledy-gook Python at tool for carried I at driver love about what's all that that's that's the instruction that tells rapture how to run your tool 1st words that Python script run python so I know this is a Python program if it was for trade affairs matlab or something you probably different but this is basically the UNIX command line that rationing needs to run to run your tool now there's some weird stuff the actually at driver rapture expands those things like placeholders on rapture doesn't exactly well you may not know exactly where you're tool sits on but if you just say actual rapture will figure out where you tool is an automatically put the directory name in there so wherever you see actual rapture says all only out where's that tool that XML file all of that directory ailab wonder where you guys put it and it'll take that directory path and substituted in place of that tool so it'll say OK I wanna know Python on slash slash your tools like current slight firming up I that's the file that I wanna run it sitting in the same directory as a tool that XML right where that is and also at driver remember I told you at driver the driver found it's a weird name your 1st time you run it'll be driver 1 5 7 9 2 7 . xml next time will be something else and you don't have to know because you can just say at driver is using a driver tells it tells rapture just put the name of the driver file there on the command line in that spot and whatever the name of the driver file is a kind of substitutes the current name and then runs that so rapture uses that command as like a template that substitutes in actually that driver it builds the command line and if you type that command line that Europe UNIX command prompt will run the tool just exactly the same way the rapture with in this case it's running Python it's feeding in the parent firm . py script and passing in the driver as an argument your Python script so that's it is basically a template for the command line that's going to invoke at the command prompt now inside your program in this gobbledy-gook that rapture generated for you in the builder it imported rapture blood the blood 1 of the 1st things it does it says rapture . library sister the 1 sister 1 is the Python way of saying I like it the 1st argument of the command line and the 1st argument of command line is the name of the driver file so that's how that gets passed in if we had made that the 2nd and 3rd argument on the command line then we should be consistent the 2 or 3 or something right so there's a little matching pattern here whatever is in the tool that XML for the command line I'm going to assume that you know that argument is going to pass and then use it inside my program appropriately in the builder just generates all this stuff for you it generates that command construction and generates the system not the 1 line every matches up but if you go mucking with it you can you can you know mess with it now flags and stuff like that just make sure that if you change the position of the driver file you need to change that system of the 1 2 and so that's all that's all that's happening is that I'm calling Python passing in the name of a script and passing in the driver file the driver file comes in as the 1st argument to the Python script and then rapture goes on from there reads the driver file and it goes from there to figure everything out load up all the values and go from there at the very end of your script at the very end it calls rapture that result the builder put that in again right right before it exits and this is where rights of the run files so if you forget if you accidentally delete this commander you forget to put in your program or whatever you will generate a random XML you have to call that right the end right before he quit and will generate around an XML file and then eggs otherwise your program really didn't do anything right so you have to call that at the end so there you can see the driver file coming in as an argument you do you work in the middle and then the very end that's where the run that amount it's generated and you've got a simulation by another thing I want
to mention is the correspondence between the XML when you try to read it and what you call in your program so in your program if we looked in the tool that XML in the input section you might for example see this inside input there's a number with ID equals temperature and inside that there's a current value 300 kelvin what I'm talking about that inside my program you can use syntax instead of all the diamond braces and gobbledy-gook it's a little simpler you say input that number parentheses temperature dark current so that whenever you have like input that number about current those like the tags in the XML and whatever you put parentheses around something it's like the the ID part so this is at the top you can see the input that number privacy temperature that current are like here input that number parentheses temperature that current we you read that is going to the input section find the number that has the name temperature and given the current value out of it and that's what rapture does again in the pre generated code it's in a venture generates the skeleton for you because looking for that number control for temperature the number control for the Fermi level of getting the current values in going from their similarly in the output section we said in the output is a curve named F 1 2 and the component x y Section store my x y data and that if you look at the XML is going to be the same thing as the output tag there's a curve with the idea of 1 2 there's is a component section and inside that there's x y and inside that we see x y line XY newline bunch x y data so this is how you translate between the XML syntax all the diamond viruses and what you use in your program when you're referring to those same things sort of a one-to-one correspondence and if you familiar with XML IR XPath and stuff like that and that's very similar just uses slightly different convention rapture so hopefully
now you're all set for the next lab assignment congratulations you've inherited a sort of working but sort of broken program and it's your job to fix it and about and so I want you to make a directory now for lab to and in that directory you can type w get and that big long paths
W http colon slash slash hope this rate making type of nano dot org slash infrastructure flash rapture slash dash attachment slash wiki slash boot camp with a capital N a capital C 2012 slash he x 2 . TGC array direct but again we highlight the man that you guys will type there it is again then the next thing you do tor are xp z f EX 2 . TGC they're funny units as funny like alphabet soup the top program is the tape archive program like is it program right x Blvd out next says extract diseases compressed is the following file and then you x 2 . TGC is like is like is the pile try unpack but if you say that the more will do is unpack they'll make a directory
called EX 2 and you'll have a main article Anatole . xml and their actually easier for the x 2 . TGC the then unpacker it anybody with table you would get that to go is is the brother alright good so now now here's what we're trying to do so I have this program here that is a tool that XML file but you notice the command years and the is like botched somehow so there's a command here that's empty so if I try to run this it really work right in rapture and I want you walk through the process of messing with
it and get a feeling for how it works and and then eventually fix it so that it will work eventually I wanna
say rapture and I wanna be able to click simulated and make it work but right now it's as a commands emptiness all goofed up right so it's given me
problems so here's the
assignment of 1st of
all I want you to take the tool that XML and when you create your own driver file by hand remember when you click the stimuli but rapture creates a driver file for you you're going to do it by hand you're copy and the UNIX command that CP copy copy told XML to driver . xml or whatever you wanna call it and then editing and inside the driver file I want you to put in your own current tags weighted by hand edit integer controls and set up a current value for the 2 images and a current value for the operation whether it's outer subtract so you build a driver file by hand and then I want you to run the program by hand tickle shell not tickle driver . xml I want you to explore what happens when you run the program by hand and you're going to run this is the program and this is the driver file that you made by hand and if you did everything right it will produce a run 5 right like any good rapture program I want you to do that tried out put in some values take a look at the wrong file and that gets generated because you're doing this by hand the run following the sitting right there when you're done doing it you won't have to go find it somewhere you'll be sitting right there and once you get that far then think to yourself alright here's the command using to run by hand now go back and edit the tool that XML by hand but that command remember the business with the actually act driver get figure all that out to Lynette driver stuff basically take this mainstream put it back into the tool that XML and put it in with all the tool have driver stuff you see I mean so you're going to do all the steps that raptures doing automatically for you you're going to copy the tool that XML to a driver file you're going to insert values current values into the XML make sure you put them in the right spot you're gonna run and produce run file and then you're going edit the tool that XML so from then on reaction was how to do it automatically think and you'd ask a lot of questions OK so let's go through the solution that we have for the lab assignment here and if you remember the 1st thing we did was downloaded this tool we got of a tool that XML and program that you've never seen before in your job was to look at it and try to figure it out in the body and so it's a tough problem because you can write the code right but it happens all the time because the the the last student that your advisory and wrote the program in their given it to you or it's the guy in the typical sitting next to you that's like what's wrong with my program to God figure it out and the way you figure it out is by going through the same steps that rapture does when when you bring up the rapture tool when you click the button to run rapture rapture builds a driver file it runs your code with the driver file that produces around file and then it shows the results and so the point of this lab exercise was to get you to go through each 1 of those steps and so we started out by taking the tool that XML file and copying it into a what everyone call a color driver . xml whatever we want call and then we added that that driver filed by hand and everywhere that we saw control like an integer and injured there was also a choice in there each 1 of those had a default value but then we also want to go ahead and add the current value of 1 for each of those controls the current values were rapture users to run your program so we added that the program and made a current value and then rated by hand far enough talking show you what I
show what we wanna do so of all start clean got a main program in a tool that XML and but if I if I look at the tool that XML remember I told you did command more about that in just a minute but other than that everywhere in the program where I've got an integer right here I want add a current value so I have to say current and slash current tags have to match in XML and then I can set this value not necessarily the default whatever a lot for right so the current value for the 1st thing is now for another down find the next 1 here's another 1 all set its current value to 7 OK now the keep going down and you'll see that there is a choice here we haven't talked much about this yet but this is how you express a choice
in rapture and there's a couple of
options there's an option and
subtract option and you notice
that the default is ad so from a set a current value and I can set that to either add or subtract also to subtract right so those are the 3 values and for each 1 of them I said a current value and and I should write that out this was the tool that XML I should write it out as a driver about XML and books out OK so now I've got this driver file which is an exact copy of should copy 1st and it's got the current values in but now I can run my program and the in that driver file and what is going to do is my programs gonna read the values from the current is going to produce a run file let's take a look at that run file 1st will look at it by hand if I type VI member tab is your friend because it completes as much as it can of the name alright so in the run file that looks just like the driver file down here in the input section you can see my current value that's from the driver file a little bit further you can see
the other current value the same stuff the difference is
that the run file also has an output the wrong file has not only the thing that's on the output side the integer but actually has a current value for the output so that's what the run and it and we can view that if I type
rapture dash load and then the name of run file tabs your friend so by the rapture dash load on the run file it shows me that my current values were 4 and 7 and subtract and the result was minus 3 so wretched actual gives you easy way to look at a run file and the body if you gotta run there alright so that's all good so if I were debugging this program of our trying to figure out what's wrong with my program let's say it's got a bug in it and go and put a bug in it and the and the like mess up my my program here and change like deleting characters and and say that now if I wrote my program by hand tickle shall meaning that to go with my driver file will give me an error and I can see what went wrong you can see the command right here dollar IOT output of a lot that's the line that I just destroyed right so you can get into your program and run it and and do it all by hand and figure it all out will be doing more that as the day goes on so go back to my program also right again fix that line say that out and I can try again and how it works so whenever you start with rapture so I get the fight with the graphical interface create yourself a driver file of and tried out by the way something goes wrong when you run your program rapture will automatically you driver file and so if again if I break my program on purpose deleted few characters but say that foreign rapture and I click OK
only a 1st there's a 1st of that problem the motion in the same way that you run it by hand you with the same kind of command in here so tickle shell as the program and the run I wanted to run meaning that tickle and I wanted to run some driver file but if I did that then the 2 problems 1st of all when you run this program that may or may not be able to find meaning that took where the heck is main article I added all right so we have to tell it where that script is and 2nd of all what's the name of the driver file well so I could be in if I just say driver . x amount owing to use that 1 driver files never going to use the current driver files so you have to change that remember the syntax that we used was if you say that driver it treats it as whatever the name of the driver file is so it'll do a substitution and we also say at tool that substituted with the name of the directory that we're in right now the name of the directory that contains the tool that XML back substituted into actual so in general whenever you writing this program you can always look at the command section the tool that XML that shows you a rapturous run registering interval shall if you look in the tool . xml directories defined main article instead the of passing a driver files that so it's gonna run if you're Python we start with Python if it's the language slightly different management ladder starts with Matlab is always so always see the program is trying to run by looking at the command by so now if I run rapture little
almost work all child process executed normally so when something like that happens you know notice there's a bunch of driver stuff you're looking is clean up and get rid of a bunch of stuff clean up during the run files and basically now I run rapture again I try to
simulate child process executed abnormally but if you
look there's a driver file their right that's the driver folic are generated when the error occurred and whenever there is an error of rapture leaves that around for you so that you can do about the problem if everything works the driver file goes away because you don't need it but when there's an error it sits there and then you can say alright what is this tool that only yeah it
runs tickle shell and that programming that cold using the driver file so I can do it by hand I can say to go shall mean that tickle and then give it the name of the driver file and I find the error society body and then I go in and say all i see main particle line 35 there's a problem there so long ago mean that tickle that 35 and fix it and now for rapture again it works and you
can try add and subtract all the different flavors and convince yourself that the works but you notice I stood on the driver files in there from when it failed so if I don't need that anymore I can get rid of cleanup but remove the driver file jails all cleaned up and everything's ready to run that


 1137 ms - page object


AV-Portal 3.9.2 (c7d7a940c57b22d0bc6d7f70d6f13fde2ef2d4b8)