This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
haas:spring2018:unix:projects:upf1 [2018/02/28 19:35] – [Get started] wedge | haas:spring2018:unix:projects:upf1 [2018/03/17 12:59] (current) – [Process] wedge | ||
---|---|---|---|
Line 8: | Line 8: | ||
=====Errata===== | =====Errata===== | ||
- | * any bugfixes or project updates will be posted here | + | * revision: unittools now all list **-I** argument (input delimiter) on help; **hm2Dm** link should also connect correctly (20180308) |
=====Objective===== | =====Objective===== | ||
Line 60: | Line 60: | ||
* **ft2yd** - convert feet to yards | * **ft2yd** - convert feet to yards | ||
* **hm2dm** - convert hectometers to decimeters | * **hm2dm** - convert hectometers to decimeters | ||
- | * **hm2Dm** - convert hectometers to Decameters | + | * **hm2Dm** - convert hectometers to Decameters |
* **in2cu** - convert inches to cubits | * **in2cu** - convert inches to cubits | ||
* **in2ft** - convert inches to feet | * **in2ft** - convert inches to feet | ||
Line 73: | Line 73: | ||
The tools by default expect input via STDIN, and will output to STDOUT. | The tools by default expect input via STDIN, and will output to STDOUT. | ||
- | These tools have command-line arguments which can alter their default behavior. You may want to review the options and defaults. | + | These tools have command-line arguments which can alter their default behavior. You may want to review the options and defaults |
=====Process===== | =====Process===== | ||
Line 98: | Line 98: | ||
lab46: | lab46: | ||
1.15 ft | 1.15 ft | ||
+ | lab46: | ||
+ | </ | ||
+ | |||
+ | But that's not very optimized. We could instead do something better, like: | ||
+ | |||
+ | <cli> | ||
+ | lab46: | ||
+ | 35.000 cm >> 13.780 in >> 1.148 ft | ||
lab46: | lab46: | ||
</ | </ | ||
Line 113: | Line 121: | ||
</ | </ | ||
- | Basically, each task# | + | Basically, each task# |
=====upf1steps===== | =====upf1steps===== | ||
- | You will once again be creating a steps file that can automate your project. | + | You will once again be creating a steps file that can automate your project |
As in previous projects, **upf1steps** will contain the steps you took from the point of copying the numbers suite and downloading the unittools suite up until the submit step (hint: just run the task#.cli scripts within the steps script). | As in previous projects, **upf1steps** will contain the steps you took from the point of copying the numbers suite and downloading the unittools suite up until the submit step (hint: just run the task#.cli scripts within the steps script). | ||
Line 125: | Line 133: | ||
* your script should not produce ANY STDERR output | * your script should not produce ANY STDERR output | ||
* your script should ONLY produce STDOUT output in conformance with the below stated requirements. Any other output needs to be silenced. | * your script should ONLY produce STDOUT output in conformance with the below stated requirements. Any other output needs to be silenced. | ||
+ | * You will want one unified command-line producing the end result, not separate one-step transitions. The idea is to utilize pipes. | ||
+ | * semi-colons used to separate commands do not constitute one command-line, | ||
* For each task, you'll want to display things as follows: | * For each task, you'll want to display things as follows: | ||
* "Task X conversion chain: CHAIN" | * "Task X conversion chain: CHAIN" | ||
Line 130: | Line 140: | ||
* where CHAIN is the conversion chain output matching the TASK file result requested (ie, you must run your task#.cli script to produce this output). | * where CHAIN is the conversion chain output matching the TASK file result requested (ie, you must run your task#.cli script to produce this output). | ||
* note that the task#.cli output appears on the SAME line as the "Task X conversion chain:" | * note that the task#.cli output appears on the SAME line as the "Task X conversion chain:" | ||
- | * note there is no space between value and unit | + | * there is NO space between value and unit |
For example, a sample output of your **upf1steps** script should appear like follows (but your # values will of course be different based on your individual **TASK** file): | For example, a sample output of your **upf1steps** script should appear like follows (but your # values will of course be different based on your individual **TASK** file): | ||
Line 165: | Line 175: | ||
< | < | ||
78: | 78: | ||
- | *: | + | *: |
- | *: | + | *: |
- | *: | + | *: |
- | *: | + | *: |
- | *:upf1:task0.cli produces correct result [2/2] | + | *:upf1:upf1steps only displays |
- | *: | + | *:upf1:upf1steps resiliently creates local project directory |
- | *:upf1:task0.cli uses specified input_unit | + | *:upf1:upf1steps copies public dir data with absolute path [4/4] |
- | *:upf1:task0.cli solution in specified output_unit | + | *:upf1:upf1steps makes clear, effective use of wildcards |
- | *:upf1:task0.cli solution using specified precision | + | *:upf1:upf1steps defines and uses custom variables |
- | *:upf1:task0.cli solution using specified delimiter [1/1] | + | *:upf1:upf1steps |
- | *: | + | *:upf1:upf1steps |
- | *: | + | *:upf1:upf1steps automates the task when run [4/4] |
- | *:upf1:task1.cli | + | *:upf1:all files are organized, clear, and easy to read [4/4] |
- | *:upf1:task1.cli solution in specified output_unit [2/2] | + | *:upf1:task#.cli files output |
- | *: | + | *:upf1:task#.cli files output |
- | *: | + | *:upf1:task#.cli files output only correct |
- | *: | + | *:upf1:task#.cli files output |
- | *: | + | *:upf1:task#.cli files display no STDERR output |
- | *: | + | *:upf1:task#.cli files have solution |
- | *: | + | *:upf1:task#.cli files only contain the solution |
- | *:upf1:task2.cli solution using specified precision | + | |
- | *:upf1:task2.cli solution using specified delimiter | + | |
- | *:upf1:task3.cli produces correct result [2/2] | + | |
- | *: | + | |
- | *: | + | |
- | *: | + | |
- | *: | + | |
- | *:upf1:task3.cli solution | + | |
- | *:upf1:task4.cli produces | + | |
- | *:upf1:task4.cli uses specified input_value [1/1] | + | |
- | *: | + | |
- | *: | + | |
- | *:upf1:task4.cli solution using specified precision | + | |
- | *:upf1:task4.cli solution | + | |
- | *:upf1:task5.cli produces correct result [2/2] | + | |
- | *: | + | |
- | *: | + | |
- | *: | + | |
- | *: | + | |
- | *: | + | |
- | *: | + | |
- | *: | + | |
- | *: | + | |
- | *: | + | |
- | *: | + | |
- | *: | + | |
- | *: | + | |
- | *: | + | |
- | *: | + | |
- | *: | + | |
- | *: | + | |
- | *: | + | |
</ | </ | ||
+ | |||
+ | Additionally: | ||
+ | * Solutions not utilizing descriptive why and how comments will be subject to a 25% overall deduction | ||
+ | * Solutions not utilizing indentation to promote scope and clarity will be subject to a 25% overall deduction |