Part of Slepp's ProjectsPastebinTURLImagebinFilebin
Feedback -- English French German Japanese
Create Upload Newest Tools Donate


Tuesday, March 25th, 2008 at 9:49:43am UTC 

  1. #this document is meant to catalog all possible entries in the autogenix
  2. #.agx file format, version 0.0.1  THIS WILL CHANGE
  3. #i will turn this into an xml schema or DTD as soon as i figure out how
  5. #apkg, the autogenix package manager, in combination with astream, keeps
  6. #track of the user's current "installation" which is the sum of all their
  7. #posessions and skills. it is also used to test various 'pretend'
  8. #scenarios, either manually or using agimme.
  9. #packages and streams may not have the same names as units.
  11. #agimme, (in analogy to apt-get) will test various trees of package
  12. #combinations in order to try to satisfy the requested functionality
  13. #(quantity*efficiency*quality), while still staying within the specified
  14. #cost envelope (money*labor*skill*time*hazard). the user can specify a
  15. #vector along which to minimize costs. the concept of capital does not
  16. #exist in this scenario, since one can either buy or make any required
  17. #infrastructure as necessary.
  19. #if the current installation has the capability to produce the desired
  20. #functionality or package, agimme runs the source code for each package
  21. #in the tree. this might send commands to a rapid prototyper, produce
  22. #a web page with plans for the user to follow, or simply dump cad files
  23. #to stdout.
  25. #explanation of syntax:
  26. #section: item, {item}, [[package:capability]]
  27. #items in {} are instances of whole sections being included. this means
  28. #anything that can be specified in the other section can be specified.
  29. #a single item from another section can be included with {section:item},
  30. #but this is sloppy and is discouraged.
  31. #items in [[]]'s are capabilities of other packages being specified.
  32. #if you specify a package/capability, the other package is required for
  33. #the current mode.
  34. #for non-package (stream) requirements, the requirement is treated as a
  35. #unit. presumably each stream will have its own DTD/schema
  37. #mathematical operators <,>,=,*,/,^,- can be used when there is at least
  38. #one number or unit. capabilities and streams count as units.
  39. #multiple constraints are AND'ed together, unless separated by a comma or
  40. #logical operator
  41. #example (an unusual shucking machine that can use multiple power sources):
  42. # run-time: electricity 240V 3*phase >=35A*peak >5A*continuous |
  43. #   compressed-air "3/8-NPT-F" 90psi 5scfm, [[human:attention]] 0.2
  44. # provides: corn 0.5kg/corn-cob # this kinda sucks
  45. # teams-with: [[packaging]] >=5gal, conveyor123
  47. #example (a plug-in-hybrid car - dont you love my mixed units?)
  48. # package-name: pollywag-car
  49. # provides: electricity 144VDC <100A NEMA-1234, electricity 12V <100A,
  50. #   transportation peak 90mi/h 300kg 1m*length 0.5m*radius,
  51. #   storage 1m*length 0.5m*radius, temp +25C | -10C, [[computer]],
  52. #   transportation 50mile/(diesel gal) | electricity 0.1kWh/mi,
  53. #   electricity 10kWh/charge, diesel 6gal,
  54. # run-time: diesel | electricity 144VDC NEMA-1234 |
  55. #   electricity 240VAC*60Hz NEMA-4567 |
  56. #   electricity 120VAC*60Hz IEC-632  #gets cross-referenced
  57. #   road, human:attention 1*peak 0.3*continuous #road and human are packages
  58. # build-time: fiberglass 4oz*20m^2, epoxy 10ksi 3gal,
  59. #   steel-4340:tubing 20mm*radius 3mm*thick 100ft*length, #hmm
  60. #   Emotor-21, dieselengine-600, computer:embedded #etc.
  61. # recommends: road:paved
  62. # teams-with: solar-carport
  63. # storage: 3m*long 2m*wide 2m*high, temp >-15C <70C, 600kg
  65. #the idea is to specify as little as possible to enable unanticipated
  66. #combinations of packages and streams, but specify enough so that it's
  67. #guaranteed to work without hackery. the user can test various scenarios
  68. #by using apkg's ignore and pretend tools if they are so inclined.
  70. ====metadata====
  71. package-name: foo-bar2
  72. version: 2.7.183
  73. date: 03/23/08
  74. maintainer: donald duck
  75. homepage: <>,
  76.   <>
  77. icon: /usr/share/icons/autogenix/foo.svgz
  79. #things that arent really capabilites or requirements, they just "are"
  80. ===properties===
  81. #much of this can be got from MSDS databases and autogenerated
  82. hazard: #will limit what type of space the package can be used in
  83.   env-impact, cleanliness, noise, moving-parts, {power}, [[MSDS]]
  84. cost: #normally only specified for bought'n components+materials
  85.   purchase cost, environmental cost #TODO expand on this
  86. materials:
  87.   {cost}, {transportation}, {hazard}, {storage}, fatigue,
  88.   strength, elasticity, damping, chemical/wear resistance, surface-finish
  89. space:
  90.   #space is a package that is really more like a stream. it must? be a package
  91.   #because it provides a crude nesting/collision-detection unit test
  92.   #for determining whether the requested object will fit in the space
  93.   long, wide, high, radius, thick, volume #for more complex spaces ??
  94.   lighting, humidity, temperature, acceleration
  95. #TODO how to describe if something must stay right-side up?
  96. time:
  97.   #much like space, but for units of time
  98.   cycles, time-units
  99. complexity:
  100.   #this was supposed to gauge the amount of human effort required to
  101.   #inventory something, for example a cube would be less complex than a
  102.   #tangly spider-web. i might just use [[human:attention]]/cycle in
  103.   #the storage section instead
  104.   bits
  107. #each operating mode should have its own run-time section
  108. #typical simple packages will have one run-time, one build-time, and
  109. #one storage dependency
  110. ====Dependencies section====
  111. power:
  112.   electricity, compressed-air, hydraulics, belt-driven,
  113.   [[human:power]], [[animal:power]], fuel
  114. build:
  115.   {materials}, {assembly}, {process}
  116. process:
  117.   measurement-tolerance, cutting tolerance,
  118.   [[human:skill]]*{time}, {hazard}, {space}, {cost}
  119. test:
  120.   [[instruments]], {materials}, [[human:skill]], {process}
  121. transportation:
  122.   {storage}, permits, hold-downs, packaging
  123. assembly:
  124.   {space}, assembly-equipment, [[human:skill]]*{time}
  125. disassembly:
  126.   {assembly}
  127. run-time:
  128.   {materials}, {space}, {safety}, {power}, {process},
  129.   [[human:attention]], [[human:skill]]
  130. storage:  #complexity is provided by [[human]] or an automated inventory system
  131.   {space}, [[human:attention]]/cycle, mass, security
  132. #things that go here arent absolutely necessary but will make your life
  133. #much easier
  134. ==recommends==
  135. {Dependencies}
  137. #packages here will work synergetically with this package
  138. teams-with:
  139.   [[.*]], {capabilities}
  141. #this section describes the performance and operational modes
  142. ===capabilities===
  143. performance:
  144.   {space}, #for storage systems such as buildings or containers
  145.   dimensional envelope, #for machine-tools or robots i.e. a 6"x12" lathe
  146.   {efficiency}
  148. rating:
  149.   nominal, peak, continuous, typical, once,
  150.   minimum, #minimum should be used sparingly - it means the machine
  151.   #can't produce less than this much
  153. mtbf: #longevity in various modes
  154.   {time}*{rating}
  156. #this section is really ugly
  157. #basically we want any combination of performance and cost
  158. efficiency:
  159.   {performance}*{quantity}/{time}, {quality}/{time},
  160.   {quantity}/({power}*{time}) #??
  161.   {quantity}/{quantity}, {quantity}/([[human:skill]]*{time}),
  162.   {quality}/([[human:skill]]*{time})
  164. quantity: #can be just about anything - streams packages or units
  165.   [[.*]], #units are handed off to GNU units for validation

Paste Details

Tags: autogenix


Update the Post

Either update this post and resubmit it with changes, or make a new post.

You may also comment on this post.

update paste below
details of the post (optional)

Note: Only the paste content is required, though the following information can be useful to others.

Save name / title?

(space separated, optional)

Please note that information posted here will not expire by default. If you do not want it to expire, please set the expiry time above. If it is set to expire, web search engines will not be allowed to index it prior to it expiring. Items that are not marked to expire will be indexable by search engines. Be careful with your passwords. All illegal activities will be reported and any information will be handed over to the authorities, so be good.

comments powered by Disqus