{
  "id": 5570,
  "title": "How to play with the toy?",
  "url": "/competitions/flight2-milestone/discussion/5570",
  "author_name": "",
  "post_date": "2013-08-28T19:45:10.237Z",
  "votes": 4,
  "comment_count": 5,
  "views": 2659,
  "content": "<p>Well, after several days with the toy this is some personal reflexions.</p>\n<p><span style=\"line-height: 1.4\">We have an open code in a 'new' (for nearly all) language. It's a live code, with a great intrinsic complexity, with frequents releases in &nbsp;future which will add new features and restrictions.</span></p>\n<p><span style=\"line-height: 1.4\">I think in two possible approach to the problem:</span></p>\n<p>- Modify directly the F# code for include in the simulator the optimizer.</p>\n<p>Sincerely, after read the F# and some tutorial, I don't want to do something complex (the optimizer) in a host complex and live (the simulator) with a tool I don't know (F#)... in a month.</p>\n<p>- The other approach is do the optimizer in python / pascal and use the simulator only for check solutions (check a lot of solutions...)</p>\n<p>This have other problems. The main we need traslate the logical of simulator to the new code (cost models, fuel models, weather, ...). Any minor bug in translation and all the work would be a waste of time.</p>\n<p>&nbsp;</p>\n<p>Otherwise I don't like the idea of test solutions massively in a race where 'the more (submissions) is the better'. With the Toy we have unlimited submissions...</p>\n<p>&nbsp;</p>\n<p><span style=\"line-height: 1.4\">What is I think most of us need?</span></p>\n<p><span style=\"line-height: 1.4\">A Black-box we can embbed in our programs. I need a blackbox that I can introduce the actual state of a flight (time, weight, fuel, position, altitude), a fly leg and the blackbox give me the new state:&nbsp;(time, weight, fuel, position, altitude).</span></p>\n<p><span style=\"line-height: 1.4\">I don't need a simulator give me the average for all the flights for all the fly legs: </span></p>\n<p><span style=\"line-height: 1.4\">I had this with the submission feature.</span></p>\n<p>&nbsp;</p>\n<p><span style=\"line-height: 1.4\">I would like to know your opinion.</span></p>\n<p><span style=\"line-height: 1.4\">How GE &amp; Kaggle&nbsp;thought we were going to do?</span></p>\n<p><span style=\"line-height: 1.4\">Is time to try fix this?</span></p>\n<p><span style=\"line-height: 1.4\">Other reflexion,</span></p>\n<p><span style=\"line-height: 1.4\">Why do you think there are so relatively few participants in this challenge? </span></p>\n<p><span style=\"line-height: 1.4\">Seems no more than 20 actively working.</span></p>\n<p><span style=\"line-height: 1.4\">It's amazing, good prizes... What is the problem?</span></p>\n<p>&nbsp;&nbsp;</p>",
  "messages": [
    {
      "id": "29665",
      "postDate": "08/28/2013 19:45:10",
      "content": "<p>Well, after several days with the toy this is some personal reflexions.</p>\n<p><span style=\"line-height: 1.4\">We have an open code in a 'new' (for nearly all) language. It's a live code, with a great intrinsic complexity, with frequents releases in &nbsp;future which will add new features and restrictions.</span></p>\n<p><span style=\"line-height: 1.4\">I think in two possible approach to the problem:</span></p>\n<p>- Modify directly the F# code for include in the simulator the optimizer.</p>\n<p>Sincerely, after read the F# and some tutorial, I don't want to do something complex (the optimizer) in a host complex and live (the simulator) with a tool I don't know (F#)... in a month.</p>\n<p>- The other approach is do the optimizer in python / pascal and use the simulator only for check solutions (check a lot of solutions...)</p>\n<p>This have other problems. The main we need traslate the logical of simulator to the new code (cost models, fuel models, weather, ...). Any minor bug in translation and all the work would be a waste of time.</p>\n<p>&nbsp;</p>\n<p>Otherwise I don't like the idea of test solutions massively in a race where 'the more (submissions) is the better'. With the Toy we have unlimited submissions...</p>\n<p>&nbsp;</p>\n<p><span style=\"line-height: 1.4\">What is I think most of us need?</span></p>\n<p><span style=\"line-height: 1.4\">A Black-box we can embbed in our programs. I need a blackbox that I can introduce the actual state of a flight (time, weight, fuel, position, altitude), a fly leg and the blackbox give me the new state:&nbsp;(time, weight, fuel, position, altitude).</span></p>\n<p><span style=\"line-height: 1.4\">I don't need a simulator give me the average for all the flights for all the fly legs: </span></p>\n<p><span style=\"line-height: 1.4\">I had this with the submission feature.</span></p>\n<p>&nbsp;</p>\n<p><span style=\"line-height: 1.4\">I would like to know your opinion.</span></p>\n<p><span style=\"line-height: 1.4\">How GE &amp; Kaggle&nbsp;thought we were going to do?</span></p>\n<p><span style=\"line-height: 1.4\">Is time to try fix this?</span></p>\n<p><span style=\"line-height: 1.4\">Other reflexion,</span></p>\n<p><span style=\"line-height: 1.4\">Why do you think there are so relatively few participants in this challenge? </span></p>\n<p><span style=\"line-height: 1.4\">Seems no more than 20 actively working.</span></p>\n<p><span style=\"line-height: 1.4\">It's amazing, good prizes... What is the problem?</span></p>\n<p>&nbsp;&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29685",
      "postDate": "08/29/2013 01:01:10",
      "content": "<p>This is an interesting contest, though there are certainly some software hurdles to overcome. I know I spent more time than I care to admit just getting Mono &amp; F# up and running.</p>\n<p>As Jose' says above, it would be great if we could minimize the complexity related to the simulator (including configuration complexity, code/data updates, etc.).&nbsp;</p>\n<p><span style=\"line-height: 1.4\">To that point: &nbsp;It might help to restructure the simulator so it could be easily loaded as a single object in any .NET language (e.g. C#, F#, IronPython). &nbsp;Then F# wouldn't be a prerequisite. &nbsp;A well-defined API could access the simulator object -- e.g. load the object, then submit <em>single</em> routes to the simulator to get their individual costs.</span></p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29703",
      "postDate": "08/29/2013 08:26:32",
      "content": "<p>Christopher,</p>\n<p><span style=\"line-height: 1.4\">That brings up a good point that anyone more comfortable with C# should see.&nbsp;</span></p>\n<p><span style=\"line-height: 1.4\">Having the F# compiler isn't a requirement.&nbsp;</span><span style=\"line-height: 1.4\">You can call all these FlightQuest functions from a C# (and probably IronPython) project</span>&nbsp;- just add FlightQuest.dll as a reference. All the input objects are defined types composed of primitives, so you shouldn't have any trouble with those. To read SimulatorResults.Messages, you simply need to reference <a href=\"http://www.nuget.org/packages/FSharp.Core/\">FSharp.Core</a> (v.4) via NuGet to get FSharpList.&nbsp;</p>\n<p>The only lengthy task at hand is loading the data files. Obviously, you'll want to use the same Serialization.loadXYZFromFile functions as seen in Program.fs.</p>\n<p>Take a look at the functions/items available under FlightQuest.Simulator for simulating single flights.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29712",
      "postDate": "08/29/2013 12:41:50",
      "content": "<p>There's also the option of writing an optimizer in another language and having it interact with the simulator executable via pipes. For quick and dirty testing, the provided Windows executable might serve as-is. It tests all flights in a batch, but I see nothing to prevent us from feeding it a testFlight.csv file with a single flight. File IO would be an issue.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29777",
      "postDate": "08/30/2013 14:25:58",
      "content": "<p>[quote=Jos&#233; A. Guerrero;29665]</p>\n<p><span style=\"line-height: 1.4\">What is I think most of us need?</span></p>\n<p><span style=\"line-height: 1.4\">A Black-box we can embbed in our programs. I need a blackbox that I can introduce the actual state of a flight (time, weight, fuel, position, altitude), a fly leg and the blackbox give me the new state:&nbsp;(time, weight, fuel, position, altitude).</span></p>\n<p><span style=\"line-height: 1.4\">[/quote]</span></p>\n<p><span style=\"line-height: 1.4\">Can you just use the simulator as an external program and call that executable from Python, etc.?<br>Or, have your Python etc. also as an executable and have a bash script (or something like that) call both in the right sequence?</span></p>\n<p><span style=\"line-height: 1.4\">That should provide the black-box-style functionality, and agrees with the suggestions of others here.<br></span></p>\n<p><span style=\"line-height: 1.4\">[quote=Jos&#233; A. Guerrero;29665]</span></p>\n<p><span style=\"line-height: 1.4\">I would like to know your opinion.</span></p>\n<p><span style=\"line-height: 1.4\">How GE &amp; Kaggle&nbsp;thought we were going to do?</span></p>\n<p><span style=\"line-height: 1.4\">[/quote]</span></p>\n<p><span style=\"line-height: 1.4\">Well, being able to see the simulator lets us know what features and interactions matter, what the representation of those features are, and how/in what way they matter.</span></p>\n<p><span style=\"line-height: 1.4\">[quote=Jos&#233; A. Guerrero;29665]</span></p>\n<p><span style=\"line-height: 1.4\">Other reflexion,</span></p>\n<p><span style=\"line-height: 1.4\">Why do you think there are so relatively few participants in this challenge? </span></p>\n<p><span style=\"line-height: 1.4\">Seems no more than 20 actively working.</span></p>\n<p><span style=\"line-height: 1.4\">It's amazing, good prizes... What is the problem?</span></p>\n<p>[/quote]</p>\n<p>F# may be scaring a few people off, but that's not necessarily a great reason for non-participation.</p>\n<p>Mainly, it's not a stable challenge.&nbsp; One could set up all the algorithms and infrastructure to develop a good solution, and then the next day, there's a major change in the simulator, the evaluation, the data, etc. and you have to start over again (maybe not from the beginning, but do a lot of rework).&nbsp; Alternatively, one could just wait and see if the challenge ever stabilizes, and then jump in, having made much better use of the time before that in endeavors outside this Challenge.&nbsp;</p>\n<p>You can see me active in the forums here, but I'm nowhere to be found on that leaderboard.</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29825",
      "postDate": "08/31/2013 04:48:37",
      "content": "<p>Although the topic and prize pool is interesting, I've held off participating up to this point due to the lack of stability in the project. Every few days there is a change.</p>\n<p>More people would join if the documentation was more clear.</p>\n<p>&nbsp;Up to this point, the admins of the project have been using the forum to dispense new information and I really think some of this information should just be made more clear on the competition page.</p>\n<p>&nbsp;Rather than ship us off to the wiki, if you could just elaborate what each of the data files are (briefly) and what is exactly we should be working with.</p>\n<p>&nbsp;I see gigs of files yet we only have one day's worth of simulator data. Why?</p>\n<p>&nbsp;</p>\n<p>Why do I need all these other gigs of files if, from what it seems, I can't even use them.</p>",
      "rawMarkdown": "",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 29685,
      "author_name": "chefele",
      "author_url": "",
      "post_date": "08/29/2013 01:01:10",
      "content": "<p>This is an interesting contest, though there are certainly some software hurdles to overcome. I know I spent more time than I care to admit just getting Mono &amp; F# up and running.</p>\n<p>As Jose' says above, it would be great if we could minimize the complexity related to the simulator (including configuration complexity, code/data updates, etc.).&nbsp;</p>\n<p><span style=\"line-height: 1.4\">To that point: &nbsp;It might help to restructure the simulator so it could be easily loaded as a single object in any .NET language (e.g. C#, F#, IronPython). &nbsp;Then F# wouldn't be a prerequisite. &nbsp;A well-defined API could access the simulator object -- e.g. load the object, then submit <em>single</em> routes to the simulator to get their individual costs.</span></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29703,
      "author_name": "nicksardo",
      "author_url": "",
      "post_date": "08/29/2013 08:26:32",
      "content": "<p>Christopher,</p>\n<p><span style=\"line-height: 1.4\">That brings up a good point that anyone more comfortable with C# should see.&nbsp;</span></p>\n<p><span style=\"line-height: 1.4\">Having the F# compiler isn't a requirement.&nbsp;</span><span style=\"line-height: 1.4\">You can call all these FlightQuest functions from a C# (and probably IronPython) project</span>&nbsp;- just add FlightQuest.dll as a reference. All the input objects are defined types composed of primitives, so you shouldn't have any trouble with those. To read SimulatorResults.Messages, you simply need to reference <a href=\"http://www.nuget.org/packages/FSharp.Core/\">FSharp.Core</a> (v.4) via NuGet to get FSharpList.&nbsp;</p>\n<p>The only lengthy task at hand is loading the data files. Obviously, you'll want to use the same Serialization.loadXYZFromFile functions as seen in Program.fs.</p>\n<p>Take a look at the functions/items available under FlightQuest.Simulator for simulating single flights.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29712,
      "author_name": "glazed",
      "author_url": "",
      "post_date": "08/29/2013 12:41:50",
      "content": "<p>There's also the option of writing an optimizer in another language and having it interact with the simulator executable via pipes. For quick and dirty testing, the provided Windows executable might serve as-is. It tests all flights in a batch, but I see nothing to prevent us from feeding it a testFlight.csv file with a single flight. File IO would be an issue.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29777,
      "author_name": "wbtthefrog",
      "author_url": "",
      "post_date": "08/30/2013 14:25:58",
      "content": "<p>[quote=Jos&#233; A. Guerrero;29665]</p>\n<p><span style=\"line-height: 1.4\">What is I think most of us need?</span></p>\n<p><span style=\"line-height: 1.4\">A Black-box we can embbed in our programs. I need a blackbox that I can introduce the actual state of a flight (time, weight, fuel, position, altitude), a fly leg and the blackbox give me the new state:&nbsp;(time, weight, fuel, position, altitude).</span></p>\n<p><span style=\"line-height: 1.4\">[/quote]</span></p>\n<p><span style=\"line-height: 1.4\">Can you just use the simulator as an external program and call that executable from Python, etc.?<br>Or, have your Python etc. also as an executable and have a bash script (or something like that) call both in the right sequence?</span></p>\n<p><span style=\"line-height: 1.4\">That should provide the black-box-style functionality, and agrees with the suggestions of others here.<br></span></p>\n<p><span style=\"line-height: 1.4\">[quote=Jos&#233; A. Guerrero;29665]</span></p>\n<p><span style=\"line-height: 1.4\">I would like to know your opinion.</span></p>\n<p><span style=\"line-height: 1.4\">How GE &amp; Kaggle&nbsp;thought we were going to do?</span></p>\n<p><span style=\"line-height: 1.4\">[/quote]</span></p>\n<p><span style=\"line-height: 1.4\">Well, being able to see the simulator lets us know what features and interactions matter, what the representation of those features are, and how/in what way they matter.</span></p>\n<p><span style=\"line-height: 1.4\">[quote=Jos&#233; A. Guerrero;29665]</span></p>\n<p><span style=\"line-height: 1.4\">Other reflexion,</span></p>\n<p><span style=\"line-height: 1.4\">Why do you think there are so relatively few participants in this challenge? </span></p>\n<p><span style=\"line-height: 1.4\">Seems no more than 20 actively working.</span></p>\n<p><span style=\"line-height: 1.4\">It's amazing, good prizes... What is the problem?</span></p>\n<p>[/quote]</p>\n<p>F# may be scaring a few people off, but that's not necessarily a great reason for non-participation.</p>\n<p>Mainly, it's not a stable challenge.&nbsp; One could set up all the algorithms and infrastructure to develop a good solution, and then the next day, there's a major change in the simulator, the evaluation, the data, etc. and you have to start over again (maybe not from the beginning, but do a lot of rework).&nbsp; Alternatively, one could just wait and see if the challenge ever stabilizes, and then jump in, having made much better use of the time before that in endeavors outside this Challenge.&nbsp;</p>\n<p>You can see me active in the forums here, but I'm nowhere to be found on that leaderboard.</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29825,
      "author_name": "ericmartinez",
      "author_url": "",
      "post_date": "08/31/2013 04:48:37",
      "content": "<p>Although the topic and prize pool is interesting, I've held off participating up to this point due to the lack of stability in the project. Every few days there is a change.</p>\n<p>More people would join if the documentation was more clear.</p>\n<p>&nbsp;Up to this point, the admins of the project have been using the forum to dispense new information and I really think some of this information should just be made more clear on the competition page.</p>\n<p>&nbsp;Rather than ship us off to the wiki, if you could just elaborate what each of the data files are (briefly) and what is exactly we should be working with.</p>\n<p>&nbsp;I see gigs of files yet we only have one day's worth of simulator data. Why?</p>\n<p>&nbsp;</p>\n<p>Why do I need all these other gigs of files if, from what it seems, I can't even use them.</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "29665": "",
    "29685": "",
    "29703": "",
    "29712": "",
    "29777": "",
    "29825": ""
  },
  "source": "meta"
}