User:Philosopher: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
mNo edit summary
m (better document this issue report while I have it...)
Line 29: Line 29:
Good ideas:
Good ideas:
* Expose the catapult locations to the property tree, for JSBSim 'craft and Nasal tutorials.
* Expose the catapult locations to the property tree, for JSBSim 'craft and Nasal tutorials.
* [http://flightgear.org/forums/viewtopic.php?f=18&t=19666 Changing behavior of SGPropertyNodes without tying]
* [http://flightgear.org/forums/viewtopic.php?f=18&t=19666 Changing behavior of SGPropertyNodes without tying] (something like {{issue|336}}).
* (In conjunction with Hooray) Have Nasal load itself: besides for one file (either Nasal/globals.nas or something in [[$FG_ROOT]]), ''all'' Nasal should be loaded from Nasal.  (Including <tt>--prop:/nasal/module_name/script</tt> and <tt>--prop:/nasal/module_name/file</tt>.) See [http://flightgear.org/forums/viewtopic.php?f=30&t=21083] & [http://forum.flightgear.org/viewtopic.php?f=30&t=21083] {{Progressbar|50}}.
* (In conjunction with Hooray) Have Nasal load itself: besides for one file (either Nasal/globals.nas or something in [[$FG_ROOT]]), ''all'' Nasal should be loaded from Nasal.  (Including <tt>--prop:/nasal/module_name/script</tt> and <tt>--prop:/nasal/module_name/file</tt>.) See [http://flightgear.org/forums/viewtopic.php?f=30&t=21083] & [http://forum.flightgear.org/viewtopic.php?f=30&t=21083] {{Progressbar|50}}.



Revision as of 20:16, 16 May 2014

Sub-pages: (mostly stubs ATM)

Currently working on improving Nasal internals and documenting them. Has the best joystick bindings (for a cheap joystick :P) at this topic.

Likes reading through C/C++ code for fun, and understanding, documenting, and improving it – though I'm far from an expert in either and my hat is continually off to Andy, Thomas, and James (and everyone else) for their wonderful code. Oddly enough, I find Nasal code to be harder to read, probably due to the fact that C/C++ and very structured languages and Nasal is not (it almost needs DbC at times!).

Favorite languages:

  • Nasal (of course)
  • Python (was my first language; I like most things about it except its duck typing – which works well until I actually need typing)
  • C & C++ (different beasts; I like C++'s classes and ::iterators in particular)
  • Languages yet to be discovered: I hope to find more that I like!

Things to be doing:

  • Improving the Joystick GUI: porting to Canvas, tweaking things, and integration with back-end when ready.
  • Joystick-Philosopher (bindings for Cyborg-X): improve the control_function library.
  • Nasal improvement for 3.0 (LaTeX document, making patches and applying patches to SimGear).
  • Nasal browser: need a mechanism to add/delete/edit entries, need better scrolling code.
  • Canvas Map: working on MapStructure.nas, to replace old map.nas &c.

Projects on the wiki:

Good ideas:

  • Expose the catapult locations to the property tree, for JSBSim 'craft and Nasal tutorials.
  • Changing behavior of SGPropertyNodes without tying (something like ticket #336).
  • (In conjunction with Hooray) Have Nasal load itself: besides for one file (either Nasal/globals.nas or something in $FG_ROOT), all Nasal should be loaded from Nasal. (Including --prop:/nasal/module_name/script and --prop:/nasal/module_name/file.) See [1] & [2] 50}% completed.

Nasal thoughts area:

  • I would like to include small improvements that enhance my quality of life in SimGear: string slicing, hash iteration using foreach/forindex, save/restore aka stash? (latter to be discussed)
  • Hooray and I talk about more extension functions to allow looking into internals; I need to review all of these, gather them up, add to them, etc., and hope they can be included somewhere (Hooray was saying maybe just the standalone Nasal in SimGear, not FlightGear's runtime).
    • Sub-idea: if we only include the extensions in standalone and we have optimizer/post-compiler scripts ready, then make a script to be run with standalone that optimizes any or all Nasal files and outputs an optimized version (*.nas.optimized) or even just the bytecode (*.nas.opcode, textual file ofc) and have that be the preferred loading method (if the text is older than the optimized version).