]> Document the pointer/key feature idea 5 Most of the time a Java class "owns" data members in the sense that they can be deallocated if it itself is deallocated, but sometimes it just "points" to external data that will persist. The idea is that by marking data mebmers pointed to with "-pointer" the written-out XML will only write outs the "key" of that data member (such as a unique name) - not the entire data structure as is the case now. 2 2001-01-16 Flag fur turning off the "Deleting and Re-Writing" messages 2 I'm getting annoyed by them because they make you scroll down in the Emacs compilation buffer if you "M-x compile" in any but the most trivial directories.. 2 2001-01-16 Clean up BasicList set functions 3 The functions for set union, intersection, and subtraction should be static - right now they are member functions on a list that is supposed to be freshly initialized. (This design goes five years back when the functions were written in C++ using templates.) 3 2001-01-16 Private auto-written constructors 3 David writes: I suggest a flag that instructs Meta-Ja to make all the constructors on an object private. This forces the use of a factory method by outsiders. 3 2001-01-16 Address pitfall of having to say -copy for abstract classes 3 Not defining it for an abstract class and then being confused when working with the classes later is an eternal pitfall. 2 2001-01-18 Singular genericReport.xsl 4 WebScripter uses a local file called "genericReport.xsl" to produce the standard WebScripter output HTML page. This file is read from the local directory so we now have clones of that all over the place. It should be read relative to the CLASSPATH instead to avoid this. 1 2001-01-29 Partial class specification in the generator column 3 Users now specify the class name of the generator column in its full glory, such as "file:x.daml#Dog" or "http://www.isi.edu/...#Dog" - but that changes meaning if the file moves! The envisioned solution is to just say "#Dog" which matches both. 2 2001-01-29 Incremental loading 1 At the moment, you specify the file names of the DAML files that WebScripter loads in the beginning of a WebScripter report definition. However, in our "Div2 People" application, we first read Jeanine's rooster and only *that* reveals which files to load. Thus, we need some mechanism to keep loading DAML files in a "transitive closure" fashion. 6 2001-01-29 Got it. MS Word source is "3108licv2 2001-01-11.doc", publicly available under "http://www.isi.edu/~frank/metaja/3108licv2-2001-01-11.pdf". file://h/documents/projects/metaja/3108licv2 2001-01-11.doc http://www.isi.edu/~frank/metaja/3108licv2-2001-01-11.pdf 2001-01-30 Honor -pointer when printing 1 Pedro writes: What is the effect of -pointer on an object definition? One thing that it should do is to cause the print method of the containing object to not call print recursively on the pointer (but just print the pointer itself). It seems to me that one common use of -pointer is to include back pointers in data structures, for examples parents in a tree. In that case the print behavior would be very handy. 1 2001-01-30 Provide enumeration values in --help 1 Meta-Ja command-line support already provides a list of possible command-line arguments when you say "--help" in a command-line, but it does not list the values of enumerations. It should -- or otherwise you have to hunt down the .mjPackage file to find out what they are! (This came up in conjunction with David's re-organization of SNAP .bat files where it would also be nice to have the enumeration values shown in a comment line). 1 2001-01-30 Introduce a pruning expression for VALUES 4 We already have the ability to throw out an ENTRIRE ROW via a pruning expression. What we could need in addition is the ability to throw out just particular values of a cell. For example, we may want to collect all *comments* on a to-do item but not its possible closure report. This could be done by a type restriction on the reverse matching predicate. In the example above, we later fetch the "content" field of the matching comments and closure reports -- and that works because closure reports happen to not have such a field, but this is not clean. 4 2001-01-31 Light-weight DAML instance creator 5 It would be nice if the following tool existed: you point it to the URI of a DAML class description, and it gives you just the right form for entering an instance for it, including pull-down menus for references to other instances. This capability probably exists already in tools like Protege but it would be nice to have it standalone so you don't have to commit to a tool-specific way of producing your DAML ontologies: it would just spit out the right textual DAML instance definition when pointed to a class; you are then responsible to put in on a page somewhere. This could be done as a simple Web servlet. However, we are not planning on writing one and will rather stick to exactly what we proposed to do (consumer-side interactive tools, not producer-side ones) given our limited resources. 160 2001-01-31 DAML+OIL validator 3 Would be nice to have a simple tool for checking instances against their DAML+OIL class definition and report on cardinality violations: "instance6 of ToDoItem should have an attribute called taskid but does not; it has an attribute called todoitemid that is not defined in the ontology". We may build a really simple one, but doing this right and checking the logic assertions in DAML-L and so on is beyond the scope of our project. 20 2001-01-31 Tolerate XML version line 4 Meta-Ja should be able to ignore the <?xml version="1.0" encoding="UTF-8"?> tag, and indeed all <? ... ?> processing instructions. 2 2001-01-31 Tolerate XML singular tags 4 If tools other than Meta-Ja itself produce XML, they reduce tags such as <l></l> to the singular tag <l/>. Meta-Ja should be able to handle those - it ignores them with a warning message right now. 2 2001-01-31 Tolerate XML comments 4 Meta-Ja should ignore comments like <!-- ... --> without printing warning lines about them. 2 2001-01-31 Interpret lack of XML tags as empty list 5 At the moment, if your object X has a list-valued non-optional attribute L then XML instances must carry the tag, such as: <X><N>my name</N><L></L></X> It should be legal to omit the empty L tags, like this: <X><N>my name</N></X> which would result into the exact same in-memory instance. Note that the treatment is then different for optional and required list-valued variables: missing optional ones will be initialized to NULL but missing required ones to the empty list. 2 2001-01-31 Indicate run time in report 3 "This WebScripter report... It took 24s to run." 1 2001-01-31 Remove useless links 3 In the generated HTML, some of the cells point to a URL, but you can't click on them, and it seems to rarely give you any useful information. Figure out what makes sense there and remove pointless ones. 3 2001-01-31 "warnings report" concept 4 David writes: Please be sure that this is on the Camera to do: get warnings to end user That means that our output needs to flag this important information and then I can quit using Util.warn...() for it. Maybe Mission codes in the guidance output should be hyperlinks to the message? Maybe there should be another page of output (too easily ignored)? Maybe they should be notes in the printed schedule? All can be decided when we get the time to do the work -- but please be sure it does not get forgotten. 8 2001-02-01 Closing a whole bunch of WebScripter to-do items that were done in December and January but that I never entered closure reports for. 2001-02-01 private private private 2001-02-06 Expose generated enumeration constants 4 That way, one can refer to sXxx rather than having to call createXxx(), saving the function call overhead. The original reason not to allow that was because there used to be a set() function -- so a hapless user could call ThreeValuedTruth.sTrue.set(ThreeValuedTruth.sFalse) -- changing the meaning of the constants! Enumerations are now "immutable" so the latter is no longer a concern. 1 2001-02-12 "powered by WebScripter" logo 4 Make up a logo in the same same spirit and as colorful as the "powered by Apache" logo. Bob suggested some additional text on that page of the type "this Web page is automatically generated and maintained by WebScripter, a Semantic Web technology for distributed collaborative editing" 2 2001-02-21 get the div2 people Web page official 3 Run after everyone to copy their pictures down to a local Web site (ideally www.isi.edu, not some personal machine). Work with Jeanine to make the people page official and replace the current one. 12 2001-02-21 start work on interactive GUI 1 Get Baoshi started on the interactive GUI for constructing WebScripter reports. 2 2001-02-21 collaborative CAMERA to-do list 2 Get David started on the WebScripterized CAMERA to-do list. Jinbo and Pedro also if they are interested. 2 2001-02-21 WebScripter yearly plan 1 Work on the write-up for the WebScripter yearly plan. 8 2001-02-21 AvantGo-friendly XSL 2 Author an XSL that lends itself better to the AvantGo service for hand-held downloading of Web pages. 3 2001-02-21 DTD support 1 Finish the command-line reform effort and DTD support option. 6 2001-02-21 better --help messages 3 Print the comment text for the attributes. Would also be nice to print the possibilities for an enumeration, and have some mapping to texinfo for automatic import into documentation. 3 2001-02-21 some CAMERA to-do list items show up twice 2 To-do items for CAMERA list show up *twice* - same problem as before - when you say "about" you also assert again that it is an object. Solution: make generator column row seeds unique. 4 2001-02-23 placebo picture for div2 page 4 Silhouette/empty picture for people who don't have one in div2 people page. 1 2001-02-23 separate shorter XML identifiers 4 Use an -xmlname tag to provide XML names - that way they can use descriptive names in memory and short names in the file format. For example: object ComplexTask -xmlname CT {Resource:Capability -xmlname c;} 12 2001-02-27 warn on xmlimport of non-existing packages 3 Apparently that is silently ignored at the moment. 2 2001-02-27 warn about missing exclamation mark 3 For example, "object PilotTrainingManual extends RmSupSimpleCapabilityDimensionSet" did not warn about the missing exclamation mark in front of RmSup. 4 2001-02-27 immutable and mutable iterator APIs 4 Those would be generated by something like "abstract list<Item> {}" and "abstract list<Item> -immutable {}". They can then be used in interface-only API definition packages where we now use untyped Iterators. 8 2001-02-27 require ! in front of every unknown identifier 1 It seems some still slip through without it (especially in "extends" clauses?). This is awful because if you refer to class Yyy of prefix XX as "XxYyy" (rather than as either "Yyy" or "!XxYyy") hand-written Java code will still work but Meta-Ja will not e.g. recognize that the class is XML-capable -- and finding this bug is difficult and time-consuming. 2 2001-03-16 check for duplicate imports 4 Jinbo produced a weird bug where Meta-Ja failed to infer that a class was XML-capable because its .mjPackage was included twice and not next to each other. 1 2001-03-16 enforce consistent import order 5 The idea is that if the inclusion order in any later .mjPackage file differs from the one in an earlier .mjPackage file MJ complains and stops. This will make users more aware of the concept of a defined compilation order; obviously this would necessitate me going through a lot of existing code to straighten out the existing compilation orders but it would still be worthwhile. 12 2001-03-16 -customConstructors flag 3 With that flag, MJ writes commented-out constructor code and writes code for e.g. copying and XML as usual. Thus, users can provide their own constructors for cacheing, database iitialization, etc., and they can look at the commented-out ones in the .java file for inspiration. 3 2001-03-16 listinterface<X> 4 List constructs for API-only directories. Currently, you either get the choice of using untyped Iterator as the list construct in API directories, or to use concrete list<X> constructs (and hence make the directory not all-interface anymore). The new listinterface construct will be a better solution: in the API package: interface X {} listinterface<X> {} in the implementation package: object Y implements X {} list<Y> implements Xs {} The generated list functions for listinterface<X> will have the expanded type name in the function names for all functions that return non-void, such as "ApiX popApiXs()". This is ugly but necessary because Java does not permit overloading by return type. 24 2001-03-16 flush mj1.x and each individual package 5 Right now Meta-Ja seems to hang forever, then prints its whole first line at once. 1 2001-03-21 convert VariableNameTreatment warnings to errors 5 Right now, saying e.g. !JFrame rather than ^JFrame will issue a warning but keep Meta-Ja going. Should become an error that stops MJ in a few weeks once everyone has gotten used to the new style. 1 2001-03-21 Show a + in front of XML imports 4 Otherwise, the printout of included packages can be misleading, for example I thought there were circular imports in David's trm strcuture to the SNAP code, but they turned out to be just xmlimports. 1 2001-03-21 multipleMatchesPossible should imply notHashed 1 Meta-Ja list support automatic implementation of hashing on a single key for unique lists, but not for non-unique lists. Saying both "hashed" and "multipleMatchesPossible" results in writing out invalid code. 1 2001-03-21 document the ^ and . type modifiers 2 I emailed that info out but it is not in the Meta-Ja reference manual. 1 2001-03-21 Done - introduced the new ^ type modifier in addition to ! (MJ-unknown reference vs. MJ-known non-local reference). 2001-03-21 Meta-Ja now uses Meta-Ja command-line parsing support for itself. There is now a simple DTD generation option it is tested in the mjexamples package and documented as well. 2001-03-21 There now is a "-feedback singleLine" option (in addition to the default "-feedback full" and the "-feedback none" option). 2001-03-21 Step 1 MissionSpec introduction 1 Create the MissionSpec from scratch, closely mirroring the current structure of the current Mission (the new package will have the SnMs prefix and be located in snap/model/missionspec); discuss with Pedro and Jinbo to make sure the MissionSpec representation maps easily to and from the GUI design. 8 2001-03-26 Step 2 MissionSpec introduction 1 Copy-and-paste the current code that creates a Mission based on David's MissionDefinition and query-replace/modify it so it creates a MissionSpec instead. 2 2001-03-26 Step 3 MissionSpec introduction 1 Write a "public static Mission createMission(MissionSpec)" function. 4 2001-03-26 Step 4 MissionSpec introduction 1 Change the code that invokes the direct MissionDefinition->Mission creation to the new MissionDefinition->MissionSpec->Mission creation. Run the system and validate that no behavior has changed. If so, delete all direct MissionDefinition->Mission code. 4 2001-03-26 Step 5 MissionSpec introduction 1 Eliminate the positive/negative lists currently in Mission and make a Mission respect the positive/negative lists in the MissionSpec instead (rather than copying them before every SNAP run). 2 2001-03-26 fix Netscape display of default report format 4 Bob discovered that the little legend colored squares in the legen don't show their colors in Netscape Navigator. Plus empty cells in the main table don't have borders and thus look ugly. 2 2001-03-26 Step 1 range GUI support 1 Migrate trm.* imports out of model/rangespecs so that it can be read stand-alone. Build a run-time support structure inside the agent/rangeczar directory that holds the PrApiCd:Commitments and RcCapabilityProxies and RcmCapabilities. Migrate the above out of model/rangespecs, model/assginedranges and model/rangeuse. Test and check in to CVS. 3 2001-04-02 Step 2 range GUI support 1 Introduce model/rangeboard, test its XML format for reading and writing. Write and test a validation of the range identifiers it contains against the range model read from model/rangespecs. Check into CVS. [2 hours] 2 2001-04-02 Step 3 range GUI support 1 Introduce model/rangeboardsupp, also test its XML format for reading and writing, also write and test validation code against model/rangespecs. Check into CVS. [3 hours] 2 2001-04-02 Step 4 range GUI support 1 Confer with Jinbo and Pedro to see if the latter supports the GUI design well. Revise if appropriate. At this point, Jinbo could start writing the range GUI against it. [1 hour] 2 2001-04-02 Step 5 range GUI support 1 Hollow out model/assignedranges so that it internally points into an allocated or non-allocated slot of model/rangeboard. Write a boolean function that tells if this is in effect a "complement range" (meaning we don't have all of it already assigned). Write a String function that returns "***" around the range name if it presents such a complement range. Then remove the complement-specific fields that David introduced from range/assignedranges. Remove the runs/222*/rangesYuma200009.xml file after transscribing it into the new range board XML format, introduce range-board-2000-09.xml instead. Run and test with the new set-up (the range board supplement is not read yet, and there is no ability to read multiple range board files). Check into CVS if it works. [5 hours] 2 2001-04-02 Step 6 range GUI support 1 Modify the model/assignedranges so it points into model/rangeboardsupp as well as model/rangeboard, write the logic that tells if a slot is avaiable, definitely unavailable, or maybe available, giving priority to rangeboardsupp. Write a little XML file that has some exceptions to the official range board and see if SNAP reacts to it. Check into CVS. Jinbo's GUI now operates on a structure that can be written to XML and read from XML, and affects what SNAP does. [3 hours] 2 2001-04-02 Step 7 range GUI support 1 Add the ability to read multiple range board files (so that if the planning horizon spans April and May SNAP can read two monthly range boards). [2 hours] 2 2001-04-02 model/rangeuse now holds the PrApiCommitments and rc/rcm data members. Also checked in a new version of the SNAP database into offlinesnap that allows the AUXII and USS SHIP ranges to be assigned. 2001-04-02 Checked in. 2001-04-03 What is not done yet is re-introducing the "***" around ranges which are not assigned to the squadron. 2001-04-03 Closing a whole bunch of items that have long been done. 2001-04-03 Closing a whole bunch of items that were overcome by etvents. 2001-04-03 support hashing of non-String types 2 Especially integers, and object memory pointers. 5 2001-04-13 reservable-range conflict check 4 It is currently possible for the user to simulataneously say "I have 2507 N(B,C)/S" and "I have 2507 N" and SNAP will use those ranges independently. There could be and should be a sanity check of the range board and range board supplement against the range model to catch this. 4 2001-04-13 truncating resource names at the # is a bad idea 2 Remove that from the code. There is nothing special about that character or any other in RDF resource names. 1 2001-04-13 simulator board supplement sanity check 4 The time intervals for a single reservable range that specify that a squadron (a) has a range slot and (b) cannot possibly obtain a range slot cannot overlap. This sanity check is not currently done. 2 2001-04-13 sort pilots by last name 5 Currently, the schedules starfield uses an order different from the one in the ZTI pilots GUI. 1 2001-04-13 NAWST should be NWST, RNAWST should be NWST 5 Should be changed in the SNAP database as well as the extracted simulator model and all the simulator boards. 1 2001-04-13 Would be nice if one could open in interactive WebScripter, do some changes there; at some later time do some work by textual editing of the WSRD file; then at some later time open it in interactive WebScripter again (without losing the manual edits, of course!). 2001-08-31 Sure. Talk to me if you want to, I have lots of hard-earned experience in package strucutring... 2001-08-31 Why don't you use a boolean so the user has control over if the subclasses are included or not. But nearly always you do want the subclasses, so that should be the default. 2001-08-31 ConceptColumn for Tanja 2 Implement a way to get to the class identifier given an instance identifier anchor column. Thus, if you have a report of different sub-types you can show in each row which sub-type an instance belongs to. 6 2001-08-31 Does Swing support just clicking on a table header and typing text for it? That would be the easiest for users. 2001-08-31 The ConceptColumn idea would do that; and this is probably all we need. 2001-08-31 3 I want it. I want it. I want it. Presuming it's cheap to implement (such as try loading it as any of the above until you succeed). Happens to me *all* the time that I choose the wrong type in demos. 2001-08-31 Done. WebScripter is downloadable world-wide. 12 2001-08-31 Ancient - accomplished or overcome by events. 0 2001-08-31 Done. WebScripter is downloadable world-wide. 12 2001-08-31 Obsolete, as multipleMatchesPossible now does support hashing. 2002-06-24 Long done. 2002-06-24 Don't remember the issue, probably resolved. 2002-06-24 Done, Meta-Ja no longer accepts those. 2002-06-24 Done now, uses obtainXxx() syntax. 2002-06-24 "" means produce the empty constructor, not null 3 For example, consider MtMergingIntervals which seems to be a list but is not, it is a container of a list, an object: this makes the semantics of "" more consistent. (DONE on 2002-07-15: Tricky - must first do a pass where "" is disallowed, then wait for a couple of weeks, then introduce the new semantics.) 2002-06-24 -privateConstructors, -restrictedConstructors, -protectedConstructors flags 2 First writes the same constructors it does now but with a private modifier; ditto for second but with no modifier at all, third writes a protected modifier. 2002-06-24 -customConstructors flag 2 Does not write any constructors but asks the user to write them. The difference to -noConstructors is that Meta-Ja then assumes that the user WILL provide these functions and makes calls to them from its generated functions. In addition, Meta-Ja will generate its usual constructors, but make them private and insert the argument MjConstructorArg as the first argument; users can but do not have to make use of these in their hand-written constructors via "this(MjConstructorArg.obtain(),a,b,c)". 2002-06-24 unify -noConstructors and -noConstructorsAtAll 2 To my knowledge, the former is not used at the moment; plan is to make it assume the semantics of the second. 2002-06-24 -xml objects no longer require an explicit -set for its attributes 5 Users have to do this manually at the moment, if they forget a "no -set" message is printed to standard errorwhen the XML is read back in. Would be nice if that wasn't required, especially because one does not necessarily want public set() methods for non-XML reading for all those. 2002-06-24 prohibitImport directives for package designers 3 Assume two directories A and B in that compile order in which A and B should not import each other. We currently have no way other than word-of-mouth that B should not import A (the compile order will enforce that A should not import B). There could be a Meta-Ja directive parallel to "import" that is called "prohibitImport" that will make Meta-Ja stop if it detects a violating import statement. Will be done by prefix, so you can say prohibitImport "edu.isi.dce.snap.model." for example, and it will not allow the import of any sub-packages from there. 2002-06-24 Java arraylist support for BasicList implementations 4 Is currently always a LinkedList. ArrayList has different performance characteristics. Would be a lot of work to not break backward compatibility. 2002-06-24 absolute package names such as ^java.sql.Date 1 Need to allow dots in absolute class references, as there is also a java.util.Date which is a different class. Same for FileFilter which exists twice in the JDK. 2002-06-24 allow the re-use of the same base name within MetaJa packages 2 This is closely related to MetaJa's confusion about if an object supports -xml if there is two objects with the same base name of which one has the -xml flag and the other one doesn't. This is the reason why there is SnScScheduledTask rather than SnScTask in SNAP, and why there is SnMiMoModelTask rather than SnMiMoTask -- they would clash with SnMsTask because of the same base name. 2002-06-24 carry the throws clause through for abstract function definitions 3 Meta-Ja gives a parse error or throws it away silently at the moment. 2002-06-24 incorrect determination of -xml capability 1 Meta-Ja sometimes incorrectly resolves names in included mjPackage files to entities in mjPackage files later in the compile order. See mjexamples/regression/xmlcapabilitydetermination for an example. 2002-06-26 Could not reproduce that bug; believe I fixed it when I made references typed objects rather than Strings in mid-2001. 2002-06-26 formerAllowsLatter(Ftc,Ftc) produces uncompilable code 5 Meta-Ja uses "ftc" as the auto-generated parameter names for both parameters; it should keep a counter of which ones it has used already to make them unqiue. The workaround is to name the parameters explicitly in those cases. 2002-07-02 settable time zone for XML-written ISO 8601 dates 4 Currently, Meta-Ja uses the time zone of the host machine to determine in which time zone it writes out absolute time points. This is not a bug because it is the same time point (a long in Java) regardless of the time zone chosen. However, for visual inspection of the XML file by humans it would be nice if the programmer could specify a time zone to use for writing out absolute time points. 2002-07-02 -canBeCreatedFromAString objects can be initialized via a simple string 4 For example, you currently have to say !MtDuration x "MtDuration.create(\"0 minutes\")" but it would nice if you could just say !MtDuration x "\"0 minutes\"". (Saying !MtDuration x "0 minutes" would be even nicer, but that would mean you could only initialize to a literal, not a constant like "SnConstants.sX".) 2002-07-02 Emacs next-error opens .mjCode file rather than .java file 4 Currently, compiling in Emacs (F8 in our setup) yields an error log that jumps to the error in the generated Java file (when your press F9 in our setup); you then have to find the corresponding line in the .mjCode file by hand. It would obviously be much nicer it that was done automatically, or at least easier in other ways. For example, David suggested to make it such that the mjPackage-generated content always fills say the first 1000 lines, filling them with blanks if necessary, so that the first line of an .mjCode file always corresponds to the 1001st line of the generated Java file (and then it should be possible to write an Emacs macro that simply substracts 1000 and substitutes "mjCode" for the "java" postfix in the file that it opens). 2002-07-02 TriplesIterator should be legal in addition to!RdfImplTriplesIterator 5 It seems that the relative name is not resolved correctly for entities that are not explicitly declated in a mjPackage file, namely PpXxCarrier and PpXxIterator objects. 2002-07-02 support for caching layers 3 The idea is that you declare "public int computeX(PrPtmApiFlightTrainingCode) -cached" in the mjPackage file, which could be any function with a non-void return value and at most one parameter. This will result in code such as HashMap iComputeXCache=new HashMap(); public int computeX(PrPtmApiFlightTrainingCode x) { Integer result=(Integer)iComputeXCache.get(x); if(!iComputeXCache.containsKey(x)) { result=new Integer(computeXImplementation(x)); iComputeXCache.put(x,result); } return result.intValue(); } so that the programmer only has to write the computeXImplementation() function, and the mechanics of caching are taking care of. This would save huge amounts of repetitive code in snap/auxiliary/prptmcaching and snap/auxiliary/agptmcaching for example. 2002-07-02 Fixed as of Meta-Ja version 7b. 2002-07-02 Long fixed I believe. 2002-07-02 Done: -noConstructorsAtAll is gone, and -noConstructors now has the semantics -noConstructorsAtAll used to have 2002-07-12 Done, argument names now have a number suffix if needed. 2002-07-12 better auto-generated list names for package-external items 5 Currently if you have a list item type of type ^javax.swing.filechooser.FileFilter Meta-Ja will try to use all of the name including the dots for the list name (should be FileFilters). 2002-07-12 Done. 2002-07-12 Done. 2002-07-12 Can't reproduce that problem, will fix if I can find and isolate a test case. 2002-07-12 Throws clause was already parsed into memory but not echoed back, now it is. 2002-07-12 Fixed by 1.8f; verified by removing the Model prefix from entities in snap/model/mission. 2002-07-13 Turns out that was long done, just rarely used in MJ client code. 2002-07-15 enforce consistent compile order 3 Imports should follow the compile order, ideally derived from the intermediate-directory Makefiles ("cioOrder" line). If that is not possible, packages should be forced to be in the same compile order as in the .mjPackages they import. 2002-07-15 user ability to DESIGNATE the section and division leads 4 Currently, SNAP picks them for the user and puts them into the schedule. (No user has ever complained about that yet.) 2002-07-23 post-pit position switching 2 Not implemented, pilots have to keep their positions in subsequent launches. Can most likely be worked around by having multiple single launches with missing debrief/brief for the pits. No user complaints yet. 2002-07-23 introduce aircraft model analogous to simulator model 3 The ops model would contain how well each aircraft type supports each flight training code. (0=illegal, 1=superb, 5=dismal; same as for ranges and simulators) 2002-07-23 range model HTML page 4 Would be nice to have a printable HTML version of the range model in the system (including associated ranges, range slices, and so on). 2002-07-23 6-plane missions 5 Currently max mission size is 4 planes. Users seem fine with doing more than that as several simultaneous missions. 2002-07-23 multiple and overlapping range allocations per segment 4 This occurs on their print schedules, but SNAP has at most one range allocation per segment, and the time of allocation is the same as the time of the segment. 2002-07-23 AgPtmApi requirements and deficiency expressions 5 Currently specialized fixed and-or trees, code could be cleaner and shorter with generalized and-or trees. No impact on users. 2002-07-23 better AUXII modeling 5 Currently multiple underlined AUXII clones. Problem is that AUXII is not really a range at all, really more like an <b>airfield</b>, and can support multiple simultaneous missions. 2002-07-23 model cross-countries and plane locations 4 SNAP can't tell between planes being gone and being on the ground (thinks if it's on a long mission it will be in the air). 2002-07-23 use goodness tradeoffs 5 Better to have a good airplane in a bad range, or have a bad airplane in a good range? If we go to a Marbles2 cost-based model, obsolete issue. 2002-07-23 Clearing items that had long been done. 2002-07-24