User:Philosopher

From FlightGear wiki
Jump to: navigation, search

Sub-pages: (mostly stubs ATM)

Sometimes working on improving Nasal internals and documenting them. Has the best joystick bindings (for a cheap joystick :P) at this topic. Most recently working on various Canvas dialogs/frameworks.

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.
  • Nasal bootstrapping: get started again, commit in a useable state, but needs design and implementation first.
  • Joystick-Philosopher (bindings for Cyborg-X): improve the control_function library.
  • Nasal improvement for whatever release (LaTeX document, making patches and applying patches to SimGear), making sure it doesn't crash.
  • Canvas Map: working on MapStructure.nas, to replace old map.nas &c.
  • Consolidating gen library, hopefully committing once bootstrapping is also committed. Make sure it doesn't crash the interpreter or reinstall Linux!
  • Fixing bugs, tweaking small things :-).

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).