From f2aa218ed3c0d74c6bff2dd5018e10171d447c1e Mon Sep 17 00:00:00 2001 From: brutzman <brutzman@DESKTOP-2S09UKA> Date: Mon, 1 Jul 2019 17:20:32 -0700 Subject: [PATCH] telnet as separate section --- developers.html | 5351 ++++++++++++++++++++++++----------------------- 1 file changed, 2680 insertions(+), 2671 deletions(-) diff --git a/developers.html b/developers.html index af3a3de560..998383684e 100644 --- a/developers.html +++ b/developers.html @@ -1,2671 +1,2680 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - -<html> - <head> - <link rel="shortcut icon" href="images/X3DtextIcon16.png" title="Savage Developers Guide" /> - <title>Savage Developers Guide</title> - <meta name="author" content="Don Brutzman"/> - <meta name="description" content="Configuration setup guide for Savage X3D project developers."/> - <meta name="title" content="developers.html"/> - <meta name="identifier" content="https://savage.nps.edu/Savage/developers.html"/> - <meta name="generator" content="X3D-Edit, https://savage.nps.edu/X3D-Edit"/> - <meta name="created" content="22 February 2010"/> - <!-- symbolic link: cd /var/www/html; ln -s Savage/developers.html developers.html --> - </head> - <body> - <a name="top"/> - <!-- =========================================================== --> - - <table border="0" cellspacing="0" cellpadding="0" summary="" align="center"> - <tr align="center"> - <td><a href="https://savage.nps.edu/Savage"><img src="images/SavageLogo.png" width="83" height="100" border="0" title="to Savage X3D Models Archive" alt="to Savage X3D Models Archive"/></a></td> - <td><pre> </pre></td> - <td><h1> Savage Developers Guide </h1></td> - <td><pre> </pre></td> - <td><a href="http://www.nps.edu"><img src="images/nps_logo.jpg" width="126" height="90" border="0" title="to NPS home page" alt="to NPS home page"/></a></td> - </tr> - </table> - - <p align="center"> - This developers guide describes system configuration supporting various software projects by the NPS MOVES Savage Research Group. - <!-- both for client-side and server-side capabilities. --> - </p> - - <!-- - <table border="0" cellspacing="2" cellpadding="2" summary="" align="center" width="80%"> - <tr> - <td> - </td> - </tr> - </table> - --> - - <blockquote width="7s0%"> - <p align="center"><small> - <a href="#Ant">Ant</a> | - <!-- TODO: Backups --> - <a href="#Chat">Chat</a> | - <a href="#Cygwin">Cygwin</a> | - <a href="#DES" title="Discrete Event Simulation (DES) Simkit, Viskit, DISkit">DES</a> | - <a href="#DIS" title="IEEE Distributed Interactive Simulation (DIS) Protocol">DIS</a> | - <a href="#Donate">Donate</a> | - <a href="#Free">Free</a> | - <a href="#hamming">hamming</a> | - <a href="#Java">Java</a> | - <a href="#JavaScript">JavaScript</a> | - <a href="#Jenkins">Jenkins</a> | - <a href="#Licensing">Licensing</a> | - <a href="#Media">Media</a> | - <a href="#MySQL">MySQL</a> | - <a href="#NetBeans">NetBeans</a> | - <a href="#Projects">Projects</a> | - <a href="#Security">Security</a> | - <a href="#Servers">Servers</a> | - <a href="#Subversion">Subversion</a> | - <a href="#Time">Time</a> | - <a href="#Tools">Tools</a> | - <a href="#Wikis">Wikis</a> | - <a href="#Writing">Writing</a> | - <a href="https://savage.nps.edu/X3D-Edit" title="go to this page" alt="go to this page">X3D-Edit</a> | - <a href="#Xj3D">Xj3D</a> | - <a href="#XML">XML</a> | - <a href="#XmlCatalog">XML Catalog</a> | - <a href="X3dResources.html" title="go to this page" alt="go to this page">X3D Resources</a> | - <a href="X3dSceneAuthoringHints.html" title="go to this page" alt="go to this page">X3D Scene Authoring Hints</a> | - <a href="https://SavageDefense.nps.navy.mil/developers.html" title="restricted access" alt="restricted access">SavageDefense</a> | - <a href="#Contact">Contact</a> - </small></p> - </blockquote> - - <p align="center"> - SAVAGE stands for Scenario Authoring and Visualization for Advanced Graphics Environments. - - Our mascot is a - <a href="images/SavageLogo.png">LION</a> - because <b>Like It Or Not</b>, on the Web, - open source and open standards always win! - </p> -<!-- TODO more --> - - <!-- =========================================================== --> - - <h2> <a name="Ant">Ant</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - <a href="http://ant.apache.org">Ant</a> is a Java library and command-line tool used to automate common tasks for building projects. - Ant task syntax is in XML, making task definition and validation much simpler than other build systems. - </p> - - <p> - Ant is used to maintain most Savage projects. - Key references include: - </p> - - <ul> - <li> - <a href="http://ant.apache.org">Apache Ant project</a> - and - <a href="http://ant.apache.org/faq.html">Frequently Asked Questions (FAQ)</a> - </li> - <li> - <a href="http://ant.apache.org/manual">Ant manual</a> - then - <i>Ant tasks</i> - and - <i>List of tasks</i>. - </li> - <li> - <a href="http://ant-contrib.sourceforge.net">Ant-contrib</a> - site including - <a hre="https://sourceforge.net/projects/ant-contrib/files/ant-contrib">downloads</a> - plus documentation for - <a href="http://ant-contrib.sourceforge.net/tasks/index.html">installation and tasks</a>. - </li> - <li> - <a href="http://ant.apache.org/ant_in_anger.html">Ant in Anger</a> - and - <a href="http://manning.com/loughran">Ant in Action</a> - (second edition of <i>Java Development with Ant</i>) - by Steve Loughran and Erik Hatcher. - </li> - </ul> - - <p> - Recommended ant configuration details follow. - </p> - - <ul> - <li> - Download and install the - <a href="http://ant.apache.org">Ant</a> - binary distribution. - The default installation directory referred to by various Savage and X3D build files is - <br /> - <code style="color:darkgreen"><b>C:\apache-ant-1.10.5</b></code> - </li> - <li> - Prepend the following executable paths to the - system Path variable: - <br /> - <code style="color:darkgreen"><b>PATH=.;%ANT_HOME%\bin;</b></code><code>... (etc.)</code> - </li> - <li> - Set additional - system environment variables - as follows: - <br /> - <code style="color:darkgreen"><b>ANT_HOME=C:\apache-ant-1.10.5</b></code> - <br /> - If system memory is limited, additional options might be needed: - <br /> - <code style="color:darkgreen"><b>ANT_OPTS=-Xss16m -Xmx4096M</b></code> - or - <code style="color:darkgreen"><b>ANT_OPTS=-Xss16m -Xmx8192M</b></code> - <blockquote> - On Windows systems, set environment variables by selecting - <br /> - <i> Control Panel </i> <b>></b> - <i> System Properties </i> <b>></b> - <i> Advanced settings </i> <b>></b> - <i> Environment variables </i> - <i> System variables </i> - </blockquote> - </li> - <li> - Important: follow the - <a href="http://ant.apache.org/manual/install.html">Ant manual installation instructions</a> - to install libraries for optional ant tasks as follows - (<a href="antConfigurationFetchOutput.txt">example output</a>): - <br /> - <code style="color:darkgreen"><b>C:\apache-ant-1.10.5> ant -f fetch.xml -Ddest=system</b></code> - </li> - <li>Confirm proper path and installation: -<pre><b>ant -version</b> -Apache Ant(TM) version 1.10.5 compiled on February 2 2017 -</pre> - </li> - <li> - Additional requirements: several ant tasks (such as - <code>junit</code>, - <code>sshexec</code> - and - <code>scp</code> - require the addition of external - <a href="http://ant.apache.org/manual/install.html#librarydependencies">library dependencies</a>. - </li> - <ul> - <li> - Extract and install the - <a href="http://ant-contrib.sourceforge.net">ant-contribs package</a> - under <code style="color:darkgreen"><b>ANT_HOME</b></code>, - then copy - <code style="color:darkgreen"><b>ant-contrib-*.jar</b></code> - into the - <code style="color:darkgreen"><b>ANT_HOME/lib/</b></code> - subdirectory. You can now use any of the - <a href="http://ant-contrib.sourceforge.net/tasks/tasks" target="antcontrib">ant-contrib tasks</a> - by including the following top-level statement in your build.xml file. - <br /> - <code style="color:darkgreen"><b><taskdef resource="net/sf/antcontrib/antcontrib.properties"/></b></code> - </li> - <li> - Optional: extract, build and install the latest - <a href="http://www.jcraft.com/jsch">jsch-0.1.54.jar</a> package - into the - <code style="color:darkgreen"><b>ANT_HOME/lib/</b></code> - subdirectory. - </li> - <li> - To build the X3D examples archives, extract the latest Apache Commons resolver - <a href="http://www.apache.org/dist/xerces/xml-commons/">xml-commons-resolver-latest.zip</a> - and then place a copy of - <code style="color:darkgreen"><b>resolver.jar</b></code> - in the - <code style="color:darkgreen"><b>ANT_HOME/lib/</b></code> - subdirectory. Also be sure to check ownership and executable permissions for this file. - </li> - <li> - Alternatively, additional jar libraries can be added to your Ant installation within the - <code style="color:darkgreen"><b><a href="http://ant.apache.org/manual/install.html#optionalTasks">{user.home}/.ant/lib</a></b></code> - directory. - </li> - <!-- TODO is junit not in ant default build? --> - </ul> - <li> - NetBeans users can reset the default directory referred to by NetBeans: - <i>Tools</i> menu, <i>Options</i> panel, <i>Miscellaneous</i> tab, <i>Ant</i> subtab, <i>Ant home</i> <code style="color:darkgreen"><b>C:\apache-ant-1.10.5</b></code> - </li> - <li> - For server-side installations (including <a href="#Jenkins">Jenkins</a>), - the system administrator must ensure that all read/write access permissions are properly set. - </li> - <li> - Previously ssh using - maverick1.2 was added by putting - <a href="http://xmsf.svn.sourceforge.net/svnroot/xmsf/trunk/AuvWorkbench/lib/apache-ant/lib/maverick-ant.jar">maverick.ant.jar</a> - in ANT_HOME/lib. - We changed the maverick ssh tasks to use the native Ant - <code style="color:darkgreen"><b>scp</b></code> task instead. - </li> - </ul> - - <p> - Further configuration options are described under - <a href="http://ant.apache.org/manual/install.html#setup">Ant Setup</a>. - </p> - - - <!-- =========================================================== --> - - <h2> <a name="Chat">Chat</a> using XMPP Jabber - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - The Savage tools use chat software that supports the - <a href="http://xmpp.org">Extensible Messaging and Presence Protocol (XMPP)</a>, - commonly known as Jabber chat. - </p> - - <ul> - <li> - <a href="chat.html">Savage XMPP Chat Support</a> - page provides connection information for our chat rooms. - </li> - <li> - The Savage chat server is - <code style="color:darkgreen"><b><a href="xmpp://conference.savage.nps.edu">xmpp://conference.savage.nps.edu</a></b></code> - and the following rooms are publicly available: - <ul> - <li> - <code style="color:darkgreen"><b><a href="xmpp://auvw@conference.savage.nps.edu">auvw</a></b></code> for AUV Workbench discussions - </li> - <li> - <code style="color:darkgreen"><b><a href="xmpp:jenkins@conference.savage.nps.edu">jenkins</a></b></code> for Jenkins build reports - </li> - <li> - <code style="color:darkgreen"><b><a href="xmpp://x3d@conference.savage.nps.edu">x3d</a></b></code> for X3D Graphics discussions - </li> - </ul> - </li> - <li> - <a href="mailto:brutzman@nps.edu(Don%20Brutzman),mcgredo@nps.edu(Don%20McGregor),?subject=Savage%20chat%20server%20password%20request">Savage chat server password request</a> - </li> - <li> - We typically use - <a href="http://www.igniterealtime.org">Ignite Real Time</a> - which provides excellent open-source software with commercial extensions - <ul> - <li> - <a href="http://www.igniterealtime.org/downloads/index.jsp#spark">Spark</a> client software - (<a href="http://www.igniterealtime.org/builds/spark/docs/spark_user_guide.pdf">user's guide</a>) - </li> - <li> - <a href="http://www.igniterealtime.org/projects/openfire">Openfire</a> server software - </li> - </ul> - </li> - <li> - <a href="https://savage.nps.edu:9091">Savage chat server administrator console</a> - </li> - </ul> - - - <!-- =========================================================== --> - - <h2> <a name="Cygwin">Cygwin</a> Unix for Windows - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - The Cygwin distribution provide Unix command-line functionality for Windows systems. - It is not needed for macOS or Linux systems. - </p> - - <ul> - <li> - <a href="http://www.cygwin.com">Download and install Cygwin</a> (only on Windows systems). - The usual default installation directory is - <code style="color:darkgreen"><b>C:\cygwin</b></code> - <ul> - <li> - Also select and add the <b>openssh</b> package in order to have console access to <code style="color:darkgreen"><b>ssh</b></code> and <code style="color:darkgreen"><b>sftp</b></code> commands. - </li> - </ul> - </li> - <li> - Modify the system PATH environment variable to include - <br /> - <code style="color:darkgreen"><b>.;C:\cygwin\bin;</b></code> - near the beginning (before any Windows default directories) - </li> - <li> - Set the - <a href="http://cygwin.com/cygwin-ug-net/using-cygwinenv.html">CYGWIN environment variable</a> - (and - <a href="http://cygwin.com/cygwin-ug-net/using.html#using-pathnames">cygwin path functionality</a>) - as follows: - <br /> - <code style="color:darkgreen"><b>CYGWIN=nodosfilewarning</b></code> - </li> - <li> - <a href="http://cygwin.com/faq/">Cygwin FAQ</a> - and - <a href="http://cygwin.com/cygwin-ug-net/cygwin-ug-net.html">Cygwin User's Guide</a> - </li> - <li> - <a href="http://cygwin.com/cygwin-ug-net/setup-files.html">Customizing bash shell</a> - (see directory <code style="color:darkgreen"><b>/home/Username/</b></code> for files <code style="color:darkgreen"><b>.bashrc</b></code> <code style="color:darkgreen"><b>.bash_profile</b></code> and <code style="color:darkgreen"><b>.inputrc</b></code>) - </li> - <li> - <a name="inetutils"></a> - <a href="http://ras52-tech.blogspot.com/2007/01/telnet-on-cygwin.html">Telnet and other networking clients</a> - are in the <i>Net/inetutils</i> package - </li> -<!-- - <li> - User-specific configuration files: - <code style="color:darkgreen"><b>/home/username//.bashrc</b></code>, - <code style="color:darkgreen"><b>/home/username//.bash_profile</b></code>, - <code style="color:darkgreen"><b>/home/username//.inputrc</b></code> - </li> - -Your group is currently "mkpasswd". This indicates that your -gid is not in /etc/group and your uid is not in /etc/passwd. - -The /etc/passwd (and possibly /etc/group) files should be rebuilt. -See the man pages for mkpasswd and mkgroup then, for example, run - -mkpasswd -l [-d] > /etc/passwd -mkgroup -l [-d] > /etc/group - -Note that the -d switch is necessary for domain users. ---> - </ul> - - <!-- =========================================================== --> - - <h2> <a name="DES">Discrete Event Simulation (DES)</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - The DES projects are a suite of integrated tools for analytic simulation. - This work is entirely built using open-source Java, XML and X3D. - </p> - - <ul> - <li> - <a href="http://eos.nps.edu/Simkit">Simkit</a> - <a name="Simkit"> </a> - is a Java package for creating Discrete Event Simulation (DES) models - <ul> - <li> - <a href="https://eos.nps.edu/WebSVN/listing.php?repname=Simkit" target="_blank">subversion browse</a> - </li> - <li> - <a href="https://eos.nps.edu/svn/Simkit/trunk" target="_blank">subversion source</a>, - anonymous checkout at - <code style="color:darkgreen"><b>https://eos.nps.edu/svn/Simkit/trunk</b></code> - with username <code style="color:darkgreen"><b>guest</b></code> - </li> - <li> - <a href="https://www.movesinstitute.org/mailman/listinfo/simkit">Simkit mailing list</a> - </li> - <li> - <a href="https://savage.nps.edu/jenkins/job/Simkit/">Savage jenkins server: Simkit</a> - builds Simkit nightly - </li> - <li> - <a href="https://eos.nps.edu/bugzilla/buglist.cgi?quicksearch=simkit" target="_blank">Simkit bugtracker</a> - </li> - </ul> - </li> - <li> - <b>Diskit</b> - <a name="Diskit"> </a> - is a Java package for adding the IEEE Distributed Interactive Simulation (DIS) protocol to Simkit models - <ul> - <li> - <a href="https://eos.nps.edu/WebSVN/listing.php?repname=DISKIT" target="_blank">subversion browse</a> - </li> - <li> - <a href="https://eos.nps.edu/wcm/DISKIT/trunk" target="_blank">subversion source</a>, - anonymous checkout at - <code style="color:darkgreen"><b>https://eos.nps.edu/wcm/DISKIT/trunk</b></code> - with username <code style="color:darkgreen"><b>guest</b></code> - </li> - <li> - <a href="https://savage.nps.edu/jenkins/job/Diskit/">Savage jenkins server: Diskit</a> - builds Diskit nightly - </li> - <li> - <a href="https://eos.nps.edu/bugzilla/buglist.cgi?quicksearch=Diskit" target="_blank">Diskit bugtracker</a> - </li> - </ul> - </li> - <li> - <a href="http://eos.nps.edu/Viskit">Viskit</a> - <a name="Viskit"> </a> - is a visual programming tool to create, run and analyze Simkit models - <ul> - <li> - <a href="https://eos.nps.edu/WebSVN/listing.php?repname=Viskit" target="_blank">subversion browse</a> - </li> - <li> - <a href="https://eos.nps.edu/wcm/Viskit/trunk" target="_blank">subversion source</a>, - anonymous checkout at - <code style="color:darkgreen"><b>https://eos.nps.edu/wcm/Viskit/trunk</b></code> - with username <code style="color:darkgreen"><b>guest</b></code> - </li> - <li> - <a href="https://savage.nps.edu/sub/nps/ViskitModels">ViskitModels</a> behavior libraries - </li> - <li> - <a href="https://www.movesinstitute.org/mailman/listinfo/viskit">Viskit mailing list</a> - </li> - <li> - <a href="https://savage.nps.edu/jenkins/job/Viskit/">Savage jenkins server: Viskit</a> - builds Viskit nightly - </li> - <li> - <a href="https://eos.nps.edu/bugzilla/buglist.cgi?quicksearch=Viskit" target="_blank">Viskit bugtracker</a> - </li> - <li> - TODO: update Viskit home page, put into version control, and link it - </li> - </ul> - </li> - <li> - <a name="SavageStudio"> </a> - <a href="https://xmsf.svn.sourceforge.net/svnroot/xmsf/trunk/SavageStudio">SavageStudio</a> - is a a drag+drop scenario-authoring tool. - <ul> - <li> - SavageStudio uses the Savage archives for X3D models and Viskit behaviors to construct agent-based discrete-event simulation (DES) scenarios. - </li> - <li> - SavageStudio analyst reports are repeatable, refinable and publishable. - </li> - <li> - Simulation replications can be visualized using <a href="#Xj3D">Xj3D</a>. - </li> - <li> - <a href="https://savage.nps.edu/videos/SavageStudio-Scenario-Demo.2015JAN08.mp4" target="_blank">SavageStudio Scenario Demonstration</a> video - </li> - </ul> - </li> - <li> - Experimental - <ul> - <li> - <a href="https://okane.movesinstitute.org/simkit">SimkitProjects server</a> - (using - <a href="http://www.redmine.org/guide">Redmine</a>) - was an integrated project management site for various related projects. - </li> - </ul> - </li> - </ul> - - <!-- =========================================================== --> - - <h2> <a name="DIS">Distributed Interactive Simulation (DIS) Protocol</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - The - <a href="http://en.wikipedia.org/wiki/Distributed_Interactive_Simulation">IEEE Distributed Interactive Simulation (DIS) protocol</a> - is an IEEE standard for conducting real-time platform-level simulation across multiple host computers. - DIS is one of the most widely used modeling and simulation networking standards. - DIS is used worldwide, - especially by military organizations but also by other agencies such as those involved in space exploration and medicine. - </p> - <p> - Overview (from the standard). - Data messages, known as Protocol Data Units (PDUs), that are exchanged on a network among simulation applications are defined. - These PDUs are for interactions that take place within specified domains called protocol families, which include - Entity Information/Interaction, Warfare, Logistics, Simulation Management, Distributed Emission Regeneration, Radio Communications, - Entity Management, Minefield, Synthetic Environment, Simulation Management with Reliability, Information Operations, - Live Entity Information/Interaction, and Non-Real-Time protocol. - </p> - - <ul> - - <li> - DIS Standard: - <a href="http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=6387562">IEEE Standard 1278.1-2012 for Distributed Interactive Simulation--Application Protocols</a> - <ul> - <li> - Prior version: - <a href="http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=3700">IEEE Standard 1278.1-1995(R2002) for DIS</a>) - </li> - <li> - <a href="http://www.sisostds.org/DigitalLibrary.aspx?EntryId=29288">DIS 7 Overview, SISO PSG File Library</a> - reference documents - </li> - <li> - <a href="documents/SISO-REF-020-DRAFT%20DIS%20Plain%20and%20Simple-20131107.pdf">DIS Plain and Simple Guide</a> - (<a href="https://savage.nps.edu/Savage/documents/SISO-REF-020-DRAFT%20DIS%20Plain%20and%20Simple-20131107.pdf">online</a>), - SISO-REF-020-2007-DRAFT, March 2007 - (<a href="https://www.sisostds.org/Standards-Activities/Support-Groups/DIS-PSG-Distributed-Interactive-Simulation">status</a>). - </li> - </ul> - </li> - - <li> - <a href="http://open-dis.sourceforge.net/Open-DIS.html">Open-DIS</a> - implementation of the - DIS protocol - in Java, Javascript, C++, C# and Objective C - (<a href="https://savage.nps.edu/X3D-Edit/Open-DIS-flyer.pdf">flyer</a>). - <ul> - <li> - <a href="http://open-dis.sourceforge.net/Open-DIS.html">Open-DIS home</a>, - <a href="https://sourceforge.net/projects/open-dis">sourceforge site</a>, - and - <a href="http://open-dis.sourceforge.net/Documentation.html">documentation</a> - </li> - <li> - <a href="http://jsperf.com/javascript-dis-native-vs-json/2">Javascript DIS Native vs JSON</a> - browser-performance comparisons - </li> - <li> - Application: - <a href="https://savage.nps.edu/AuvWorkbench">Autonomous Unmanned Vehicle (AUV) Workbench</a> - </li> - <li> - Application: - <a href="https://savage.nps.edu/X3D-Edit/#Open-DIS">X3D-Edit</a> - </li> - <li> - Library: the DES modeling tools Simkit and Viskit are supported by - <a href="#Diskit">Diskit</a>, - a Java package for adding the IEEE DIS protocol to Simkit models. - </li> - </ul> - </li> - - <li> - Educational materials - <ul> - <li> - <a href="http://movesinstitute.org/~mcgredo/MV3500/">NPS MOVES MV3500 Networked Simulation</a> - course notes by Don McGregor - <!-- TODO Sakai site --> - </li> - <li> - <a href="http://x3dgraphics.com/slidesets/X3dForAdvancedModeling/DistributedInteractiveSimulation.pdf">X3D Graphics and DIS</a> - slideset - </li> - <li> - TODO: list of relevant NPS theses - </li> - </ul> - </li> - - <li> - <a href="http://www.sisostds.org/ProductsPublications/ReferenceDocuments.aspx">SISO Reference Documents</a> include - <ul> - <li> - <!-- https://stackoverflow.com/questions/16622504/escaping-ampersand-in-url to encode ampersand & as %26 --> - <!-- https://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters --> - <a href="http://www.sisostds.org/DigitalLibrary.aspx?Command=Core_Download%26EntryId=41275">SISO-REF-010-01-2013 (v2-0)</a>: Operations Manual for the Enumerations Working Group (EWG) - </li> - <li> - <a href="http://www.sisostds.org/DigitalLibrary.aspx?Command=Core_Download%26EntryId=41145">SISO-REF-010-00-2013 (v20-0)</a>: Reference for Enumerations for Simulation Interoperability - <ul> - <li> - Also known as Enumeration Byte Values (EBV) - </li> - <li> - Distribution includes reference document plus XML and spreadsheet versions of enumeration name=value definitions - </li> - <li> - Mailing list: - <a href="mailto:SISO-ENUM@discussions.sisostds.org?SISO-ENUMerations:%20">SISO-ENUM@discussions.sisostds.org</a> - (<a href="mailto:SISO-ENUM.list-request@discussions.sisostds.org?subscribe;body=subscribe">subscribe</a>) - (<a href="mailto:SISO-ENUM@discussions.sisostds.org?SISO-ENUMerations:%20">thread</a>) - </li> - <li> - <a href="http://open-dis.sourceforge.net/javadoc/disenum/docs">open-DIS Enumerations Javadoc</a> - </li> - </ul> - </li> - </ul> - </li> - </ul> - - <!-- =========================================================== --> - - <h2> <a name="Donate">Donate</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - Savage software and models are openly published without charge and funded by research proposals. - You are welcome to donate funds to support these efforts if you wish. - You are welcome to tell our benefactors about your interest in Savage and X3D Graphics: - </p> - - <ul> - <li> - <a href="http://www.npsfoundation.org">Naval Postgraduate School Foundation (NPS)</a> - is the non-profit organization that supports - NPS - </li> - <li> - <a href="http://web3d.org/donate">Web3D Consortium</a> - is the non-profit organization that supports - Extensible 3D (X3D) Graphics development. - </li> - </ul> - <p> - Please contact - <a href="http://web.nps.navy.mil/~brutzman" target="_blank">Don Brutzman</a> - (<a href="mailto:brutzman%20at%20nps.edu%20(Don%20Brutzman)?subject=feedback:%20research%20sponsorship,%20collaboration%20"><i>brutzman at nps.edu</i></a>) - if you are interested in sponsoring or partnering on further research. - </p> - - <!-- =========================================================== --> - - <h2> <a name="Free">Free</a> as in Freedom - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - The free cost of open-source software has been fundamentally important to the Savage group's ability to create - applications and content that are highly capable, compliant with open standards, highly capable, maintainable - and repeatable by others. - </p> - <ul> - <li> - "Free" is more like "free puppy" than "free beer" for software development! - </li> - <li> - Care, feeding and support are needed over time. Nevertheless you always have the freedom to fix, modify and extend. - </li> - </ul> - <p> - This long-term stability is essential to our accomplishing the NPS mission of graduate education and research. - It further allows our graduates, and any other government agency, to utilize our standards-driven work compatibly with - program life-cycle requirements and industry support. - </p> - <p> - The development and use of free software avoids common problems of - "vendor lock in" through proprietary restrictions, - inability of ongoing government efforts to fund the renewal of prior licenses, - and inability to pay a company that is otherwise unwilling to perform software bugfixes and corrections. - </p> - <p> - This approach also avoids the common "short half-life" problems of companies that can either go out of business or else get acquired (and perhaps buried) by other companies. - Such business pathologies not only break software but also negate correspondingly significant investments to create content of interest. - In turn, such dependency on proprietary software leads to personnel vulnerabilities when - an expert programmer or content developer can no longer apply their skills to improve prior accomplishments. - </p> - <p> - Further information on these software imperatives can be found in the - <a href="#Licensing">Licensing</a> - section and through the following key sources. - </p> - <ul> - <li> - <a href="https://www.apache.org">Apache Software Foundation (ASF)</a> - provides support for the Apache community of open-source software projects, which provide software products for the public good. - Of particular interest are the - <a href="https://www.apache.org/licenses">Apache Licenses</a>. - </li> - <li> - <a href="https://www.gnu.org">GNU</a> - (GNU's Not Unix!) operating system - is a broad software collection of applications, libraries, and developer tools. - </li> - <li> - <a href="https://www.eff.org">Electronic Frontier Foundation (EFF)</a> - is a nonprofit organization defending civil liberties in the digital world. - - </li> - <li> - <a href="https://www.fsf.org">Free Software Foundation</a> - has a worldwide mission to promote computer0user freedom and to defend the rights of all free software users. - </li> - </ul> - - <!-- =========================================================== --> - - <h2> <a name="hamming">hamming</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - <a href="http://hamming.uc.nps.edu">hamming</a> - is the NPS supercomputer used for a variety of tasks with - X3D Earth, - Renderman rendering, - and - Viskit Design of Experiments. - </p> - - <ul> - <li> - <a href="http://hamming.uc.nps.edu">hamming</a> wiki page - and - <a href="http://hamming.uc.nps.edu/ganglia">ganglia</a> cluster load - </li> - <li> - <a href="http://www.nps.edu/hpc">NPS High-Performance Computing (HPC)</a> - and - <a href="http://www.nps.edu/hpc/Facilities.html">HPC Facilities</a> - </li> - </ul> - - <p> - This major asset is named for - former NPS Emeritus Professor and distinguished computer scientist - <a href="http://en.wikipedia.org/wiki/Hamming">Richard W. Hamming</a>. - </p> - - <!-- =========================================================== --> - - <h2> <a name="Java">Java</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - Java is the primary programming language used in Savage projects. - </p> - - <ul> - <li> - Download and install the latest - <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">Java Development Kit (JDK)</a>. - This installation also includes the - Java Runtime Environment (JRE), - which does not need to be installed separately. - </li> - <li> - Default Java version used in Savage projects is - <code style="color:darkgreen"><b>jdk1.8.0_212</b></code> - </li> - <li> - Verify that the - system environment variables - are set appropriately. Example: - <!-- - <br /> - <code style="color:darkgreen"><b>JAVA_HOME=C:\Program Files\Java\jdk1.7.0_55</b></code> - <br /> - or - --> - <br /> - <code style="color:darkgreen"><b>JAVA_HOME=C:\Program Files\Java\jdk1.8.0_212</b></code> - <br /> - <code style="color:darkgreen"><b> PATH=.;%JAVA_HOME%\bin;;%ANT_HOME%\bin;</b></code> - (usually inserted at the beginning of an existing PATH, if it already exists) - </li> - <li>Test what version of Java is installed for your operating system via a console command line. Example: - - <pre> -<b>$ java -version</b> - -java version "1.8.0_212" -Java(TM) SE Runtime Environment (build 1.8.0_212-b10) -Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode) -</pre> - </li> - <li> - <!-- - <a href="http://docs.oracle.com/javase/6/docs/api">Java 6 Javadoc</a> - <a href="http://docs.oracle.com/javase/7/docs/api">Java 7 Javadoc</a> - or - --> - <a href="http://docs.oracle.com/javase/8/docs/api" target="_blank">Java 8 Javadoc</a> - is available on the - <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">Java downloads</a> page. - Extract the <code style="color:darkgreen"><b>docs</b></code> directory tree provided by the .zip to the directory containing Java. - </li> - <li> - <a href="http://www.oracle.com/technetwork/java/javase/documentation/index-jsp-135444.html">Javadoc Tool</a> - page provides guidance on how to write correct, effective Java document. - </li> - <li> - You can also visit the - <a href="http://www.java.com/en/download/installed.jsp" target="_blank">Verify Java Version</a> - page, which detects which version of Java is installed in your Web browser. - This may be a different version (for example, JRE version 1.7.*) without interfering with the command-line PATH version. - </li> - <li> - If desired, developers can choose among multiple Java platforms in NetBeans - via the menu Tools > Java Platforms. However, in practice, we have - found it best to only install a single version of Java on each machine. - </li> - <li> - <a href="http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html">Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8 Download</a> - is needed for various builds - (link also found at bottom of JavaSE downloads page). - <ul> - <li> Extract the contents (including README.txt) for inclusion in the JDK development build, for example - <br /> - <code style="color:darkgreen"><b>C:\Program Files\Java\jdk1.8.0_192\jre\lib\security</b></code></li> - <li> - <a href="http://download.oracle.com/javase/8/docs/technotes/guides/security">Java(TM) Cryptography Architecture (JCA) Reference Guide</a> - </li> - <li> - <a href="http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136007.html">Java SE Security</a> - has more information about JCE and the Java SE Security Model. - </li> - </ul> - </li> - <li>Style guides - <ul> - <li> - <a href="http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html">Code Conventions for the Java Programming Language</a>). - (April 1999) - </li> - <li> - <a href="http://google-styleguide.googlecode.com/svn/trunk/javaguide.html">Google Java Style Guide</a> - for source code - (<a href="http://www.javaworld.com/article/2102551/java-language/googles-java-coding-standards.html">press review</a>). - </li> - </ul> - </li> - <li> - Applet security: to run a Java applet in a Web browser, you may need to add this site to your - <a href=" http://www.web3d.org/x3d/content/examples/images/JavaControlPanelSecurityExceptionSiteList.png">Java Control Panel Security Exception Site List</a> - (<a href="https://www.java.com/en/download/exception_sitelist.jsp">documentation</a>). - </li> - </ul> - - <!-- =========================================================== --> - - <h2> <a name="JavaScript">JavaScript</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - JavaScript is a common programming language used in Web browsers for HTML and X3D scripts. - n.b. JavaScript is not the same as Java, they are different programming languages. - </p> - - <ul> - <li> - <a href="https://savage.nps.edu/mcgredo/javascriptTest.html">JavaScript test</a> - to check if JavaScript is working in a Web browser. - </li> - <li> - <a href="http://get.webgl.org">WebGl test</a> - to check if JavaScript WebGl is working in a Web browser. - </li> - <li> - <a href="http://www.web3d.org/specifications/Ecma-262.pdf">ECMAScript-262 specification</a> - defines JavaScript functionality. - </li> - <li> - <a href="http://kangax.github.io/nfe/">Named function expressions demystified</a> - by Juriy "kangax" Zaytsev. - </li> - <li> - <a href="http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml">Google JavaScript Style Guide</a> - </li> - </ul> - - <!-- =========================================================== --> - - <h2> <a name="Jenkins">Jenkins</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - The - Savage Jenkins Build Servers - are online continuous-integration servers that are used to test open-source code and content distributions. - They automatically check out versioned projects and perform a variety of custom build tasks. - This is an excellent capability that complements individual programmer efforts to support agile, effective team development. - </p> - <p> - Configuration setup for our jenkins servers includes installation of ant-contrib - as described in the <a href="#Ant">Ant</a> section. - </p> - - <ul> - <li> - <a href="https://savage.nps.edu/jenkins/">Savage Jenkins Server</a> - </li> - <li> - <a href="https://mmog.ern.nps.edu/jenkins/">Savage MMOG Jenkins Server</a> (NPS intranet access) - </li> - <li> - <a href="https://SavageDefense.nps.navy.mil/jenkins/" title="restricted access" alt="restricted access">SavageDefense Jenkins Server</a> (restricted FOUO access) - </li> - <li> - <a href="https://savage.nps.edu/Savage/chat.html">Savage chat room</a> for build reports: - Jabber ID (JID) - <a href="xmpp://jenkins@conference.savage.nps.edu?join">xmpp://jenkins@conference.savage.nps.edu</a> - </li> - <li> - <a href="mailto:mcgredo@nps.edu(Don%20McGregor),brutzman@nps.edu(Don%20Brutzman)?subject=Savage%20jenkins%20account%20request">Requesting a Savage jenkins account</a> - </li> - <li> - Report a - <a href="https://www.movesinstitute.org/bugzilla/enter_bug.cgi?product=XMSF;component=Jenkins">bug</a> - with one of our local jenkins servers - </li> - <li> - Guests are now allowed to view build and workspace results - </li> - </ul> - <p> - Helpful external references: - </p> - <ul> - <li> - <a href="http://jenkins-ci.org">Jenkins website</a> - and - <a href="https://wiki.jenkins-ci.org/">Jenkins wiki</a> - </li> - <li> - <a href="https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins">Meet Jenkins</a> - and - <a href="https://wiki.jenkins-ci.org/display/JENKINS/Use+Jenkins">Use Jenkins</a> - </li> - <li> - <a href="http://hudson-ci.org">Hudson website</a> - and - <a href="http://wiki.hudson-ci.org">Hudson wiki</a> - </li> - <li> - <a href="http://wiki.hudson-ci.org/display/HUDSON/Meet+Hudson">Meet Hudson</a> - and - <a href="http://wiki.hudson-ci.org/display/HUDSON/Hudson+Best+Practices">Hudson Best Practices</a> - </li> - <li> - Sun whitepaper - <a href="http://blogs.sun.com/ontherecord/entry/new_whitepaper_developing_software_collaboratively">Developing Software Collaboratively with Hudson</a> - (<a href="https://www.sun.com/offers/details/hudson.xml">.pdf</a>) - </li> - </ul> - - <!-- =========================================================== --> - - <h2> <a name="Licensing">Licensing</a> and IPR Issues - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - Wherever possible our group utilizes both - <a href="http://en.wikipedia.org/wiki/Open_standards">open standards</a> and - <a href="http://en.wikipedia.org/wiki/Open_source">open source</a> licensing. - </p> - - <p> - Motivation: as a government-funded university, it is important that our work be published publicly and made available freely. - As researchers working with military students and worldwide communities of interest, we are striving to maximize the - interoperability and 3D visualization capabilities of data streams used for situational awareness. - Our strategy to accomplish these goals is the development, testing, adoption and evaluation of Web standards. - </p> - - <p> - It is always important to observe Intellectual Property Rights (IPR) requirements. - Because of our involvement in multiple groups developing open standards and open source, - it is important that our work remains "untainted" and unexposed to software that may contain patent encumbrances. - We do not want to jeopardize any of the standards or codebases that we work on. - </p> - - <p> - In particular, we don't like to use tools with the following characteristics: - </p> - <ul> - <li> - Closed or proprietary standards for data or networking - </li> - <li> - Unsupported by (or inconsistent with requirements of) Navy or Department of Defense (DoD) - </li> - <li> - Requires lockin of some sort, e.g. single operating system or proprietary software - </li> - </ul> - - <p> - Rationale for success: - </p> - <ul> - <li> - Stay close to what operational military users can work with, - thus best supporting our students while at NPS and after they graduate - </li> - <li> - "Walk the walk" in terms of making open standards work together properly - </li> - <li> - Gain experience that enables us to make informed recommendations about - how Navy/DoD can best deploy open standards for broad interoperability - </li> - </ul> - - <p> - <a name="license">Resources:</a> - </p> - <ul> - <li> - <a href="license.html">Savage open-source license</a> - (<a href="license.txt">text version</a>) - is non-viral and business friendly. This approach encourages industry to adopt open standards by - offering our code and content for reuse without impediment. - </li> - <li> - <a href="http://creativecommons.org">Creative Commons</a> is another important source for licenses. - </li> - <li> - <a href="http://oreilly.com/catalog/9780596005818">Understanding Open Source and Free Software Licensing</a> - by - Andrew M. St. Laurent, - O'Reilly Media, - Sebastopol California, 2004. - Also - <a href="http://oreilly.com/openbook/osfreesoft/book">available online</a>. - </li> - <li> - <a href="http://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#license">X3D Scene Authoring Hints: License</a> - provides further rationale on licenses for X3D scenes. - </li> - </ul> - - <p> - <a name="OTD"><b>Open Technology Development (OTD)</b></a> - describes accepted best practices for open source and open standards, - emphasizing business cases for government agencies, - and providing excellent rationales and detailed guidance. - </p> - <ul> - <li> - J.C. Herz, Mark Lucas and John Scott, - <a href="http://www.acq.osd.mil/jctd/articles/OTDRoadmapFinal.pdf" target="_blank">Open Technology Development (OTD) Roadmap</a>, - Office of the Secretary of Defense, Advanced Systems and Concepts, 2006. - </li> - <li> - John Scott, David A. Wheeler, Mark Lucas, and J.C. Herz, - <a href="http://mil-oss.org/resources/books/open-technology-development" target="_blank">Open Technology Development: Lessons Learned & Best Practices for Military Software</a>, - 16 May 2011. - </li> - <li> - Perlroth, Nichole, - <a href="http://www.nytimes.com/2014/04/19/technology/heartbleed-highlights-a-contradiction-in-the-web.html" target="_blank">Heartbleed Highlights a Contradiction in the Web</a>," - New York Times, 19 April 2014. "Companies using open software are doing little to support it." - </li> - </ul> - - <p> - Contributors who wish to provide code or content for any of the archives we maintain can either use the - <a href="license.html">Savage open-source license</a> - or else another open-source license of their choice. - In this way, these public archives remain freely reusable. - </p> - - <!-- =========================================================== --> - - <h2> <a name="Media">Media</a> and Content - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - 3D graphics modeling and Web media benefit from using open-source content. The - <a href="X3dSceneAuthoringHints.html" title="go to this page" alt="go to this page">X3D Scene Authoring Hints</a> - contain detailed tips and guidelines for creating Web content. - Here are some additional useful resources. - </p> - - <h4> <a name="3D">3D</a> Models </h4> - <ul> - <li> - <a href="https://Savage.nps.edu">Savage</a> - and - <a href="https://SavageDefense.nps.navy.mil/developers.html" title="restricted access" alt="restricted access">SavageDefense</a> - model archives - </li> - <li> - <a href="http://www.web3d.org/x3d/content/examples/X3dResources.html#Examples">X3D Resources: Examples</a> - </li> - </ul> - - <h4> <a name="Audio">Audio</a> </h4> - <ul> - <li> - The NPS Savage Group has limited local rights to publish and use - <a href="SoundEffects/SavageSoundReadme.html">sound effects files</a> - from - <a href="http://www.hollywoodedge.com">The Hollywood Edge</a> - library. - </li> - </ul> - - <h4> <a name="Imagery">Imagery</a> </h4> - <ul> - <li> - <a href="http://defenseimagery.mil/products.html">Defense Imagery</a> - (including <a href="http://defenseimagery.mil/products/dodimagery.html">guidelines</a>) - </li> - <li> - <a href="http://commons.wikimedia.org/wiki/Nautical_Signal_Flags">Nautical Signal Flags</a> - </li> - </ul> - - <h4> <a name="Video">Video</a> </h4> - <ul> - <li> - <a href="https://savage.nps.edu/videos">Savage videos</a> - </li> - <li> - <a href="http://defenseimagery.mil/products.html">Defense Imagery</a> - (including <a href="http://defenseimagery.mil/products/dodimagery.html">guidelines</a>) - </li> - <li> - <a href="http://www.dvidshub.net">Defense Video and Imagery Distribution System (DVIDS)</a> - </li> - <li> - <a href="http://www.web3d.org/x3d/content/examples/X3dResources.html#Video">X3D Resources: Video</a> - </li> - </ul> - - <!-- =========================================================== --> - - <h2> <a name="MySQL">MySQL</a> Database Support - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - NetBeans has excellent support for MySQL databases. - The NetBeans help page "Using MySQL with the IDE" is a quick reference. - Other resources include: - </p> - - <ul> - <li> - NetBeans help page "Using MySQL with the IDE" - is a helpful quick reference - </li> - <li> - <a href="http://netbeans.org/kb/articles/mysql.html">MySQL and NetBeans IDE</a> - includes two screencast videos: - <ul> - <li> - Getting Started with Database-Driven Applications using MySQL - </li> - <li> - Database Support Improvements in NetBeans IDE - </li> - </ul> - </li> - - <li> - <a href="http://netbeans.org/kb/docs/ide/mysql.html">Connecting to a MySQL Database</a> - </li> - <li> - <a href="http://netbeans.org/kb/docs/web/mysql-webapp.html">Creating a Simple Web Application Using a MySQL Database</a> - </li> - <li> - <a href="http://netbeans.org/kb/docs/websvc/rest-mysql.html">Exposing a MySQL Database with RESTful Web Services</a> - </li> - </ul> - <p> - Additional resources: - </p> - <ul> - <li> - <a href="http://www.mysql.com">MySQL.com</a> - and - <a href="http://www.mysql.com/downloads/workbench/">MySQL Workbench</a> (GUI tool) - </li> - <li> - <a href="http://www.sequelpro.com">SequelPro</a> - database management application (Macintosh) - </li> - </ul> - - <p> - A <b>secure shell (ssh) tunnel</b> makes it possible to create a local connection to a remote database on another server. - </p> - <!-- Credit goes to Don McGregor with an assist from Kirk Stork --> - <blockquote> -This makes a port on your local -host appear as if it is a port on the remote host. -In reality, the traffic -is first going into the port on the local host, then going across an encrypted -link to <code style="color:darkgreen"><b>RemoteHost.nps.edu</b></code>, then being decrypted on the other side, and -then sent to the MySQL port on <code style="color:darkgreen"><b>RemoteHost</b></code>. Finally the ssh tunnel returns the data -response from the database to the port on your local host. - -This technique is secure because it lets us avoid having to -unblock the firewall to open the MySQL port on the remote host. -It also ensures that all the passwords and data sent across the network -are encrypted. If you are connecting to an NPS database server, you will first -need to be connected to the NPS intranet. - </blockquote> - - <blockquote> - <table border="1" cellpadding="5"> - <tbody> - <tr> - <td colspan="2" align="center"> - <code style="color:darkgreen"><b> - ssh -N username@RemoteHost.nps.edu -L 3307:localhost:3306 - </b></code> - </td> - </tr> - <tr> - <td align="right"><code style="color:darkgreen"><b>ssh</b></code></td> - <td> - Unix command for secure shell. - <code style="color:darkgreen"><b>ssh</b></code> support under Windows can be found as part of the - <a href="#Cygwin">Cygwin tools</a>. - </td> - </tr> - <tr> - <td align="right"><code style="color:darkgreen"><b>-N</b></code></td> - <td>Don't run any commands on the mmowgli host. Optional but nice.</td> - </tr> - <tr> - <td align="right"><code style="color:darkgreen"><b>username@RemoteHost.nps.edu</b></code></td> - <td>your ssh login account on the remote host</td> - </tr> - <tr> - <td align="right"><code style="color:darkgreen"><b>-L</b></code></td> - <td>Set up a tunnel</td> - </tr> - <tr> - <td align="right"> <code style="color:darkgreen"><b>3307:localhost:3306</b></code></td> - <td> - Set up a port on your system, 3307, that goes to the - MySQL port, 3306, on the remote host. - <br /> - We use 3307 in this case - because there's often a development MySQL server running on - <br /> - your system that's already using 3306. - </td> - </tr> - </tbody> - </table> - - <p> - This technique is also helpful for locally listening to a Tomcat server port. For example: - </p> - <blockquote> - <code style="color:darkgreen"><b>ssh -N username -L 8080:tomcatServer.nps.edu:8181</b></code> - </blockquote> - <p> - lets you monitor remote <code style="color:darkgreen"><b>tomcatServer</b></code> response via your web browser at - </p> - <blockquote> - <code style="color:darkgreen"><b>http://localhost:8080</b></code> - </blockquote> - - <p> - Further <code style="color:darkgreen"><b>ssh</b></code> details are available using the Unix help manual page, - <a href="http://openssh.com/manual.html"><code style="color:darkgreen"><b>man ssh</b></code></a>. - </p> - </blockquote> - - <!-- =========================================================== --> - - <h2> <a name="Netbeans"></a><a name="NetBeans">NetBeans</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - <a href="http://www.netbeans.org" target="_blank">NetBeans</a> - is the Integrated Development Environment (IDE) used for most Savage project development. - </p> - - <p> - Free book: - <a href="http://netbeans.dzone.com/articles/free-oracle-book-developing" target="_blank">Developing Applications with NetBeans IDE 8.0</a> - (<a href="http://docs.oracle.com/cd/E50453_01/doc.80/e50452/toc.htm">.html</a> - and - <a href="http://docs.oracle.com/cd/E50453_01/doc.80/e50452.pdf">.pdf</a>) - </p> - - <p> - Once installed, recommended configuration settings and - suggested modules include the following: - </p> - <ul> - <li> - First-time use of Subversion under Windows can yield a - <a href="images/NetbeansSubversionClientWindows.png">warning dialog</a>, - click to accept installation of plugin - </li> - <li> - <a href="http://docs.oracle.com/cd/E50453_01/index.htm" target="_blank">Netbeans documentation</a> - and - <a href="http://docs.oracle.com/javase/8/docs" target="_blank">Java documentation</a> - are helpful. - Be sure to download Javadoc for Java from the - <a href="http://www.oracle.com/technetwork/java/javase/downloads">Java downloads</a> page. - Extract the <code style="color:darkgreen"><b>docs</b></code> directory tree provided by the .zip to the directory containing Java. - Then select the Netbeans menu for <i>Tools > Java Platform</i> and - add the local directory under the Javadoc tab. For good measure you can also add the online Java Javadoc url at - <a href="http://docs.oracle.com/javase/8/docs/api" target="_blank">http://docs.oracle.com/javase/8/docs/api</a> - there as well. - <p> - Javadoc location is configured under <i>Tools > Java Platform > select platform (JDK 1.8)</i> subtab - </p> - </li> - <li> - If upgrading Java without re-installing Netbeans, you may need to - <a href="http://stackoverflow.com/questions/2809366/changing-the-version-on-which-netbeans-runs">modify Netbeans version of Java platform</a> - by editing - <code style="color:darkgreen"><b>netbeans.conf</b></code> - in the program-installation directory, such as - <br /> - <code style="color:darkgreen"><b>C:\Program Files\NetBeans 8.2\etc\netbeans.conf</b></code> (default user settings) - <br /> - or, for older versions of Netbeans, - <br /> - <code style="color:darkgreen"><b>C:\Users\<b>MyName</b>\AppData\Roaming\NetBeans\8.0.2\etc\netbeans.conf</b></code> - - <br /> - Modify original settings to also include: - <br /> - <b><code>netbeans_default_options</code></b>="<b><code>-J-server</code> <code>-J-Xmx2g</code> <code>-J-XX:PermSize=32m</code></b>" - <br /> - (for details, see <a href="http://wiki.netbeans.org/FaqSettingHeapSize">Netbeans FaqSettingHeapSize</a>) - </li> - <li> - <a href="http://plugins.netbeans.org/PluginPortal">NetBeans Plugin Portal</a> - has many useful additions for Netbeans - </li> - <li> - <a href="http://netbeans.dzone.com">DZone NetBeans Zone</a> - has interesting news and resources, including - <a href="http://refcardz.dzone.com/refcardz/netbeans-ide-7-programming">refcard: Netbeans IDE 7.0 - Programming in Java</a> - and - <a href="http://refcardz.dzone.com/refcardz/netbeans-platform-70">refcard: NetBeans Platform 7.0 Framework for Building Pluggable Enterprise Applications </a>. - </li> - <!-- - <li> - (TODO verify latest, update if needed) Add - <a href="http://updates.netbeans.org/netbeans/updates/6.9/uc/m1/dev/catalog.xml">NetBeans Development</a> - Update Center to Plugins, then - <i>XML Schema and WSDL</i> plugin - </li> - --> - <li> - <a href="https://savage.nps.edu/X3D-Edit/#Downloads">Install X3D-Edit</a> (which includes KML support) as plugin modules - </li> - <li> - If X3D-Edit plugin is not installed, select - <br /> - <i>Tools > Options > Miscellaneous > Files:</i> add new file type <code style="color:darkgreen"><b>x3d</b></code> with value <code style="color:darkgreen"><b>XML Files (text/xml)</b></code> to support X3D scene validation - </li> - <li> - <i>Tools > Options > Miscellaneous > Files:</i> add new file type <code style="color:darkgreen"><b>sch</b></code> with value <code style="color:darkgreen"><b>XML Files (text/xml)</b></code> to support Schematron rule-set validation - </li> - <li> - <i>Tools > Options > Miscellaneous > Ant:</i> - set directory for <a href="#Ant">local version of Ant installation</a>, - unset Reuse Output Tabs, - set Save All Modified Files, - set Always Show Output - </li> - <li> - <i>Tools > Plugins > Settings:</i> - set update interval to <i>Every Startup</i> - </li> - </ul> - - <p> - <a name="NetBeansWindows64">Netbeans Windows 64-bit</a> configuration for latest Java: - </p> - <ul> - <li> - <a href="#java">Download</a> and install 64-bit Java - </li> - <li> - Add the new java installation in Netbeans via - <i>Tools, Java Platforms</i> menu - </li> - <li> - Set the new java version in each Project Properties - </li> - <li> - Update - <br /> - <code style="color:darkgreen"><b>C:\Program Files\NetBeans 8.2\etc\netbeans.conf</b></code> - <br /> - or - <br /> - <code style="color:darkgreen"><b>%USERPROFILE%\<AppData>\<i>Local</i> (or <i>Roaming</i>)\NetBeans\8.2\etc\netbeans.conf</b></code> - <br /> - by changing - <pre> -netbeans_jdkhome="C:\Program Files (x86)\Java\jdk1.8.0_192"</pre> - to remove the <b>(x86)</b> as follows: - <pre> -netbeans_jdkhome="C:\Program Files\Java\jdk1.8.0_192"</pre> - <p> - Similarly Java Platform settings can be edited in - <br /> - <code style="color:darkgreen"><b>%USERPROFILE%\<AppData>\<i>Roaming</i>\NetBeans\8.2\config\Services\Platforms\org-netbeans-api-java-Platform\JDK_1.8.xml</b></code> - </p> - </li> - <li> - Errors and exceptions are recorded in - <br /> - <code style="color:darkgreen"><b>%USERPROFILE%\<AppData>\<i>Local</i> or <i>Roaming</i>\NetBeans\8.2\var\log\messages.log</b></code> - </li> - <li> - Consider changing - <br /> - <code style="color:darkgreen"><b>netbeans_default_options="-J-client</b></code> - etc. - <br /> - to - <br /> - <code style="color:darkgreen"><b>netbeans_default_options="-J-server</b></code> - etc. - <br/> - in order to allow the JIT compiler to perform more aggressive optimizations on highly repeated code blocks. - </li> - - </ul> - - <p> - Other useful information: - </p> - - <ul> - <li> - <a href="https://stackoverflow.com/questions/23651486/netbeans-ide-scaling-on-windows-8-10">NetBeans IDE scaling on Windows 8/10</a>: - Change parameter in - <code style="color:darkgreen"><b>netbeans.conf</b></code> file (shown above): - <br /> - <code>-J-Dsun.java2d.dpiaware=true</code> - to - <code>-J-Dsun.java2d.dpiaware=false</code> - </li> - <li> - <i>Window > Debugging > Sources > (Right Click) Add Source Root</i> - <br/> - For example: <code style="color:darkgreen"><b>Xj3D Source</b></code> > <code style="color:darkgreen"><b>src/java</b></code> - </li> - <li> - <a href="http://rubenlaguna.com/wp/2008/02/22/attach-source-code-to-a-netbeans-library-wrapper-module">Attach source code to a NetBeans Library Wrapper Module</a> - </li> - </ul> - <!-- =========================================================== --> - - <h2> <a name="Projects">Projects</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - The Savage group maintains a large number of open-source projects. - </p> - - <ul> - <li> - <a href="https://savage.nps.edu/AuvWorkbench">Autonomous Unmanned Vehicle (AUV) Workbench</a> - and - <a href="https://savage.nps.edu/Savage/AuvWorkbench/AVCL/AVCL.html">Autonomous Vehicle Control Language (AVCL)</a> - </li> - <li> - TODO: AUVW mission archives - </li> - <li> - <a href="https://savage.nps.edu/X3D-Edit/#Open-DIS">Open DIS</a> - implementation of the - <a href="http://en.wikipedia.org/wiki/Distributed_Interactive_Simulation">IEEE Distributed Interactive Simulation (DIS) protocol</a> - in Java, Javascript, C++, C# and Objective C - (<a href="https://savage.nps.edu/X3D-Edit/Open-DIS-flyer.pdf">flyer</a>) - </li> - <li> - <a href="https://savage.nps.edu/Savage/Tools/SMAL/SMAL.html">SAVAGE Modeling and Analysis Language (SMAL)</a> - </li> - <li> - <a href="https://savage.nps.edu/svn/repos/nps/list/TrackDataConversionSuite">Track Data Conversion Suite</a> - and - <a href="https://savagedefense.nps.navy.mil/svn/repos/nps/list/TrackDataConversionSuiteDefense/trunk" title="restricted access" alt="restricted access">Track Data Conversion Suite Defense</a> - (FOUO access) - </li> - </ul> - - <p> - Extensible 3D (X3D) Graphics projects include the following: - </p> - - <ul> - <li> - <a href="http://www.web3d.org/x3d/content/examples/X3dResources.html#AuthoringSupport" target="_blank">X3D Authoring Support</a> - lists a variety of resources - </li> - <li> - <a href="http://x3d.svn.sourceforge.net/viewvc/x3d/www.web3d.org/x3d/tools/canonical" target="_blank">X3D Canonicalization (C14N)</a> - for normalized formatting and authentication support - </li> - <li> - <a href="http://www.web3d.org/specifications">X3D DTD and Schema Validation</a> - to ensure XML document validity - (<a href="http://x3d.svn.sourceforge.net/viewvc/x3d/www.web3d.org/x3d/tools/canonical" target="_blank">subversion source</a>). - <ul> - <li> - <a href="images/X3dDtdDocumentationGenerationNetbeans.png">NetBeans DOCTYPE documentation generation</a> - is used to produce - <a href="http://www.web3d.org/specifications/X3dDoctypeDocumentation3.2.html">X3D DOCTYPE documentation</a> - </li> - <li> - <a href="images/X3dSchemaDocumentationGenerationXmlspy.png">XML Spy schema documentation generation</a> - is used to produce - <a href="http://www.web3d.org/specifications/X3dSchemaDocumentation3.2/x3d-3.2.html">X3D Schema documentation</a> - </li> - </ul> - </li> - <li> - <a href="https://savage.nps.edu/X3D-Edit">X3D-Edit</a> - is an open-source authoring tool for simple error-free editing, authoring and validation of X3D scenes - </li> - <li> - <a href="http://www.web3d.org/x3d/content/examples/X3dResources.html#Examples">X3D Example Archives</a> - (includes - <a href="http://www.web3d.org/x3d/content/examples/X3dResources.html#Examples">links</a> - to version-control sources and other details) - <ul> - <li> - <a href="http://x3d.svn.sourceforge.net/viewvc/x3d/www.web3d.org/x3d/tools/CreateContentCatalog" target="_blank">Content Catalog Creation source</a> - uses metadata in the X3D model documents themselves to automatically build all the HTML pages - </li> - <li> - <a href="http://www.web3d.org/x3d/content/examples/Basic" target="_blank">Basic</a> examples - </li> - <li> - <a href="http://www.web3d.org/x3d/content/examples/ConformanceNist" target="_blank">ConformanceNist</a> examples - </li> - <li> - <a href="http://www.web3d.org/x3d/content/examples/Vrml2.0Sourcebook" target="_blank">VRML 2.0 Sourcebook</a> examples - </li> - <li> - <a href="https://savage.nps.edu/Savage" target="_blank">Savage</a> examples - </li> - <li> - <a href="https://SavageDefense.nps.navy.mil/SavageDefense" target="_blank" title="restricted access" alt="restricted access">SavageDefense</a> examples - have restricted access, - For Official Use Only (FOUO) - </li> - <li> - <a href="http://x3dgraphics.com/examples/X3dForWebAuthors" target="_blank">X3dForWebAuthors</a> examples - </li> - </ul> - </li> - <li> - <a href="http://www.web3d.org/x3d/tools/schematron/X3dSchematron.html" target="_blank">X3D Schematron</a> - rules for quality assurance of X3D scenes - (<a href="http://x3d.svn.sourceforge.net/viewvc/x3d/www.web3d.org/x3d/tools/schematron" target="_blank">subversion source</a>) - </li> - <li> - <a href="http://www.web3d.org/x3d/content/examples/X3dResources.html#Showcase" target="_blank">X3D Showcase</a> - a data DVD of X3D players, authoring tools and content - </li> - <li> - <a href="http://www.web3d.org/x3d/content/examples/X3dResources.html#Tooltips">X3D Tooltips</a> - provide hints for each node and field in X3D - (<a href="http://x3d.svn.sourceforge.net/viewvc/x3d/www.web3d.org/x3d/tooltips" target="_blank">subversion source</a>) - </li> - <li> - <a href="#Xj3D"> Xj3D viewer - NPS Branch</a> - includes NPS branch modifications to the Xj3D source - </li> - </ul> - - <!-- =========================================================== --> - - <h2> <a name="Security">Security</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - The NPS MOVES team maintains multiple servers. - We typically use secure <code style="color:darkgreen"><b>http<b>s</b>://</b></code> - rather than <code style="color:darkgreen"><b>http://</b></code> - for improved confidentiality between clients and servers. - </p> - - <p> - Note that https certificate details can be used for confirmation of site identity: - </p> - <ul> - <li> - <a href="images/SavageHttpsCertificate.png">Savage.nps.edu https certificate</a> - </li> - <li> - <a href="images/MmowgliHttpsCertificate.png">SavageDefense.nps.navy.mil https certificate</a> - now matches the - <br /> - <a href="images/MmowgliHttpsCertificate.png">mmowgli.nps.navy.mil https certificate</a> - </li> - <li> - <a href="images/MovesInstituteHttpsCertificate.png">movesInstitute.org https certificate</a> - </li> - <li> - <a href="images/X3d-earthHttpsCertificate.png">x3d-earth.nps.edu https certificate</a> - </li> - <li> - <a href="images/MmogHttpsCertificate.png">mmog.ern.nps.edu https certificate</a> (NPS intranet access only) - </li> - <li> - <a href="images/EosHttpsCertificate.png">eos.nps.edu https certificate</a> (Simkit, Viskit) - </li> - </ul> - - <p> - ssh/sftp public keys can be used for informal verification of site identity: - </p> - <ul> - <li> - <a href="images/Savage.SshSftpPublicKey.png">Savage.nps.edu https certificate</a> - </li> - <li> - Savage.nps.edu ssh/sftp RSA public key fingerprint is - <br /> - <code style="color:darkgreen"><b>d8:d2:77:4d:52:7c:75:65:21:e7:99:da:28:50:d9:7b</b></code> - - </li> - </ul> - - <p> - Browser companies still have not deployed DoD Certificate Authority (CA) links - (apparently because they want the government to pay them to do so). - Thus end users have to manually confirm each of the above certificates when first accessing these servers. - </p> - <p> - Nevertheless you can - <a href="http://dodpki.c3pki.chamb.disa.mil/rootca.html">install DOD CA certificates</a> locally - (as shown in this - <a href="images/DownloadingDodCertificatePermissionsFirefox.png">Firefox dialog</a> - or, with some difficulty, - <a href="images/DownloadingDodCertificatePermissionsInternetExplorer.png">Internet Explorer dialog</a>). - </p> - <p> - If server keys are changed, you may need to clear previously cached values. - Cached certificate values can be found in directory <code style="color:darkgreen"><b>~/.ssh/known_hosts</b></code> - or else invoke <code style="color:darkgreen"><b>man ssh</b></code> for further details. - </p> - - - <!-- =========================================================== --> - - <h2> <a name="Servers">Servers</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - The NPS MOVES Savage team maintains multiple servers. - Issue tracking is maintained at - <a href="https://www.movesinstitute.org/bugzilla">https://www.movesinstitute.org/bugzilla</a> - </p> - - <ul> - <li> - <a href="https://savage.nps.edu/Savage">https://savage.nps.edu/Savage</a> - X3D Archive - (<a href="https://mmog.ern.nps.edu/awstats/awstats.pl?config=savage.nps.edu" target="_blank">usage statistics</a>) - </li> - <li> - <a href="https://SavageDefense.nps.navy.mil/SavageDefense" title="restricted access" alt="restricted access">https://SavageDefense.nps.navy.mil/SavageDefense</a> - X3D Archive - has restricted access, - For Official Use Only (FOUO) - (<a href="https://mmog.ern.nps.edu/awstats/awstats.pl?config=SavageDefense.nps.navy.mil" target="_blank" title="restricted access" alt="restricted access">usage statistics</a>) - </li> - <li> - <a href="https://www.movesinstitute.org">https://www.movesinstitute.org</a> - Modeling, Virtual Environments and Simulation (MOVES) Institute - (<a href="https://mmog.ern.nps.edu/awstats/awstats.pl?config=movesinstitute.org" target="_blank">usage statistics</a>) - </li> - <li> - <a href="http://mmowgli.nps.edu">http://mmowgli.nps.edu</a> - Massive Multiplayer Online Wargame Leveraging the Internet (MMOWGLI) - <!-- Akamai-zed - (<a href="https://mmog.ern.nps.edu/awstats/awstats.pl?config=mmowgli.nps.edu" target="_blank">usage statistics</a>) - --> - </li> - <li> - <a href="http://mmowgli.nps.edu">http://web.mmowgli.nps.edu</a> image server - (<a href="https://mmog.ern.nps.edu/awstats/awstats.pl?config=web.mmowgli.nps.edu" target="_blank">usage statistics</a>) - </li> - <!-- TODO also usage stats for test.mmowgli.nps.edu and portal.mmowgli.nps.edu --> - <li> - <a href="http://oam.nps.edu">http://oam.nps.edu</a> - Open Aerial Map (OAM) - <!-- - (<a href="https://mmog.ern.nps.edu/awstats/awstats.pl?config=oam.nps.edu" target="_blank">usage statistics</a>) - --> - </li> - <li> - <a href="https://x3d-earth.nps.edu">https://x3d-earth.nps.edu</a> X3D Earth server - <!-- - (<a href="https://mmog.ern.nps.edu/awstats/awstats.pl?config=x3d-earth.nps.edu" target="_blank">usage statistics</a>) - --> - </li> - <li> - <a href="https://savage.nps.edu/manager/html">https://savage.nps.edu/manager/html</a> - Tomcat manager (used by - <a href="https://savage.nps.edu/X3dValidator">X3D Validator</a> - and other tools) - (TODO restrict to NPS intranet access?) - </li> - <li> - <a href="https://mmog.ern.nps.edu">https://mmog.ern.nps.edu</a> - (<a href="https://mmog.ern.nps.edu/awstats/awstats.pl?config=mmog.ern.nps.edu" target="_blank">usage statistics</a>) - (NPS intranet access) - </li> - <!-- TODO - <li> - <a href="https://mmowgli.nps.edu">https://mmowgli.nps.edu</a> CentOS Linux Tomcat cluster for high availability - </li> - --> - </ul> -<!-- - (<a href="https://savage.nps.edu/usage" target="_blank">usage statistics</a>) - (<a href="https://SavageDefense.nps.navy.mil/usage" target="_blank" title="restricted access" alt="restricted access">usage statistics</a>) - (<a href="https://www.movesinstitute.org/usage" target="_blank">usage statistics</a>) - (<a href="http://mmowgli.nps.edu/usage" target="_blank">usage statistics</a>) - (<a href="http://oam.nps.edu/usage" target="_blank">usage statistics</a>) - - - <p> - Usage statistics - are generated using - <a href="http://www.mrunix.net/webalizer">Webalizer</a> - with the - <a href="http://httpd.apache.org">Apache</a> - http server. - </p> ---> - <p> - Mailing lists and hypermail archives: - </p> - <ul> - <li> - <a href="https://www.movesinstitute.org/mailman/listinfo">MOVES Mailing Lists</a> - </li> - <li> - Trouble reports: - please contact <a href="mailto:mailman@www.movesinstitute.org?subject=mailman%20feedback%20">mailman@www.movesinstitute.org</a> - </li> - <li> - <a href="http://www.gnu.org/software/mailman">Mailman</a> - server software - (<a href="http://www.gnu.org/software/mailman/docs.html">documentation</a>, - <a href="http://www.gnu.org/software/mailman/faq.html">FAQ</a>, - <a href="http://wiki.list.org/display/COM/Home">wiki</a>) - </li> - </ul> - - <p> - Department of Defense Web Policy: - <a href="http://www.defense.gov/webmasters/policy/dod_web_policy_12071998_with_amendments_and_corrections.html">Web Site Administration Policies & Procedures</a> - </p> - - <p> - Additional information: - </p> - <ul> - <li> - <a href="mailto:mcgredo@nps.edu(Don%20McGregor),brutzman@nps.edu(Don%20Brutzman)?subject=Savage%20hserver%20help%20request">Savage server help request</a> - </li> - <li> - <a href="mailto:brutzman@nps.edu(Don%20Brutzman),mcgredo@nps.edu(Don%20McGregor),?subject=Savage.nps.edu%20password%20request">savage.nps.edu password request</a> - </li> - <li> - <a href="http://www.web3d.org/x3d/learn/mimetypes">Configuring a web server for X3D MIME types</a> - </li> - <li> - <a href="http://www.bram.us/2007/05/25/office-2007-mime-types-for-iis/">MIME types for Microsoft Office</a> - (also - <a href="http://technet.microsoft.com/en-us/library/ee309278%28office.12%29.aspx">here</a>) - </li> - </ul> - - <!-- =========================================================== --> - - <h2> <a name="Subversion">Subversion</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - Subversion is used for version control of Savage projects and files. - Support for subversion is built into NetBeans and X3D-Edit. - </p> - <p> - NPS subversion servers: - </p> - <ul> - <li> - <a href="https://savage.nps.edu/subversion.html">https://savage.nps.edu/subversion.html</a> - (with - <a href="https://savage.nps.edu/svn/repos/list">sventon browsing</a>) - has open access - </li> - <li> - <a href="https://SavageDefense.nps.navy.mil/subversion.html" title="restricted access" alt="restricted access">https://SavageDefense.nps.navy.mil/subversion.html</a> - (with - <a href="https://SavageDefense.nps.navy.mil/svn/repos/list" title="restricted access" alt="restricted access">sventon browsing</a>) - has restricted access, - For Official Use Only (FOUO) - </li> - <li> - The - <a href="#DES">Discrete Event Simulation (DES)</a> - section of this page includes information about subversion checkout for - Simkit, Viskit, Diskit, SavageStudio and the ViskitModels behavior libraries. - </li> - <li> - <a href="mailto:brutzman@nps.edu(Don%20Brutzman),mcgredo@nps.edu(Don%20McGregor),?subject=Savage%20password%20request">Savage password request</a> - </li> - <li> - <a href="https://www.movesinstitute.org/bugzilla">XMSF Issue Tracker</a> - for - <a href="https://www.movesinstitute.org/bugzilla/buglist.cgi?quicksearch=Savage">Savage bug reports</a> - and feature suggestions - </li> - </ul> - <p> - Student subversion for course work (NPS intranet access only): - </p> - - <ul> - <li> - <a href="https://mmog.ern.nps.edu/svn/mv3204/Mv3204Mv4205SubversionControl.pdf">MV3204, MV4205 Student Subversion Archive</a> directions - </li> - <li> - <a href="https://mmog.ern.nps.edu/svn/mv3204">https://mmog.ern.nps.edu/svn/mv3204</a> - </li> - <li> - <a href="https://mmog.ern.nps.edu/svn/mv4205">https://mmog.ern.nps.edu/svn/mv4205</a> - </li> - <li> - <a href="https://mmog.ern.nps.edu/svn/x3dPastStudents">https://mmog.ern.nps.edu/svn/x3dPastStudents</a> - </li> - </ul> - <p> - Tutorial and resource information includes: - </p> - - <ul> - <li> - <a href="https://www.movesinstitute.org/~mcgredo/primers/svn.ppt">Subversion primer</a> - by Don McGregor - </li> - <li> - <a href="http://subversion.apache.org">Apache Subversion</a> - community home, including - <a href="http://subversion.apache.org/docs">documentation</a> - </li> - <li> - <a href="http://svnbook.red-bean.com/">Version Control With Subversion</a> - is a complete manual for Subversion, in PDF and HTML formats - </li> - <li> - <a href="http://netbeans.org/kb/docs/ide/subversion.html">Guided Tour of Subversion with NetBeans</a> - </li> - <li> - <a href="http://www.tortoisesvn.net/downloads.html">TortoiseSVN client</a> - integrates with the file browsers - for Windows, OS X, and Linux - </li> - <li> - <a href="http://www.open.collab.net/downloads/subversion">Collabnet client</a> - works via command line - (<a href="http://help.collab.net/index.jsp?topic=/faq/editorcommandline.html">setting environment variable for command line</a>) - </li> - <li> - <a href="http://nedbatchelder.com/text/quicksvnbranch.html">Subversion branching quick start</a> - by Ned Batchelder - </li> - <li> - <a href="http://wiki.sventon.org">Sventon</a> - is our interface for Web-based subversion browsing - (<a href="http://wiki.sventon.org/index.php?n=Main.FAQ">FAQ</a>, - <a href="http://wiki.sventon.org">wiki</a>) - </li> - </ul> - - <p> - Some advanced subversion questions: - </p> - - <ul> - <li> - <i> - I checked in an HTML file, but when I view it in my web browser, - it shows up as source text rather than being rendered as a web page. - </i> - <br /> - This is probably the correct behavior for a file being retrieved - as source code from a version-control server. The - purpose of a version-control system is to give you a view of the - source code; it is not to present the visual content. If you want to see - rendered HTML, you should go to the regular website address for that page. - Developers often manage all this by keeping website content under subversion control, - then using sftp to place the source code into a directory on the Apache server - which serves the actual content. - <br /> - - </li> - <li> - <i> - How can I make a copy of the - source code without all of the internal ".svn" subdirectories that are used by - subversion for housekeeping? - </i> - <br /> - Use the subversion <b>export</b> command: - <code style="color:darkgreen"><b>svn export [RepositoryURL]</b></code> - <br /> - - </li> - <li> - <i> - I have checked out a project from subversion but cannot check changes back in. Why not? - </i> - <ul> - <li> - Ensure that you checked out the project with an authorized username. - If necessary, convince the project administrator that you deserve to get permissions as a project committer - (which is a serious responsibility). - </li> - <li> - If you checked out a project using http: protocol, you may need to <code>relocate</code> it using the https: protocol in order to meet security requirements for writing changes. - Use the subversion <b>relocate</b> command: - <code style="color:darkgreen"><b>svn help relocate</b></code> - </li> - </ul> - - </li> - <li> - <i> - How do I set up a new subversion server with Apache? - </i> - <br></br> - If you want to set up your own Subversion server, a how-to for doing - this with apache on Linux is on the - <a href="http://www.howtoforge.com/apache_subversion_repository">HowtoForge tutorial site</a>. - <br></br> - Most developers don't need to do this and simply use an already-existing version-control server. - </li> - </ul> - - <!-- =========================================================== --> - - <h2> <a name="Time">Time</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - Numerous simulations and network protocols depend on accurate time adjustment. - </p> - <ul> - <li> - NPS time servers for NTP are time.nps.edu matrix.nps.edu and matrix.nps.edu and stargate.nps.edu. - NPS generally disallows access to NTP servers off campus. - n.b. Subverting NTP servers is a popular element of attacks, because it affects the timestamp on logs. - - </li> - <li> - NPS wiki: - <a href="https://wiki.nps.edu/display/TAC/Time+server">Time server</a> - guidance (for Mac at least). - </li> - <li> - <a href="http://www.usno.navy.mil/USNO/time">U.S. Naval Observatory (USNO) Precise Time</a> - and - <a href="http://www.usno.navy.mil/USNO/time/ntp">Network Time Protocol (NTP)</a>. - </li> - <li> - <a href="http://www.ntp.org">Network Time Foundation (ntp.org)</a> - includes information about a variety of time-related protocols and also software downloads. - </li> - </ul> - - <!-- =========================================================== --> - - <h2> <a name="Tools">Tools</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - <a name="Altova">The</a> - <a href="http://www.altova.com">Altova XML tools</a> - (XMLSpy, Diffdog, etc.) - provide outstanding support for XML development. - </p> - <ul> - <li> - MOVES has a - <a href="mailto:brutzman%20at%20nps.edu%20(Don%20Brutzman)?subject=feedback:%20Altova%20developers%20license%20request">full developers license</a> - for academic use by students and staff. - </li> - <li> - XML Spy project files help organize large sets of XML documents - <ul> - <li> - <a href="http://www.web3d.org/specifications/X3dSchemaDtd-XmlSpyProject.spp">X3D schemas and DTDs</a> - </li> - <li> - Project catalogs for X3D example archives - are autogenerated as part of ContentCatalogCreation: - <br /> - <a href="http://www.web3d.org/x3d/content/examples/Basic/ContentCatalogBasic.spp" target="_blank">Basic</a>, - <a href="http://www.web3d.org/x3d/content/examples/ConformanceNist/ContentCatalogConformanceNist.spp" target="_blank">ConformanceNist</a>, - <a href="http://www.web3d.org/x3d/content/examples/Vrml2.0Sourcebook/ContentCatalogVrml2.0Sourcebook.spp" target="_blank">Vrml 2.0 Sourcebook</a>, - <a href="https://savage.nps.edu/Savage/ContentCatalogSavage.spp" target="_blank">Savage</a>, - <a href="https://SavageDefense.nps.navy.mil/SavageDefense/ContentCatalogSavageDefense.spp" target="_blank" title="restricted access" alt="restricted access">SavageDefense</a> (FOUO access) and - <a href="http://x3dgraphics.com/examples/X3dForWebAuthors/ContentCatalogX3dForWebAuthors.spp" target="_blank">X3dForWebAuthors</a> - </li> - </ul> - </li> - </ul> - - <p> - <a href="https://www.nps.edu/Technology/SoftwareLib/index.htm">NPS Downloadable Software</a> - and - <!-- TODO check and test iago url --> - <a href="\\iago\c$">NPS MOVES IAGO software archive</a> - (NPS access only, password protected) - provide a variety of locally licensed resources. - </p> - - <p> - <a name="telnet">The</a> - <a href="https://en.wikipedia.org/wiki/Telnet"></a><code>telnet</code> - protocol is widely used and provides a standard way of interfacing terminal-oriented devices and processes. - Given that security vulnerabilities may exist if used surreptitiously, - modern operating systems typically require specific configuration action to enable it. - </p> - <ul> - <li> - Authoritative reference: - <a href="https://tools.ietf.org/html/rfc854">RFC 854, TELNET PROTOCOL SPECIFICATION</a>, - default port 23. - </li> - <li> - System configuration changes typically require administrator permissions. - </li> - <li> - <em>Windows 7:</em> - <i>Control Panel > Turn Windows features on or off > - <a href="images/Windows7ControlPanelTelnetClientEnabled.png">Windows features</a></i> - <!-- https://kb.ctera.com/article/how-to-open-a-telnet-session-on-windows-7-or-windows-8-os-16.html --> - </li> - <li> - <em>Windows 10:</em> - <i>Settings > Turn Windows features on or off > - <a href="images/Windows10SettingsTelnetClientEnabled.png">Windows features</a></i> - </li> - <li> - <em>Cygwin:</em> - install the <a href="#inetutils">inetutils</a> package for - <code>ssh</code> and <code>telnet</code>. - (Of note is that <code>netcat</code> is also included in Cygwin, but is quickly scrubbed by NPS antivirus routines for Windows.) - </li> - <li> - <em>macOS:</em> - preferred tool is - <code>nc (netcat)</code> which is functionally equivalent to <code>ssh</code> - and can be invoked from inside a terminal process. - Many ad hoc tools also exist (with lesser security) such as - <a href="https://brew.sh" target="_blank">brew</a>. - </li> - </ul> - - <p> - The following additional tools are also useful. - </p> - - <ul> - <li> - <a href="#Cygwin">Cygwin</a> Unix for Windows provides command-line Unix commands on Windows systems - </li> - <li> - <a href="chat.html#Elluminate">Elluminate</a> - is a desktop-sharing system for meetings with remote participation - </li> - <li> - <a href="http://www.mozilla.com">Firefox</a> - Web browser and - <a href="http://www.mozillamessaging.com/en-US/thunderbird">Thunderbird</a> - email client - by Mozilla - </li> - <li> - <a href="http://www.gimp.org">GNU Image Manipulation Program (GIMP)</a> for image editing - </li> - <li> - <a href="http://www.htmlkit.com">HTML-Kit</a> advanced HTML editor by Chami - </li> - <li> - <a href="http://protege.stanford.edu">Protege</a> - ontology editor and knowledge-base framework for Semantic Web - </li> - <li> - <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html">Putty</a> - ssh and sftp - </li> - <li> - <a href="http://www.apple.com/quicktime/pro">Quicktime Pro</a> by Apple ($$) for simple movie editing - </li> - <li> - <a href="http://www.ultraedit.com">UltraEdit text editor</a> - and - <a href="http://www.ultracompare.com">UltraCompare file comparison</a> - </li> - <li> - <a href="http://windirstat.info">WinDirStat</a> is an open-source disk-usage statistics viewer and cleanup tool for Microsoft Windows. - </li> - <li> - <a href="http://winscp.net">WinSCP</a> is an open-source free SFTP, SCP and FTP client for Windows. - </li> - </ul> - - <!-- =========================================================== --> - - <h2> <a name="Wikis">Wiki sites</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - Wikis are an excellent way to collaboratively build websites online using a simple syntax. - We typically use the same - <a href="http://www.wikimedia.org">Wikimedia</a> - server software used by - <a href="http://www.wikimedia.org">Wikipedia</a>. - </p> - - <ul> - <li> - <a href="https://wiki.nps.edu">NPS wiki</a> - </li> - <li> - <a href="https://www.movesinstitute.org/wiki">https://www.movesinstitute.org/wiki</a> - <ul> - <li> - <a href="https://www.movesinstitute.org/wiki/index.php/Sweet_Spot_Project_ADL_SCORM_S1000D_X3D">Sweet Spot Project ADL SCORM S1000D X3D</a> - </li> - </ul> - </li> - <li> - <a href="https://savagedefense.nps.navy.mil/developers.html#Wikis" title="restricted access" alt="restricted access">SavageDefense wiki</a> (restricted FOUO access) - </li> - <li> - <a href="http://simkit.movesinstitute.org">Simkit Liferay Server</a> - </li> - </ul> - - <!-- =========================================================== --> - - <h2> <a name="Writing">Writing</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - Writing up our accomplishments, in theses and reports, is crucially important. - </p> - - <ul> - <li> - <a href="https://my.nps.edu/web/gwc">NPS Graduate Writing Center</a> - </li> - <li> - <a href="http://www.dtic.mil/whs/directives/plainlanguage.html">Official DoD Plain Language Website</a> - </li> - <li> - <a href="http://www.bloomberg.com/graphics/2015-paul-ford-what-is-code">What is Code?</a> - by Paul Ford, Business Week, 11 June 2015 - (also - <a href="http://www.bloomberg.com/news/videos/2015-06-12/-what-is-code-charlie-rose-06-12-">interview video</a>) - </li> - </ul> - - <!-- =========================================================== --> - - <h2> <a name="Xj3D">Xj3D viewer</a>: NPS source - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - Xj3D is an open-source Java viewer and application codebase for X3D graphics scenes. - </p> - - <ul> - <li> - NPS maintains and uses a public version of the Xj3D source, periodically synchronized with the original Xj3D.org project, to test new developments and bug fixes. - </li> - <li> - We are happy to work together with anyone who wants to help provide full support for the X3D Graphics standard in Xj3D. - </li> - <li> - The - <a href="http://web3d.org/wiki/index.php/Xj3D_Evolution">Xj3D Evolution</a> - strategy describes how - Web3D working-group stakeholders are considering and implementing further improvements to Xj3D. - </li> - <li> - Available: - <a href="https://sourceforge.net/projects/xj3d">Xj3D Sourceforge</a> - project is now established with a full history of changes included. - We are refactoring past and future branches through - formal renumbering and release. - <ul> - <li> - <b>Xj3D version 2.1</b> is the most up-to-date build, maintained by NPS as the - <a href="https://sourceforge.net/p/xj3d/code/HEAD/tree/trunk/">Xj3D trunk</a>. - </li> - <li> - <b>Xj3D version 2.0</b> is a snapshot of Yumetech-produced version at time of migration, August 2014, - available at - <a href="https://sourceforge.net/p/xj3d/code/HEAD/tree/branches/yumetechTrunk">branch/yumetechTrunk</a>. - </li> - <li> - Future version releases will integrate other - <a href="http://www.web3d.org/wiki/index.php/Xj3D_Evolution#Merge_orphaned_Xj3D_codebases">previously orphaned Xj3D builds</a>. - </li> - </ul> - </li> - <li> - We use the long-running - <a href="http://web3d.org/mailman/listinfo/source_web3d.org">source @ web3d.org</a> mailing list for Xj3D source code discussions - </li> - <li> - Xj3D source code version-control notifications: - <ul> - <li> - Mailed automatically to SourceForge Xj3D developers. - Also publicly visible at - <a href="https://sourceforge.net/p/xj3d/code/commit_browser">Browse Commits</a> - </li> - <li> - (Through October 2014) - <a href="http://web3d.org/mailman/listinfo/source_x3d_cvs_web3d.org">source-x3d-cvs AT web3d.org</a> - </li> - </ul> - </li> - <li> - Current releases use the open-source - <a href="https://jogamp.org">Jogamp</a> high performance Java libraries for 3D Graphics, Multimedia and Processing. - These include Java OpenGL (JOGL) rendering - and JOAL spatialized audio. - Xj3D can run on multiple operating systems - (Windows MacOSX Linux Solaris). - </li> - <li> - <a href="http://www.web3d.org/specifications/X3dNodeInventoryComparison.xlsx">X3D Node Inventory Comparison</a> - (<a href="http://www.web3d.org/specifications/X3dNodeInventoryComparison.pdf">.pdf</a>) - shows implementation coverage of the X3D Abstract Specification. - </li> - </ul> - - <p> - Applications using Xj3D include: - <ul> - <li> - <a href="https://savage.nps.edu/X3D-Edit">X3D-Edit</a>, - an open-source Extensible 3D (X3D) Graphics authoring tool for simple error-free editing, authoring and validation of X3D scenes. - </li> - <li> - Build processes for compressing and taking offline screen snapshots - (<a href="http://www.web3d.org/x3d-resources/content/examples/Vrml2.0Sourcebook/Siggraph98Course/viewpointSlideshow.html">example</a>) - for the thousands of scenes in the - <a href="http://www.web3d.org/x3d/content/examples/X3dResources.html#Examples">X3D Example Archives</a> - </li> - <li> - <a href="http://www.web3d.org/case-studies/structure-and-form-analysis-system-safas/e-learning-and-e-design">Structure and Form Analysis System (SAFAS)</a> - by Virginia Tech (VT), - a curriculum-support application for Architecture students learning Structural Engineering. - </li> - <li> - <a href="https://savage.nps.edu/AuvWorkbench">NPS AUV Workbench</a>, - experimental open-source software that supports physics-based mission rehearsal, - real-time task-level control of robot missions, and replay of recorded results - in support of autonomous unmanned underwater, surface and air vehicles. - </li> - <li> - <a href="#DES">Viskit</a> - and - <a href="#DES">SavageStudio</a>, - a drag+drop scenario-authoring tool that uses the Savage model archives to generate Viskit discrete-event simulation (DES) scenarios that are visualized using Xj3D. - </li> - </ul> - </p> - - <!-- ============================== --> - <p> - <i>Recommended for developers.</i> - The most up-to-date Xj3D code repository is now available at: - </p> - - <ul> - <li> - Subversion root directory - <code style="color:darkgreen"><b><a href="https://svn.code.sf.net/p/xj3d/code/trunk">https://svn.code.sf.net/p/xj3d/code/trunk</a></b></code> - </li> - <li> - Documentation is found in the - <a href="https://sourceforge.net/p/xj3d/code/HEAD/tree/trunk/docs">docs</a> directory<!--, - <a href="https://sourceforge.net/p/xj3d/code/HEAD/tree/trunk/docs/HowToInstall.html">NPS build instructions: How To Install</a> - --> - and - <a href="https://sourceforge.net/p/xj3d/code/HEAD/tree/trunk/docs/Xj3D-Codebase-ChangeLog-NPS.txt">Change Log of modifications in NPS build</a> - by Terry Norbraten - (<a href="mailto:tdnorbra%20at%20nps.edu%20(Terry%20Norbraten)?subject=feedback:%20Xj3D"><i>tdnorbra at nps.edu</i></a>) - </li> - <li> - <!-- These installers and jars are updated nightly by Jenkins build tasks --> - Additional resources include - nightly build - <a href="https://savage.nps.edu/Xj3D.nps/izpackInstallers">installers</a>, - <a href="https://savage.nps.edu/Xj3D.nps/jars">jar files</a>, - <a href="https://savage.nps.edu/Xj3D.nps/docs/arch/overview.html">documentation</a> - and - <a href="https://savage.nps.edu/Xj3D.nps/docs/javadoc">javadoc</a> - are produced by the - <a href="https://savage.nps.edu/jenkins/job/Xj3dSourceNpsBranch">Xj3dSourceNpsBranch</a> - project on the - <a href="https://savage.nps.edu/jenkins/">Savage jenkins server</a>. - </li> - </ul> - - <!-- ============================== --> - <p> - Prior links for the Xj3D code repository supporting the long-running NPS branch: - </p> - - <ul> - <li> - Subversion root directory - <a href="http://svn.xj3d.org/xj3d_code/branches/NPS">http://svn.xj3d.org/xj3d_code/branches/NPS</a> - </li> - <li> - NPS build instructions - <a href="http://svn.xj3d.org/xj3d_code/branches/NPS/README">README</a> - and - <a href="http://svn.xj3d.org/xj3d_code/branches/NPS/docs/Xj3D-Codebase-ChangeLog-NPS.txt">Change Log of modifications in NPS build</a> - by Terry Norbraten - (<a href="mailto:tdnorbra%20at%20nps.edu%20(Terry%20Norbraten)?subject=feedback:%20NPS%20Xj3D.nps%20change%20log%20"><i>tdnorbra at nps.edu</i></a>) - </li> - <li> - The NPS source branch provides Netbeans project support and strives to meet best practices for Ant. - If you are developing new code, be sure to use the proper - <a href="http://svn.xj3d.org/xj3d_code/branches/NPS/build.xml">build.xml</a> - from the NPS branch. - This is probably the only file in the NPS source branch that remains quite different than - the corresponding file in the trunk. - </li> - </ul> - - <!-- ============================== --> - <p> - Historic links for the original Xj3D trunk supports version 1.0 (released 15 April 2006). - </p> - - <ul> - <li> - <a href="http://www.Xj3D.org">Xj3D home page</a> - by individuals from - <a href="http://www.yumetech.com">Yumetech</a> - is the primary site for the trunk. - </li> - <li> - Latest Xj3D downloads are found on the - <a href="http://www.xj3d.org/snapshots.html">Development Snapshots</a> page. - </li> - <li> - <a href="http://www.xj3d.org/svn.html">Xj3D subversion description</a> - and - subversion root directory - <code style="color:darkgreen"><b><a href="http://svn.xj3d.org/xj3d_code">http://svn.xj3d.org/xj3d_code</a></b></code> - </li> - <li> - A huge number of improvements have been made over the years, but - original development of version 2.0 has not yet resulted in a formal release. - </li> - </ul> - - <!-- ============================== --> - - <p> - Also available: - </p> - <ul> - <li> - <a href="http://bugzilla.xj3d.org/">Xj3D bug list</a> by Yumetech - </li> - <li> - <a href="https://www.movesinstitute.org/bugzilla/buglist.cgi?quicksearch=xj3d">XMSF Issue Tracker for Xj3D</a> - by NPS - </li> - <li> - Aniviza - <a href="http://www.aniviza.com/svn/listing.php">attempted extensions to Xj3D</a> - for NASA WorldWind - </li> - </ul> - - - <!-- =========================================================== --> - - <h2> <a name="XML">XML</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - The Extensible Markup Language (XML) is a simple text-based format for representing structured information: - documents, data, configuration, books, transactions, invoices, and much more. - It was derived from an older standard format called SGML (ISO 8879), in order to be more suitable for Web use. - </p> - - <ul> - <li> - <a href="http://www.w3.org">World Wide Web Consortium (W3C)</a> - is the open standards development organization whose Recommendations govern XML. - <ul> - <li> - <a href="http://www.w3.org/XML/1999/XML-in-10-points">XML in 10 points</a> - provides a concise summary of the many capabilities possible with XML. - <ul> - <li> - Proposed addition to point 4: - <br/><i> -Efficient XML Interchange (EXI) further improves these capabilities. -Smaller compression enables bigger data on the Web, while -faster decompression saves both memory and power consumption -which can lead to the Internet of Things becoming the Web of Things. </i> - </li> - </ul> - </li> - <li> - <a href="http://www.w3.org/XML">Extensible Markup Language (XML)</a> - </li> - <li> - <a href="http://www.w3.org/XML/EXI">Efficient XML Interchange (EXI) working group</a>, - related - - and NPS work on - <a href="https://wiki.nps.edu/display/NOW/Efficient+Messaging">Efficient Messaging</a> - </li> - <li> - <a href="http://www.w3.org/standards/xml/core">XML Essentials</a> - </li> - <li> - <a href="http://www.w3.org/standards/xml">XML Technology</a> - </li> - </ul> - </li> - <li> - <a href="http://google-styleguide.googlecode.com/svn/trunk/xmlstyle.html">Google XML Document Format Style Guide</a> - </li> - </ul> - - - - <!-- =========================================================== --> - - <h2> <a name="XmlCatalog">XML Catalog</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <p> - An XML Catalog provides mappings from online URL or generic URI addresses - to specific files on the local machine. This allows tools to refer to - XML DTDs, schemas etc. to accomplish XML validation without being connected online. - </p> - - <ul> - <li> - <a href="http://www.oasis-open.org/committees/download.php/14810/xml-catalogs.pdf">XML Catalogs v1.1</a> - by the - <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=entity">OASIS Entity Resolution Technical Committee (TC)</a> - </li> - <li> - <a href="http://www.sagehill.net/docbookxsl/UseCatalog.html">How to use a catalog file</a> - in - <a href="http://www.sagehill.net/docbookxsl/Catalogs.html">Chapter 5. XML catalogs</a> - from - <a href="http://www.sagehill.net/docbookxsl">DocBook XSL: The Complete Guide</a> - (Fourth Edition) by Bob Stayton - </li> - </ul> - - <p> - <a href="http://www.web3d.org/specifications/OasisXmlCatalogX3D.xml">OasisXmlCatalogX3D.xml</a> - provides schema and doctype address resolution for typical offline validation of X3D scenes. - </p> - - <ul> - <li> - <a href="http://x3d.svn.sourceforge.net/viewvc/x3d/www.web3d.org/x3d/tools/CreateContentCatalog/CatalogManager.properties">CatalogManager.properties</a> - </li> - <li> - The Apache resolver is available at - <a href="http://www.apache.org/dist/xerces/xml-commons/">xml-commons-resolver-latest.zip</a> - </li> - </ul> - - <!-- =========================================================== --> - - <hr /> - - <h2><a name="Contact">Contact</a> - <a href="#"> - <!-- width="83" height="100" --> - <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> - </a> - </h2> - - <blockquote> - Questions, suggestions and comments about these resources are welcome. - Please send them to - <a href="http://faculty.nps.edu/brutzman" target="_blank">Don Brutzman</a> - (<a href="mailto:brutzman%20at%20nps.edu%20(Don%20Brutzman)?subject=feedback:%20Savage%20Developers%20"><i>brutzman at nps.edu</i></a>) - </blockquote> - - <blockquote> - Available online at - <a href="https://savage.nps.edu/developers.html">https://savage.nps.edu/developers.html</a> - </blockquote> - <blockquote> - Revised 21 June 2019. - </blockquote> - - <p> - <a href="http://www.nps.navy.mil/disclaimer" target="disclaimer">Official disclaimer</a>: - <br /> - <q> -Material contained herein is made available for the purpose of -peer review and discussion and does not necessarily reflect the -views of the Department of the Navy or the Department of Defense. - </q> - </p> - - </body> -</html> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> + +<html> + <head> + <link rel="shortcut icon" href="images/X3DtextIcon16.png" title="Savage Developers Guide" /> + <title>Savage Developers Guide</title> + <meta name="author" content="Don Brutzman"/> + <meta name="description" content="Configuration setup guide for Savage X3D project developers."/> + <meta name="title" content="developers.html"/> + <meta name="identifier" content="https://savage.nps.edu/Savage/developers.html"/> + <meta name="generator" content="X3D-Edit, https://savage.nps.edu/X3D-Edit"/> + <meta name="created" content="22 February 2010"/> + <!-- symbolic link: cd /var/www/html; ln -s Savage/developers.html developers.html --> + </head> + <body> + <a name="top"/> + <!-- =========================================================== --> + + <table border="0" cellspacing="0" cellpadding="0" summary="" align="center"> + <tr align="center"> + <td><a href="https://savage.nps.edu/Savage"><img src="images/SavageLogo.png" width="83" height="100" border="0" title="to Savage X3D Models Archive" alt="to Savage X3D Models Archive"/></a></td> + <td><pre> </pre></td> + <td><h1> Savage Developers Guide </h1></td> + <td><pre> </pre></td> + <td><a href="http://www.nps.edu"><img src="images/nps_logo.jpg" width="126" height="90" border="0" title="to NPS home page" alt="to NPS home page"/></a></td> + </tr> + </table> + + <p align="center"> + This developers guide describes system configuration supporting various software projects by the NPS MOVES Savage Research Group. + <!-- both for client-side and server-side capabilities. --> + </p> + + <!-- + <table border="0" cellspacing="2" cellpadding="2" summary="" align="center" width="80%"> + <tr> + <td> + </td> + </tr> + </table> + --> + + <blockquote width="7s0%"> + <p align="center"><small> + <a href="#Ant">Ant</a> | + <!-- TODO: Backups --> + <a href="#Chat">Chat</a> | + <a href="#Cygwin">Cygwin</a> | + <a href="#DES" title="Discrete Event Simulation (DES) Simkit, Viskit, DISkit">DES</a> | + <a href="#DIS" title="IEEE Distributed Interactive Simulation (DIS) Protocol">DIS</a> | + <a href="#Donate">Donate</a> | + <a href="#Free">Free</a> | + <a href="#hamming">hamming</a> | + <a href="#Java">Java</a> | + <a href="#JavaScript">JavaScript</a> | + <a href="#Jenkins">Jenkins</a> | + <a href="#Licensing">Licensing</a> | + <a href="#Media">Media</a> | + <a href="#MySQL">MySQL</a> | + <a href="#NetBeans">NetBeans</a> | + <a href="#Projects">Projects</a> | + <a href="#Security">Security</a> | + <a href="#Servers">Servers</a> | + <a href="#Subversion">Subversion</a> | + <a href="#telnet">telnet</a> | + <a href="#Time">Time</a> | + <a href="#Tools">Tools</a> | + <a href="#Wikis">Wikis</a> | + <a href="#Writing">Writing</a> | + <a href="https://savage.nps.edu/X3D-Edit" title="go to this page" alt="go to this page">X3D-Edit</a> | + <a href="#Xj3D">Xj3D</a> | + <a href="#XML">XML</a> | + <a href="#XmlCatalog">XML Catalog</a> | + <a href="X3dResources.html" title="go to this page" alt="go to this page">X3D Resources</a> | + <a href="X3dSceneAuthoringHints.html" title="go to this page" alt="go to this page">X3D Scene Authoring Hints</a> | + <a href="https://SavageDefense.nps.navy.mil/developers.html" title="restricted access" alt="restricted access">SavageDefense</a> | + <a href="#Contact">Contact</a> + </small></p> + </blockquote> + + <p align="center"> + SAVAGE stands for Scenario Authoring and Visualization for Advanced Graphics Environments. + + Our mascot is a + <a href="images/SavageLogo.png">LION</a> + because <b>Like It Or Not</b>, on the Web, + open source and open standards always win! + </p> +<!-- TODO more --> + + <!-- =========================================================== --> + + <h2> <a name="Ant">Ant</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + <a href="http://ant.apache.org">Ant</a> is a Java library and command-line tool used to automate common tasks for building projects. + Ant task syntax is in XML, making task definition and validation much simpler than other build systems. + </p> + + <p> + Ant is used to maintain most Savage projects. + Key references include: + </p> + + <ul> + <li> + <a href="http://ant.apache.org">Apache Ant project</a> + and + <a href="http://ant.apache.org/faq.html">Frequently Asked Questions (FAQ)</a> + </li> + <li> + <a href="http://ant.apache.org/manual">Ant manual</a> + then + <i>Ant tasks</i> + and + <i>List of tasks</i>. + </li> + <li> + <a href="http://ant-contrib.sourceforge.net">Ant-contrib</a> + site including + <a hre="https://sourceforge.net/projects/ant-contrib/files/ant-contrib">downloads</a> + plus documentation for + <a href="http://ant-contrib.sourceforge.net/tasks/index.html">installation and tasks</a>. + </li> + <li> + <a href="http://ant.apache.org/ant_in_anger.html">Ant in Anger</a> + and + <a href="http://manning.com/loughran">Ant in Action</a> + (second edition of <i>Java Development with Ant</i>) + by Steve Loughran and Erik Hatcher. + </li> + </ul> + + <p> + Recommended ant configuration details follow. + </p> + + <ul> + <li> + Download and install the + <a href="http://ant.apache.org">Ant</a> + binary distribution. + The default installation directory referred to by various Savage and X3D build files is + <br /> + <code style="color:darkgreen"><b>C:\apache-ant-1.10.5</b></code> + </li> + <li> + Prepend the following executable paths to the + system Path variable: + <br /> + <code style="color:darkgreen"><b>PATH=.;%ANT_HOME%\bin;</b></code><code>... (etc.)</code> + </li> + <li> + Set additional + system environment variables + as follows: + <br /> + <code style="color:darkgreen"><b>ANT_HOME=C:\apache-ant-1.10.5</b></code> + <br /> + If system memory is limited, additional options might be needed: + <br /> + <code style="color:darkgreen"><b>ANT_OPTS=-Xss16m -Xmx4096M</b></code> + or + <code style="color:darkgreen"><b>ANT_OPTS=-Xss16m -Xmx8192M</b></code> + <blockquote> + On Windows systems, set environment variables by selecting + <br /> + <i> Control Panel </i> <b>></b> + <i> System Properties </i> <b>></b> + <i> Advanced settings </i> <b>></b> + <i> Environment variables </i> + <i> System variables </i> + </blockquote> + </li> + <li> + Important: follow the + <a href="http://ant.apache.org/manual/install.html">Ant manual installation instructions</a> + to install libraries for optional ant tasks as follows + (<a href="antConfigurationFetchOutput.txt">example output</a>): + <br /> + <code style="color:darkgreen"><b>C:\apache-ant-1.10.5> ant -f fetch.xml -Ddest=system</b></code> + </li> + <li>Confirm proper path and installation: +<pre><b>ant -version</b> +Apache Ant(TM) version 1.10.5 compiled on February 2 2017 +</pre> + </li> + <li> + Additional requirements: several ant tasks (such as + <code>junit</code>, + <code>sshexec</code> + and + <code>scp</code> + require the addition of external + <a href="http://ant.apache.org/manual/install.html#librarydependencies">library dependencies</a>. + </li> + <ul> + <li> + Extract and install the + <a href="http://ant-contrib.sourceforge.net">ant-contribs package</a> + under <code style="color:darkgreen"><b>ANT_HOME</b></code>, + then copy + <code style="color:darkgreen"><b>ant-contrib-*.jar</b></code> + into the + <code style="color:darkgreen"><b>ANT_HOME/lib/</b></code> + subdirectory. You can now use any of the + <a href="http://ant-contrib.sourceforge.net/tasks/tasks" target="antcontrib">ant-contrib tasks</a> + by including the following top-level statement in your build.xml file. + <br /> + <code style="color:darkgreen"><b><taskdef resource="net/sf/antcontrib/antcontrib.properties"/></b></code> + </li> + <li> + Optional: extract, build and install the latest + <a href="http://www.jcraft.com/jsch">jsch-0.1.54.jar</a> package + into the + <code style="color:darkgreen"><b>ANT_HOME/lib/</b></code> + subdirectory. + </li> + <li> + To build the X3D examples archives, extract the latest Apache Commons resolver + <a href="http://www.apache.org/dist/xerces/xml-commons/">xml-commons-resolver-latest.zip</a> + and then place a copy of + <code style="color:darkgreen"><b>resolver.jar</b></code> + in the + <code style="color:darkgreen"><b>ANT_HOME/lib/</b></code> + subdirectory. Also be sure to check ownership and executable permissions for this file. + </li> + <li> + Alternatively, additional jar libraries can be added to your Ant installation within the + <code style="color:darkgreen"><b><a href="http://ant.apache.org/manual/install.html#optionalTasks">{user.home}/.ant/lib</a></b></code> + directory. + </li> + <!-- TODO is junit not in ant default build? --> + </ul> + <li> + NetBeans users can reset the default directory referred to by NetBeans: + <i>Tools</i> menu, <i>Options</i> panel, <i>Miscellaneous</i> tab, <i>Ant</i> subtab, <i>Ant home</i> <code style="color:darkgreen"><b>C:\apache-ant-1.10.5</b></code> + </li> + <li> + For server-side installations (including <a href="#Jenkins">Jenkins</a>), + the system administrator must ensure that all read/write access permissions are properly set. + </li> + <li> + Previously ssh using + maverick1.2 was added by putting + <a href="http://xmsf.svn.sourceforge.net/svnroot/xmsf/trunk/AuvWorkbench/lib/apache-ant/lib/maverick-ant.jar">maverick.ant.jar</a> + in ANT_HOME/lib. + We changed the maverick ssh tasks to use the native Ant + <code style="color:darkgreen"><b>scp</b></code> task instead. + </li> + </ul> + + <p> + Further configuration options are described under + <a href="http://ant.apache.org/manual/install.html#setup">Ant Setup</a>. + </p> + + + <!-- =========================================================== --> + + <h2> <a name="Chat">Chat</a> using XMPP Jabber + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + The Savage tools use chat software that supports the + <a href="http://xmpp.org">Extensible Messaging and Presence Protocol (XMPP)</a>, + commonly known as Jabber chat. + </p> + + <ul> + <li> + <a href="chat.html">Savage XMPP Chat Support</a> + page provides connection information for our chat rooms. + </li> + <li> + The Savage chat server is + <code style="color:darkgreen"><b><a href="xmpp://conference.savage.nps.edu">xmpp://conference.savage.nps.edu</a></b></code> + and the following rooms are publicly available: + <ul> + <li> + <code style="color:darkgreen"><b><a href="xmpp://auvw@conference.savage.nps.edu">auvw</a></b></code> for AUV Workbench discussions + </li> + <li> + <code style="color:darkgreen"><b><a href="xmpp:jenkins@conference.savage.nps.edu">jenkins</a></b></code> for Jenkins build reports + </li> + <li> + <code style="color:darkgreen"><b><a href="xmpp://x3d@conference.savage.nps.edu">x3d</a></b></code> for X3D Graphics discussions + </li> + </ul> + </li> + <li> + <a href="mailto:brutzman@nps.edu(Don%20Brutzman),mcgredo@nps.edu(Don%20McGregor),?subject=Savage%20chat%20server%20password%20request">Savage chat server password request</a> + </li> + <li> + We typically use + <a href="http://www.igniterealtime.org">Ignite Real Time</a> + which provides excellent open-source software with commercial extensions + <ul> + <li> + <a href="http://www.igniterealtime.org/downloads/index.jsp#spark">Spark</a> client software + (<a href="http://www.igniterealtime.org/builds/spark/docs/spark_user_guide.pdf">user's guide</a>) + </li> + <li> + <a href="http://www.igniterealtime.org/projects/openfire">Openfire</a> server software + </li> + </ul> + </li> + <li> + <a href="https://savage.nps.edu:9091">Savage chat server administrator console</a> + </li> + </ul> + + + <!-- =========================================================== --> + + <h2> <a name="Cygwin">Cygwin</a> Unix for Windows + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + The Cygwin distribution provide Unix command-line functionality for Windows systems. + It is not needed for macOS or Linux systems. + </p> + + <ul> + <li> + <a href="http://www.cygwin.com">Download and install Cygwin</a> (only on Windows systems). + The usual default installation directory is + <code style="color:darkgreen"><b>C:\cygwin</b></code> + <ul> + <li> + Also select and add the <b>openssh</b> package in order to have console access to <code style="color:darkgreen"><b>ssh</b></code> and <code style="color:darkgreen"><b>sftp</b></code> commands. + </li> + </ul> + </li> + <li> + Modify the system PATH environment variable to include + <br /> + <code style="color:darkgreen"><b>.;C:\cygwin\bin;</b></code> + near the beginning (before any Windows default directories) + </li> + <li> + Set the + <a href="http://cygwin.com/cygwin-ug-net/using-cygwinenv.html">CYGWIN environment variable</a> + (and + <a href="http://cygwin.com/cygwin-ug-net/using.html#using-pathnames">cygwin path functionality</a>) + as follows: + <br /> + <code style="color:darkgreen"><b>CYGWIN=nodosfilewarning</b></code> + </li> + <li> + <a href="http://cygwin.com/faq/">Cygwin FAQ</a> + and + <a href="http://cygwin.com/cygwin-ug-net/cygwin-ug-net.html">Cygwin User's Guide</a> + </li> + <li> + <a href="http://cygwin.com/cygwin-ug-net/setup-files.html">Customizing bash shell</a> + (see directory <code style="color:darkgreen"><b>/home/Username/</b></code> for files <code style="color:darkgreen"><b>.bashrc</b></code> <code style="color:darkgreen"><b>.bash_profile</b></code> and <code style="color:darkgreen"><b>.inputrc</b></code>) + </li> + <li> + <a name="inetutils"></a> + <a href="http://ras52-tech.blogspot.com/2007/01/telnet-on-cygwin.html">Telnet and other networking clients</a> + are in the <i>Net/inetutils</i> package + </li> +<!-- + <li> + User-specific configuration files: + <code style="color:darkgreen"><b>/home/username//.bashrc</b></code>, + <code style="color:darkgreen"><b>/home/username//.bash_profile</b></code>, + <code style="color:darkgreen"><b>/home/username//.inputrc</b></code> + </li> + +Your group is currently "mkpasswd". This indicates that your +gid is not in /etc/group and your uid is not in /etc/passwd. + +The /etc/passwd (and possibly /etc/group) files should be rebuilt. +See the man pages for mkpasswd and mkgroup then, for example, run + +mkpasswd -l [-d] > /etc/passwd +mkgroup -l [-d] > /etc/group + +Note that the -d switch is necessary for domain users. +--> + </ul> + + <!-- =========================================================== --> + + <h2> <a name="DES">Discrete Event Simulation (DES)</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + The DES projects are a suite of integrated tools for analytic simulation. + This work is entirely built using open-source Java, XML and X3D. + </p> + + <ul> + <li> + <a href="http://eos.nps.edu/Simkit">Simkit</a> + <a name="Simkit"> </a> + is a Java package for creating Discrete Event Simulation (DES) models + <ul> + <li> + <a href="https://eos.nps.edu/WebSVN/listing.php?repname=Simkit" target="_blank">subversion browse</a> + </li> + <li> + <a href="https://eos.nps.edu/svn/Simkit/trunk" target="_blank">subversion source</a>, + anonymous checkout at + <code style="color:darkgreen"><b>https://eos.nps.edu/svn/Simkit/trunk</b></code> + with username <code style="color:darkgreen"><b>guest</b></code> + </li> + <li> + <a href="https://www.movesinstitute.org/mailman/listinfo/simkit">Simkit mailing list</a> + </li> + <li> + <a href="https://savage.nps.edu/jenkins/job/Simkit/">Savage jenkins server: Simkit</a> + builds Simkit nightly + </li> + <li> + <a href="https://eos.nps.edu/bugzilla/buglist.cgi?quicksearch=simkit" target="_blank">Simkit bugtracker</a> + </li> + </ul> + </li> + <li> + <b>Diskit</b> + <a name="Diskit"> </a> + is a Java package for adding the IEEE Distributed Interactive Simulation (DIS) protocol to Simkit models + <ul> + <li> + <a href="https://eos.nps.edu/WebSVN/listing.php?repname=DISKIT" target="_blank">subversion browse</a> + </li> + <li> + <a href="https://eos.nps.edu/wcm/DISKIT/trunk" target="_blank">subversion source</a>, + anonymous checkout at + <code style="color:darkgreen"><b>https://eos.nps.edu/wcm/DISKIT/trunk</b></code> + with username <code style="color:darkgreen"><b>guest</b></code> + </li> + <li> + <a href="https://savage.nps.edu/jenkins/job/Diskit/">Savage jenkins server: Diskit</a> + builds Diskit nightly + </li> + <li> + <a href="https://eos.nps.edu/bugzilla/buglist.cgi?quicksearch=Diskit" target="_blank">Diskit bugtracker</a> + </li> + </ul> + </li> + <li> + <a href="http://eos.nps.edu/Viskit">Viskit</a> + <a name="Viskit"> </a> + is a visual programming tool to create, run and analyze Simkit models + <ul> + <li> + <a href="https://eos.nps.edu/WebSVN/listing.php?repname=Viskit" target="_blank">subversion browse</a> + </li> + <li> + <a href="https://eos.nps.edu/wcm/Viskit/trunk" target="_blank">subversion source</a>, + anonymous checkout at + <code style="color:darkgreen"><b>https://eos.nps.edu/wcm/Viskit/trunk</b></code> + with username <code style="color:darkgreen"><b>guest</b></code> + </li> + <li> + <a href="https://savage.nps.edu/sub/nps/ViskitModels">ViskitModels</a> behavior libraries + </li> + <li> + <a href="https://www.movesinstitute.org/mailman/listinfo/viskit">Viskit mailing list</a> + </li> + <li> + <a href="https://savage.nps.edu/jenkins/job/Viskit/">Savage jenkins server: Viskit</a> + builds Viskit nightly + </li> + <li> + <a href="https://eos.nps.edu/bugzilla/buglist.cgi?quicksearch=Viskit" target="_blank">Viskit bugtracker</a> + </li> + <li> + TODO: update Viskit home page, put into version control, and link it + </li> + </ul> + </li> + <li> + <a name="SavageStudio"> </a> + <a href="https://xmsf.svn.sourceforge.net/svnroot/xmsf/trunk/SavageStudio">SavageStudio</a> + is a a drag+drop scenario-authoring tool. + <ul> + <li> + SavageStudio uses the Savage archives for X3D models and Viskit behaviors to construct agent-based discrete-event simulation (DES) scenarios. + </li> + <li> + SavageStudio analyst reports are repeatable, refinable and publishable. + </li> + <li> + Simulation replications can be visualized using <a href="#Xj3D">Xj3D</a>. + </li> + <li> + <a href="https://savage.nps.edu/videos/SavageStudio-Scenario-Demo.2015JAN08.mp4" target="_blank">SavageStudio Scenario Demonstration</a> video + </li> + </ul> + </li> + <li> + Experimental + <ul> + <li> + <a href="https://okane.movesinstitute.org/simkit">SimkitProjects server</a> + (using + <a href="http://www.redmine.org/guide">Redmine</a>) + was an integrated project management site for various related projects. + </li> + </ul> + </li> + </ul> + + <!-- =========================================================== --> + + <h2> <a name="DIS">Distributed Interactive Simulation (DIS) Protocol</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + The + <a href="http://en.wikipedia.org/wiki/Distributed_Interactive_Simulation">IEEE Distributed Interactive Simulation (DIS) protocol</a> + is an IEEE standard for conducting real-time platform-level simulation across multiple host computers. + DIS is one of the most widely used modeling and simulation networking standards. + DIS is used worldwide, + especially by military organizations but also by other agencies such as those involved in space exploration and medicine. + </p> + <p> + Overview (from the standard). + Data messages, known as Protocol Data Units (PDUs), that are exchanged on a network among simulation applications are defined. + These PDUs are for interactions that take place within specified domains called protocol families, which include + Entity Information/Interaction, Warfare, Logistics, Simulation Management, Distributed Emission Regeneration, Radio Communications, + Entity Management, Minefield, Synthetic Environment, Simulation Management with Reliability, Information Operations, + Live Entity Information/Interaction, and Non-Real-Time protocol. + </p> + + <ul> + + <li> + DIS Standard: + <a href="http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=6387562">IEEE Standard 1278.1-2012 for Distributed Interactive Simulation--Application Protocols</a> + <ul> + <li> + Prior version: + <a href="http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=3700">IEEE Standard 1278.1-1995(R2002) for DIS</a>) + </li> + <li> + <a href="http://www.sisostds.org/DigitalLibrary.aspx?EntryId=29288">DIS 7 Overview, SISO PSG File Library</a> + reference documents + </li> + <li> + <a href="documents/SISO-REF-020-DRAFT%20DIS%20Plain%20and%20Simple-20131107.pdf">DIS Plain and Simple Guide</a> + (<a href="https://savage.nps.edu/Savage/documents/SISO-REF-020-DRAFT%20DIS%20Plain%20and%20Simple-20131107.pdf">online</a>), + SISO-REF-020-2007-DRAFT, March 2007 + (<a href="https://www.sisostds.org/Standards-Activities/Support-Groups/DIS-PSG-Distributed-Interactive-Simulation">status</a>). + </li> + </ul> + </li> + + <li> + <a href="http://open-dis.sourceforge.net/Open-DIS.html">Open-DIS</a> + implementation of the + DIS protocol + in Java, Javascript, C++, C# and Objective C + (<a href="https://savage.nps.edu/X3D-Edit/Open-DIS-flyer.pdf">flyer</a>). + <ul> + <li> + <a href="http://open-dis.sourceforge.net/Open-DIS.html">Open-DIS home</a>, + <a href="https://sourceforge.net/projects/open-dis">sourceforge site</a>, + and + <a href="http://open-dis.sourceforge.net/Documentation.html">documentation</a> + </li> + <li> + <a href="http://jsperf.com/javascript-dis-native-vs-json/2">Javascript DIS Native vs JSON</a> + browser-performance comparisons + </li> + <li> + Application: + <a href="https://savage.nps.edu/AuvWorkbench">Autonomous Unmanned Vehicle (AUV) Workbench</a> + </li> + <li> + Application: + <a href="https://savage.nps.edu/X3D-Edit/#Open-DIS">X3D-Edit</a> + </li> + <li> + Library: the DES modeling tools Simkit and Viskit are supported by + <a href="#Diskit">Diskit</a>, + a Java package for adding the IEEE DIS protocol to Simkit models. + </li> + </ul> + </li> + + <li> + Educational materials + <ul> + <li> + <a href="http://movesinstitute.org/~mcgredo/MV3500/">NPS MOVES MV3500 Networked Simulation</a> + course notes by Don McGregor + <!-- TODO Sakai site --> + </li> + <li> + <a href="http://x3dgraphics.com/slidesets/X3dForAdvancedModeling/DistributedInteractiveSimulation.pdf">X3D Graphics and DIS</a> + slideset + </li> + <li> + TODO: list of relevant NPS theses + </li> + </ul> + </li> + + <li> + <a href="http://www.sisostds.org/ProductsPublications/ReferenceDocuments.aspx">SISO Reference Documents</a> include + <ul> + <li> + <!-- https://stackoverflow.com/questions/16622504/escaping-ampersand-in-url to encode ampersand & as %26 --> + <!-- https://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters --> + <a href="http://www.sisostds.org/DigitalLibrary.aspx?Command=Core_Download%26EntryId=41275">SISO-REF-010-01-2013 (v2-0)</a>: Operations Manual for the Enumerations Working Group (EWG) + </li> + <li> + <a href="http://www.sisostds.org/DigitalLibrary.aspx?Command=Core_Download%26EntryId=41145">SISO-REF-010-00-2013 (v20-0)</a>: Reference for Enumerations for Simulation Interoperability + <ul> + <li> + Also known as Enumeration Byte Values (EBV) + </li> + <li> + Distribution includes reference document plus XML and spreadsheet versions of enumeration name=value definitions + </li> + <li> + Mailing list: + <a href="mailto:SISO-ENUM@discussions.sisostds.org?SISO-ENUMerations:%20">SISO-ENUM@discussions.sisostds.org</a> + (<a href="mailto:SISO-ENUM.list-request@discussions.sisostds.org?subscribe;body=subscribe">subscribe</a>) + (<a href="mailto:SISO-ENUM@discussions.sisostds.org?SISO-ENUMerations:%20">thread</a>) + </li> + <li> + <a href="http://open-dis.sourceforge.net/javadoc/disenum/docs">open-DIS Enumerations Javadoc</a> + </li> + </ul> + </li> + </ul> + </li> + </ul> + + <!-- =========================================================== --> + + <h2> <a name="Donate">Donate</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + Savage software and models are openly published without charge and funded by research proposals. + You are welcome to donate funds to support these efforts if you wish. + You are welcome to tell our benefactors about your interest in Savage and X3D Graphics: + </p> + + <ul> + <li> + <a href="http://www.npsfoundation.org">Naval Postgraduate School Foundation (NPS)</a> + is the non-profit organization that supports + NPS + </li> + <li> + <a href="http://web3d.org/donate">Web3D Consortium</a> + is the non-profit organization that supports + Extensible 3D (X3D) Graphics development. + </li> + </ul> + <p> + Please contact + <a href="http://web.nps.navy.mil/~brutzman" target="_blank">Don Brutzman</a> + (<a href="mailto:brutzman%20at%20nps.edu%20(Don%20Brutzman)?subject=feedback:%20research%20sponsorship,%20collaboration%20"><i>brutzman at nps.edu</i></a>) + if you are interested in sponsoring or partnering on further research. + </p> + + <!-- =========================================================== --> + + <h2> <a name="Free">Free</a> as in Freedom + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + The free cost of open-source software has been fundamentally important to the Savage group's ability to create + applications and content that are highly capable, compliant with open standards, highly capable, maintainable + and repeatable by others. + </p> + <ul> + <li> + "Free" is more like "free puppy" than "free beer" for software development! + </li> + <li> + Care, feeding and support are needed over time. Nevertheless you always have the freedom to fix, modify and extend. + </li> + </ul> + <p> + This long-term stability is essential to our accomplishing the NPS mission of graduate education and research. + It further allows our graduates, and any other government agency, to utilize our standards-driven work compatibly with + program life-cycle requirements and industry support. + </p> + <p> + The development and use of free software avoids common problems of + "vendor lock in" through proprietary restrictions, + inability of ongoing government efforts to fund the renewal of prior licenses, + and inability to pay a company that is otherwise unwilling to perform software bugfixes and corrections. + </p> + <p> + This approach also avoids the common "short half-life" problems of companies that can either go out of business or else get acquired (and perhaps buried) by other companies. + Such business pathologies not only break software but also negate correspondingly significant investments to create content of interest. + In turn, such dependency on proprietary software leads to personnel vulnerabilities when + an expert programmer or content developer can no longer apply their skills to improve prior accomplishments. + </p> + <p> + Further information on these software imperatives can be found in the + <a href="#Licensing">Licensing</a> + section and through the following key sources. + </p> + <ul> + <li> + <a href="https://www.apache.org">Apache Software Foundation (ASF)</a> + provides support for the Apache community of open-source software projects, which provide software products for the public good. + Of particular interest are the + <a href="https://www.apache.org/licenses">Apache Licenses</a>. + </li> + <li> + <a href="https://www.gnu.org">GNU</a> + (GNU's Not Unix!) operating system + is a broad software collection of applications, libraries, and developer tools. + </li> + <li> + <a href="https://www.eff.org">Electronic Frontier Foundation (EFF)</a> + is a nonprofit organization defending civil liberties in the digital world. + + </li> + <li> + <a href="https://www.fsf.org">Free Software Foundation</a> + has a worldwide mission to promote computer0user freedom and to defend the rights of all free software users. + </li> + </ul> + + <!-- =========================================================== --> + + <h2> <a name="hamming">hamming</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + <a href="http://hamming.uc.nps.edu">hamming</a> + is the NPS supercomputer used for a variety of tasks with + X3D Earth, + Renderman rendering, + and + Viskit Design of Experiments. + </p> + + <ul> + <li> + <a href="http://hamming.uc.nps.edu">hamming</a> wiki page + and + <a href="http://hamming.uc.nps.edu/ganglia">ganglia</a> cluster load + </li> + <li> + <a href="http://www.nps.edu/hpc">NPS High-Performance Computing (HPC)</a> + and + <a href="http://www.nps.edu/hpc/Facilities.html">HPC Facilities</a> + </li> + </ul> + + <p> + This major asset is named for + former NPS Emeritus Professor and distinguished computer scientist + <a href="http://en.wikipedia.org/wiki/Hamming">Richard W. Hamming</a>. + </p> + + <!-- =========================================================== --> + + <h2> <a name="Java">Java</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + Java is the primary programming language used in Savage projects. + </p> + + <ul> + <li> + Download and install the latest + <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">Java Development Kit (JDK)</a>. + This installation also includes the + Java Runtime Environment (JRE), + which does not need to be installed separately. + </li> + <li> + Default Java version used in Savage projects is + <code style="color:darkgreen"><b>jdk1.8.0_212</b></code> + </li> + <li> + Verify that the + system environment variables + are set appropriately. Example: + <!-- + <br /> + <code style="color:darkgreen"><b>JAVA_HOME=C:\Program Files\Java\jdk1.7.0_55</b></code> + <br /> + or + --> + <br /> + <code style="color:darkgreen"><b>JAVA_HOME=C:\Program Files\Java\jdk1.8.0_212</b></code> + <br /> + <code style="color:darkgreen"><b> PATH=.;%JAVA_HOME%\bin;;%ANT_HOME%\bin;</b></code> + (usually inserted at the beginning of an existing PATH, if it already exists) + </li> + <li>Test what version of Java is installed for your operating system via a console command line. Example: + + <pre> +<b>$ java -version</b> + +java version "1.8.0_212" +Java(TM) SE Runtime Environment (build 1.8.0_212-b10) +Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode) +</pre> + </li> + <li> + <!-- + <a href="http://docs.oracle.com/javase/6/docs/api">Java 6 Javadoc</a> + <a href="http://docs.oracle.com/javase/7/docs/api">Java 7 Javadoc</a> + or + --> + <a href="http://docs.oracle.com/javase/8/docs/api" target="_blank">Java 8 Javadoc</a> + is available on the + <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">Java downloads</a> page. + Extract the <code style="color:darkgreen"><b>docs</b></code> directory tree provided by the .zip to the directory containing Java. + </li> + <li> + <a href="http://www.oracle.com/technetwork/java/javase/documentation/index-jsp-135444.html">Javadoc Tool</a> + page provides guidance on how to write correct, effective Java document. + </li> + <li> + You can also visit the + <a href="http://www.java.com/en/download/installed.jsp" target="_blank">Verify Java Version</a> + page, which detects which version of Java is installed in your Web browser. + This may be a different version (for example, JRE version 1.7.*) without interfering with the command-line PATH version. + </li> + <li> + If desired, developers can choose among multiple Java platforms in NetBeans + via the menu Tools > Java Platforms. However, in practice, we have + found it best to only install a single version of Java on each machine. + </li> + <li> + <a href="http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html">Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files 8 Download</a> + is needed for various builds + (link also found at bottom of JavaSE downloads page). + <ul> + <li> Extract the contents (including README.txt) for inclusion in the JDK development build, for example + <br /> + <code style="color:darkgreen"><b>C:\Program Files\Java\jdk1.8.0_192\jre\lib\security</b></code></li> + <li> + <a href="http://download.oracle.com/javase/8/docs/technotes/guides/security">Java(TM) Cryptography Architecture (JCA) Reference Guide</a> + </li> + <li> + <a href="http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136007.html">Java SE Security</a> + has more information about JCE and the Java SE Security Model. + </li> + </ul> + </li> + <li>Style guides + <ul> + <li> + <a href="http://www.oracle.com/technetwork/java/javase/documentation/codeconvtoc-136057.html">Code Conventions for the Java Programming Language</a>). + (April 1999) + </li> + <li> + <a href="http://google-styleguide.googlecode.com/svn/trunk/javaguide.html">Google Java Style Guide</a> + for source code + (<a href="http://www.javaworld.com/article/2102551/java-language/googles-java-coding-standards.html">press review</a>). + </li> + </ul> + </li> + <li> + Applet security: to run a Java applet in a Web browser, you may need to add this site to your + <a href=" http://www.web3d.org/x3d/content/examples/images/JavaControlPanelSecurityExceptionSiteList.png">Java Control Panel Security Exception Site List</a> + (<a href="https://www.java.com/en/download/exception_sitelist.jsp">documentation</a>). + </li> + </ul> + + <!-- =========================================================== --> + + <h2> <a name="JavaScript">JavaScript</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + JavaScript is a common programming language used in Web browsers for HTML and X3D scripts. + n.b. JavaScript is not the same as Java, they are different programming languages. + </p> + + <ul> + <li> + <a href="https://savage.nps.edu/mcgredo/javascriptTest.html">JavaScript test</a> + to check if JavaScript is working in a Web browser. + </li> + <li> + <a href="http://get.webgl.org">WebGl test</a> + to check if JavaScript WebGl is working in a Web browser. + </li> + <li> + <a href="http://www.web3d.org/specifications/Ecma-262.pdf">ECMAScript-262 specification</a> + defines JavaScript functionality. + </li> + <li> + <a href="http://kangax.github.io/nfe/">Named function expressions demystified</a> + by Juriy "kangax" Zaytsev. + </li> + <li> + <a href="http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml">Google JavaScript Style Guide</a> + </li> + </ul> + + <!-- =========================================================== --> + + <h2> <a name="Jenkins">Jenkins</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + The + Savage Jenkins Build Servers + are online continuous-integration servers that are used to test open-source code and content distributions. + They automatically check out versioned projects and perform a variety of custom build tasks. + This is an excellent capability that complements individual programmer efforts to support agile, effective team development. + </p> + <p> + Configuration setup for our jenkins servers includes installation of ant-contrib + as described in the <a href="#Ant">Ant</a> section. + </p> + + <ul> + <li> + <a href="https://savage.nps.edu/jenkins/">Savage Jenkins Server</a> + </li> + <li> + <a href="https://mmog.ern.nps.edu/jenkins/">Savage MMOG Jenkins Server</a> (NPS intranet access) + </li> + <li> + <a href="https://SavageDefense.nps.navy.mil/jenkins/" title="restricted access" alt="restricted access">SavageDefense Jenkins Server</a> (restricted FOUO access) + </li> + <li> + <a href="https://savage.nps.edu/Savage/chat.html">Savage chat room</a> for build reports: + Jabber ID (JID) + <a href="xmpp://jenkins@conference.savage.nps.edu?join">xmpp://jenkins@conference.savage.nps.edu</a> + </li> + <li> + <a href="mailto:mcgredo@nps.edu(Don%20McGregor),brutzman@nps.edu(Don%20Brutzman)?subject=Savage%20jenkins%20account%20request">Requesting a Savage jenkins account</a> + </li> + <li> + Report a + <a href="https://www.movesinstitute.org/bugzilla/enter_bug.cgi?product=XMSF;component=Jenkins">bug</a> + with one of our local jenkins servers + </li> + <li> + Guests are now allowed to view build and workspace results + </li> + </ul> + <p> + Helpful external references: + </p> + <ul> + <li> + <a href="http://jenkins-ci.org">Jenkins website</a> + and + <a href="https://wiki.jenkins-ci.org/">Jenkins wiki</a> + </li> + <li> + <a href="https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins">Meet Jenkins</a> + and + <a href="https://wiki.jenkins-ci.org/display/JENKINS/Use+Jenkins">Use Jenkins</a> + </li> + <li> + <a href="http://hudson-ci.org">Hudson website</a> + and + <a href="http://wiki.hudson-ci.org">Hudson wiki</a> + </li> + <li> + <a href="http://wiki.hudson-ci.org/display/HUDSON/Meet+Hudson">Meet Hudson</a> + and + <a href="http://wiki.hudson-ci.org/display/HUDSON/Hudson+Best+Practices">Hudson Best Practices</a> + </li> + <li> + Sun whitepaper + <a href="http://blogs.sun.com/ontherecord/entry/new_whitepaper_developing_software_collaboratively">Developing Software Collaboratively with Hudson</a> + (<a href="https://www.sun.com/offers/details/hudson.xml">.pdf</a>) + </li> + </ul> + + <!-- =========================================================== --> + + <h2> <a name="Licensing">Licensing</a> and IPR Issues + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + Wherever possible our group utilizes both + <a href="http://en.wikipedia.org/wiki/Open_standards">open standards</a> and + <a href="http://en.wikipedia.org/wiki/Open_source">open source</a> licensing. + </p> + + <p> + Motivation: as a government-funded university, it is important that our work be published publicly and made available freely. + As researchers working with military students and worldwide communities of interest, we are striving to maximize the + interoperability and 3D visualization capabilities of data streams used for situational awareness. + Our strategy to accomplish these goals is the development, testing, adoption and evaluation of Web standards. + </p> + + <p> + It is always important to observe Intellectual Property Rights (IPR) requirements. + Because of our involvement in multiple groups developing open standards and open source, + it is important that our work remains "untainted" and unexposed to software that may contain patent encumbrances. + We do not want to jeopardize any of the standards or codebases that we work on. + </p> + + <p> + In particular, we don't like to use tools with the following characteristics: + </p> + <ul> + <li> + Closed or proprietary standards for data or networking + </li> + <li> + Unsupported by (or inconsistent with requirements of) Navy or Department of Defense (DoD) + </li> + <li> + Requires lockin of some sort, e.g. single operating system or proprietary software + </li> + </ul> + + <p> + Rationale for success: + </p> + <ul> + <li> + Stay close to what operational military users can work with, + thus best supporting our students while at NPS and after they graduate + </li> + <li> + "Walk the walk" in terms of making open standards work together properly + </li> + <li> + Gain experience that enables us to make informed recommendations about + how Navy/DoD can best deploy open standards for broad interoperability + </li> + </ul> + + <p> + <a name="license">Resources:</a> + </p> + <ul> + <li> + <a href="license.html">Savage open-source license</a> + (<a href="license.txt">text version</a>) + is non-viral and business friendly. This approach encourages industry to adopt open standards by + offering our code and content for reuse without impediment. + </li> + <li> + <a href="http://creativecommons.org">Creative Commons</a> is another important source for licenses. + </li> + <li> + <a href="http://oreilly.com/catalog/9780596005818">Understanding Open Source and Free Software Licensing</a> + by + Andrew M. St. Laurent, + O'Reilly Media, + Sebastopol California, 2004. + Also + <a href="http://oreilly.com/openbook/osfreesoft/book">available online</a>. + </li> + <li> + <a href="http://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#license">X3D Scene Authoring Hints: License</a> + provides further rationale on licenses for X3D scenes. + </li> + </ul> + + <p> + <a name="OTD"><b>Open Technology Development (OTD)</b></a> + describes accepted best practices for open source and open standards, + emphasizing business cases for government agencies, + and providing excellent rationales and detailed guidance. + </p> + <ul> + <li> + J.C. Herz, Mark Lucas and John Scott, + <a href="http://www.acq.osd.mil/jctd/articles/OTDRoadmapFinal.pdf" target="_blank">Open Technology Development (OTD) Roadmap</a>, + Office of the Secretary of Defense, Advanced Systems and Concepts, 2006. + </li> + <li> + John Scott, David A. Wheeler, Mark Lucas, and J.C. Herz, + <a href="http://mil-oss.org/resources/books/open-technology-development" target="_blank">Open Technology Development: Lessons Learned & Best Practices for Military Software</a>, + 16 May 2011. + </li> + <li> + Perlroth, Nichole, + <a href="http://www.nytimes.com/2014/04/19/technology/heartbleed-highlights-a-contradiction-in-the-web.html" target="_blank">Heartbleed Highlights a Contradiction in the Web</a>," + New York Times, 19 April 2014. "Companies using open software are doing little to support it." + </li> + </ul> + + <p> + Contributors who wish to provide code or content for any of the archives we maintain can either use the + <a href="license.html">Savage open-source license</a> + or else another open-source license of their choice. + In this way, these public archives remain freely reusable. + </p> + + <!-- =========================================================== --> + + <h2> <a name="Media">Media</a> and Content + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + 3D graphics modeling and Web media benefit from using open-source content. The + <a href="X3dSceneAuthoringHints.html" title="go to this page" alt="go to this page">X3D Scene Authoring Hints</a> + contain detailed tips and guidelines for creating Web content. + Here are some additional useful resources. + </p> + + <h4> <a name="3D">3D</a> Models </h4> + <ul> + <li> + <a href="https://Savage.nps.edu">Savage</a> + and + <a href="https://SavageDefense.nps.navy.mil/developers.html" title="restricted access" alt="restricted access">SavageDefense</a> + model archives + </li> + <li> + <a href="http://www.web3d.org/x3d/content/examples/X3dResources.html#Examples">X3D Resources: Examples</a> + </li> + </ul> + + <h4> <a name="Audio">Audio</a> </h4> + <ul> + <li> + The NPS Savage Group has limited local rights to publish and use + <a href="SoundEffects/SavageSoundReadme.html">sound effects files</a> + from + <a href="http://www.hollywoodedge.com">The Hollywood Edge</a> + library. + </li> + </ul> + + <h4> <a name="Imagery">Imagery</a> </h4> + <ul> + <li> + <a href="http://defenseimagery.mil/products.html">Defense Imagery</a> + (including <a href="http://defenseimagery.mil/products/dodimagery.html">guidelines</a>) + </li> + <li> + <a href="http://commons.wikimedia.org/wiki/Nautical_Signal_Flags">Nautical Signal Flags</a> + </li> + </ul> + + <h4> <a name="Video">Video</a> </h4> + <ul> + <li> + <a href="https://savage.nps.edu/videos">Savage videos</a> + </li> + <li> + <a href="http://defenseimagery.mil/products.html">Defense Imagery</a> + (including <a href="http://defenseimagery.mil/products/dodimagery.html">guidelines</a>) + </li> + <li> + <a href="http://www.dvidshub.net">Defense Video and Imagery Distribution System (DVIDS)</a> + </li> + <li> + <a href="http://www.web3d.org/x3d/content/examples/X3dResources.html#Video">X3D Resources: Video</a> + </li> + </ul> + + <!-- =========================================================== --> + + <h2> <a name="MySQL">MySQL</a> Database Support + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + NetBeans has excellent support for MySQL databases. + The NetBeans help page "Using MySQL with the IDE" is a quick reference. + Other resources include: + </p> + + <ul> + <li> + NetBeans help page "Using MySQL with the IDE" + is a helpful quick reference + </li> + <li> + <a href="http://netbeans.org/kb/articles/mysql.html">MySQL and NetBeans IDE</a> + includes two screencast videos: + <ul> + <li> + Getting Started with Database-Driven Applications using MySQL + </li> + <li> + Database Support Improvements in NetBeans IDE + </li> + </ul> + </li> + + <li> + <a href="http://netbeans.org/kb/docs/ide/mysql.html">Connecting to a MySQL Database</a> + </li> + <li> + <a href="http://netbeans.org/kb/docs/web/mysql-webapp.html">Creating a Simple Web Application Using a MySQL Database</a> + </li> + <li> + <a href="http://netbeans.org/kb/docs/websvc/rest-mysql.html">Exposing a MySQL Database with RESTful Web Services</a> + </li> + </ul> + <p> + Additional resources: + </p> + <ul> + <li> + <a href="http://www.mysql.com">MySQL.com</a> + and + <a href="http://www.mysql.com/downloads/workbench/">MySQL Workbench</a> (GUI tool) + </li> + <li> + <a href="http://www.sequelpro.com">SequelPro</a> + database management application (Macintosh) + </li> + </ul> + + <p> + A <b>secure shell (ssh) tunnel</b> makes it possible to create a local connection to a remote database on another server. + </p> + <!-- Credit goes to Don McGregor with an assist from Kirk Stork --> + <blockquote> +This makes a port on your local +host appear as if it is a port on the remote host. +In reality, the traffic +is first going into the port on the local host, then going across an encrypted +link to <code style="color:darkgreen"><b>RemoteHost.nps.edu</b></code>, then being decrypted on the other side, and +then sent to the MySQL port on <code style="color:darkgreen"><b>RemoteHost</b></code>. Finally the ssh tunnel returns the data +response from the database to the port on your local host. + +This technique is secure because it lets us avoid having to +unblock the firewall to open the MySQL port on the remote host. +It also ensures that all the passwords and data sent across the network +are encrypted. If you are connecting to an NPS database server, you will first +need to be connected to the NPS intranet. + </blockquote> + + <blockquote> + <table border="1" cellpadding="5"> + <tbody> + <tr> + <td colspan="2" align="center"> + <code style="color:darkgreen"><b> + ssh -N username@RemoteHost.nps.edu -L 3307:localhost:3306 + </b></code> + </td> + </tr> + <tr> + <td align="right"><code style="color:darkgreen"><b>ssh</b></code></td> + <td> + Unix command for secure shell. + <code style="color:darkgreen"><b>ssh</b></code> support under Windows can be found as part of the + <a href="#Cygwin">Cygwin tools</a>. + </td> + </tr> + <tr> + <td align="right"><code style="color:darkgreen"><b>-N</b></code></td> + <td>Don't run any commands on the mmowgli host. Optional but nice.</td> + </tr> + <tr> + <td align="right"><code style="color:darkgreen"><b>username@RemoteHost.nps.edu</b></code></td> + <td>your ssh login account on the remote host</td> + </tr> + <tr> + <td align="right"><code style="color:darkgreen"><b>-L</b></code></td> + <td>Set up a tunnel</td> + </tr> + <tr> + <td align="right"> <code style="color:darkgreen"><b>3307:localhost:3306</b></code></td> + <td> + Set up a port on your system, 3307, that goes to the + MySQL port, 3306, on the remote host. + <br /> + We use 3307 in this case + because there's often a development MySQL server running on + <br /> + your system that's already using 3306. + </td> + </tr> + </tbody> + </table> + + <p> + This technique is also helpful for locally listening to a Tomcat server port. For example: + </p> + <blockquote> + <code style="color:darkgreen"><b>ssh -N username -L 8080:tomcatServer.nps.edu:8181</b></code> + </blockquote> + <p> + lets you monitor remote <code style="color:darkgreen"><b>tomcatServer</b></code> response via your web browser at + </p> + <blockquote> + <code style="color:darkgreen"><b>http://localhost:8080</b></code> + </blockquote> + + <p> + Further <code style="color:darkgreen"><b>ssh</b></code> details are available using the Unix help manual page, + <a href="http://openssh.com/manual.html"><code style="color:darkgreen"><b>man ssh</b></code></a>. + </p> + </blockquote> + + <!-- =========================================================== --> + + <h2> <a name="Netbeans"></a><a name="NetBeans">NetBeans</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + <a href="http://www.netbeans.org" target="_blank">NetBeans</a> + is the Integrated Development Environment (IDE) used for most Savage project development. + </p> + + <p> + Free book: + <a href="http://netbeans.dzone.com/articles/free-oracle-book-developing" target="_blank">Developing Applications with NetBeans IDE 8.0</a> + (<a href="http://docs.oracle.com/cd/E50453_01/doc.80/e50452/toc.htm">.html</a> + and + <a href="http://docs.oracle.com/cd/E50453_01/doc.80/e50452.pdf">.pdf</a>) + </p> + + <p> + Once installed, recommended configuration settings and + suggested modules include the following: + </p> + <ul> + <li> + First-time use of Subversion under Windows can yield a + <a href="images/NetbeansSubversionClientWindows.png">warning dialog</a>, + click to accept installation of plugin + </li> + <li> + <a href="http://docs.oracle.com/cd/E50453_01/index.htm" target="_blank">Netbeans documentation</a> + and + <a href="http://docs.oracle.com/javase/8/docs" target="_blank">Java documentation</a> + are helpful. + Be sure to download Javadoc for Java from the + <a href="http://www.oracle.com/technetwork/java/javase/downloads">Java downloads</a> page. + Extract the <code style="color:darkgreen"><b>docs</b></code> directory tree provided by the .zip to the directory containing Java. + Then select the Netbeans menu for <i>Tools > Java Platform</i> and + add the local directory under the Javadoc tab. For good measure you can also add the online Java Javadoc url at + <a href="http://docs.oracle.com/javase/8/docs/api" target="_blank">http://docs.oracle.com/javase/8/docs/api</a> + there as well. + <p> + Javadoc location is configured under <i>Tools > Java Platform > select platform (JDK 1.8)</i> subtab + </p> + </li> + <li> + If upgrading Java without re-installing Netbeans, you may need to + <a href="http://stackoverflow.com/questions/2809366/changing-the-version-on-which-netbeans-runs">modify Netbeans version of Java platform</a> + by editing + <code style="color:darkgreen"><b>netbeans.conf</b></code> + in the program-installation directory, such as + <br /> + <code style="color:darkgreen"><b>C:\Program Files\NetBeans 8.2\etc\netbeans.conf</b></code> (default user settings) + <br /> + or, for older versions of Netbeans, + <br /> + <code style="color:darkgreen"><b>C:\Users\<b>MyName</b>\AppData\Roaming\NetBeans\8.0.2\etc\netbeans.conf</b></code> + + <br /> + Modify original settings to also include: + <br /> + <b><code>netbeans_default_options</code></b>="<b><code>-J-server</code> <code>-J-Xmx2g</code> <code>-J-XX:PermSize=32m</code></b>" + <br /> + (for details, see <a href="http://wiki.netbeans.org/FaqSettingHeapSize">Netbeans FaqSettingHeapSize</a>) + </li> + <li> + <a href="http://plugins.netbeans.org/PluginPortal">NetBeans Plugin Portal</a> + has many useful additions for Netbeans + </li> + <li> + <a href="http://netbeans.dzone.com">DZone NetBeans Zone</a> + has interesting news and resources, including + <a href="http://refcardz.dzone.com/refcardz/netbeans-ide-7-programming">refcard: Netbeans IDE 7.0 - Programming in Java</a> + and + <a href="http://refcardz.dzone.com/refcardz/netbeans-platform-70">refcard: NetBeans Platform 7.0 Framework for Building Pluggable Enterprise Applications </a>. + </li> + <!-- + <li> + (TODO verify latest, update if needed) Add + <a href="http://updates.netbeans.org/netbeans/updates/6.9/uc/m1/dev/catalog.xml">NetBeans Development</a> + Update Center to Plugins, then + <i>XML Schema and WSDL</i> plugin + </li> + --> + <li> + <a href="https://savage.nps.edu/X3D-Edit/#Downloads">Install X3D-Edit</a> (which includes KML support) as plugin modules + </li> + <li> + If X3D-Edit plugin is not installed, select + <br /> + <i>Tools > Options > Miscellaneous > Files:</i> add new file type <code style="color:darkgreen"><b>x3d</b></code> with value <code style="color:darkgreen"><b>XML Files (text/xml)</b></code> to support X3D scene validation + </li> + <li> + <i>Tools > Options > Miscellaneous > Files:</i> add new file type <code style="color:darkgreen"><b>sch</b></code> with value <code style="color:darkgreen"><b>XML Files (text/xml)</b></code> to support Schematron rule-set validation + </li> + <li> + <i>Tools > Options > Miscellaneous > Ant:</i> + set directory for <a href="#Ant">local version of Ant installation</a>, + unset Reuse Output Tabs, + set Save All Modified Files, + set Always Show Output + </li> + <li> + <i>Tools > Plugins > Settings:</i> + set update interval to <i>Every Startup</i> + </li> + </ul> + + <p> + <a name="NetBeansWindows64">Netbeans Windows 64-bit</a> configuration for latest Java: + </p> + <ul> + <li> + <a href="#java">Download</a> and install 64-bit Java + </li> + <li> + Add the new java installation in Netbeans via + <i>Tools, Java Platforms</i> menu + </li> + <li> + Set the new java version in each Project Properties + </li> + <li> + Update + <br /> + <code style="color:darkgreen"><b>C:\Program Files\NetBeans 8.2\etc\netbeans.conf</b></code> + <br /> + or + <br /> + <code style="color:darkgreen"><b>%USERPROFILE%\<AppData>\<i>Local</i> (or <i>Roaming</i>)\NetBeans\8.2\etc\netbeans.conf</b></code> + <br /> + by changing + <pre> +netbeans_jdkhome="C:\Program Files (x86)\Java\jdk1.8.0_192"</pre> + to remove the <b>(x86)</b> as follows: + <pre> +netbeans_jdkhome="C:\Program Files\Java\jdk1.8.0_192"</pre> + <p> + Similarly Java Platform settings can be edited in + <br /> + <code style="color:darkgreen"><b>%USERPROFILE%\<AppData>\<i>Roaming</i>\NetBeans\8.2\config\Services\Platforms\org-netbeans-api-java-Platform\JDK_1.8.xml</b></code> + </p> + </li> + <li> + Errors and exceptions are recorded in + <br /> + <code style="color:darkgreen"><b>%USERPROFILE%\<AppData>\<i>Local</i> or <i>Roaming</i>\NetBeans\8.2\var\log\messages.log</b></code> + </li> + <li> + Consider changing + <br /> + <code style="color:darkgreen"><b>netbeans_default_options="-J-client</b></code> + etc. + <br /> + to + <br /> + <code style="color:darkgreen"><b>netbeans_default_options="-J-server</b></code> + etc. + <br/> + in order to allow the JIT compiler to perform more aggressive optimizations on highly repeated code blocks. + </li> + + </ul> + + <p> + Other useful information: + </p> + + <ul> + <li> + <a href="https://stackoverflow.com/questions/23651486/netbeans-ide-scaling-on-windows-8-10">NetBeans IDE scaling on Windows 8/10</a>: + Change parameter in + <code style="color:darkgreen"><b>netbeans.conf</b></code> file (shown above): + <br /> + <code>-J-Dsun.java2d.dpiaware=true</code> + to + <code>-J-Dsun.java2d.dpiaware=false</code> + </li> + <li> + <i>Window > Debugging > Sources > (Right Click) Add Source Root</i> + <br/> + For example: <code style="color:darkgreen"><b>Xj3D Source</b></code> > <code style="color:darkgreen"><b>src/java</b></code> + </li> + <li> + <a href="http://rubenlaguna.com/wp/2008/02/22/attach-source-code-to-a-netbeans-library-wrapper-module">Attach source code to a NetBeans Library Wrapper Module</a> + </li> + </ul> + <!-- =========================================================== --> + + <h2> <a name="Projects">Projects</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + The Savage group maintains a large number of open-source projects. + </p> + + <ul> + <li> + <a href="https://savage.nps.edu/AuvWorkbench">Autonomous Unmanned Vehicle (AUV) Workbench</a> + and + <a href="https://savage.nps.edu/Savage/AuvWorkbench/AVCL/AVCL.html">Autonomous Vehicle Control Language (AVCL)</a> + </li> + <li> + TODO: AUVW mission archives + </li> + <li> + <a href="https://savage.nps.edu/X3D-Edit/#Open-DIS">Open DIS</a> + implementation of the + <a href="http://en.wikipedia.org/wiki/Distributed_Interactive_Simulation">IEEE Distributed Interactive Simulation (DIS) protocol</a> + in Java, Javascript, C++, C# and Objective C + (<a href="https://savage.nps.edu/X3D-Edit/Open-DIS-flyer.pdf">flyer</a>) + </li> + <li> + <a href="https://savage.nps.edu/Savage/Tools/SMAL/SMAL.html">SAVAGE Modeling and Analysis Language (SMAL)</a> + </li> + <li> + <a href="https://savage.nps.edu/svn/repos/nps/list/TrackDataConversionSuite">Track Data Conversion Suite</a> + and + <a href="https://savagedefense.nps.navy.mil/svn/repos/nps/list/TrackDataConversionSuiteDefense/trunk" title="restricted access" alt="restricted access">Track Data Conversion Suite Defense</a> + (FOUO access) + </li> + </ul> + + <p> + Extensible 3D (X3D) Graphics projects include the following: + </p> + + <ul> + <li> + <a href="http://www.web3d.org/x3d/content/examples/X3dResources.html#AuthoringSupport" target="_blank">X3D Authoring Support</a> + lists a variety of resources + </li> + <li> + <a href="http://x3d.svn.sourceforge.net/viewvc/x3d/www.web3d.org/x3d/tools/canonical" target="_blank">X3D Canonicalization (C14N)</a> + for normalized formatting and authentication support + </li> + <li> + <a href="http://www.web3d.org/specifications">X3D DTD and Schema Validation</a> + to ensure XML document validity + (<a href="http://x3d.svn.sourceforge.net/viewvc/x3d/www.web3d.org/x3d/tools/canonical" target="_blank">subversion source</a>). + <ul> + <li> + <a href="images/X3dDtdDocumentationGenerationNetbeans.png">NetBeans DOCTYPE documentation generation</a> + is used to produce + <a href="http://www.web3d.org/specifications/X3dDoctypeDocumentation3.2.html">X3D DOCTYPE documentation</a> + </li> + <li> + <a href="images/X3dSchemaDocumentationGenerationXmlspy.png">XML Spy schema documentation generation</a> + is used to produce + <a href="http://www.web3d.org/specifications/X3dSchemaDocumentation3.2/x3d-3.2.html">X3D Schema documentation</a> + </li> + </ul> + </li> + <li> + <a href="https://savage.nps.edu/X3D-Edit">X3D-Edit</a> + is an open-source authoring tool for simple error-free editing, authoring and validation of X3D scenes + </li> + <li> + <a href="http://www.web3d.org/x3d/content/examples/X3dResources.html#Examples">X3D Example Archives</a> + (includes + <a href="http://www.web3d.org/x3d/content/examples/X3dResources.html#Examples">links</a> + to version-control sources and other details) + <ul> + <li> + <a href="http://x3d.svn.sourceforge.net/viewvc/x3d/www.web3d.org/x3d/tools/CreateContentCatalog" target="_blank">Content Catalog Creation source</a> + uses metadata in the X3D model documents themselves to automatically build all the HTML pages + </li> + <li> + <a href="http://www.web3d.org/x3d/content/examples/Basic" target="_blank">Basic</a> examples + </li> + <li> + <a href="http://www.web3d.org/x3d/content/examples/ConformanceNist" target="_blank">ConformanceNist</a> examples + </li> + <li> + <a href="http://www.web3d.org/x3d/content/examples/Vrml2.0Sourcebook" target="_blank">VRML 2.0 Sourcebook</a> examples + </li> + <li> + <a href="https://savage.nps.edu/Savage" target="_blank">Savage</a> examples + </li> + <li> + <a href="https://SavageDefense.nps.navy.mil/SavageDefense" target="_blank" title="restricted access" alt="restricted access">SavageDefense</a> examples + have restricted access, + For Official Use Only (FOUO) + </li> + <li> + <a href="http://x3dgraphics.com/examples/X3dForWebAuthors" target="_blank">X3dForWebAuthors</a> examples + </li> + </ul> + </li> + <li> + <a href="http://www.web3d.org/x3d/tools/schematron/X3dSchematron.html" target="_blank">X3D Schematron</a> + rules for quality assurance of X3D scenes + (<a href="http://x3d.svn.sourceforge.net/viewvc/x3d/www.web3d.org/x3d/tools/schematron" target="_blank">subversion source</a>) + </li> + <li> + <a href="http://www.web3d.org/x3d/content/examples/X3dResources.html#Showcase" target="_blank">X3D Showcase</a> + a data DVD of X3D players, authoring tools and content + </li> + <li> + <a href="http://www.web3d.org/x3d/content/examples/X3dResources.html#Tooltips">X3D Tooltips</a> + provide hints for each node and field in X3D + (<a href="http://x3d.svn.sourceforge.net/viewvc/x3d/www.web3d.org/x3d/tooltips" target="_blank">subversion source</a>) + </li> + <li> + <a href="#Xj3D"> Xj3D viewer - NPS Branch</a> + includes NPS branch modifications to the Xj3D source + </li> + </ul> + + <!-- =========================================================== --> + + <h2> <a name="Security">Security</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + The NPS MOVES team maintains multiple servers. + We typically use secure <code style="color:darkgreen"><b>http<b>s</b>://</b></code> + rather than <code style="color:darkgreen"><b>http://</b></code> + for improved confidentiality between clients and servers. + </p> + + <p> + Note that https certificate details can be used for confirmation of site identity: + </p> + <ul> + <li> + <a href="images/SavageHttpsCertificate.png">Savage.nps.edu https certificate</a> + </li> + <li> + <a href="images/MmowgliHttpsCertificate.png">SavageDefense.nps.navy.mil https certificate</a> + now matches the + <br /> + <a href="images/MmowgliHttpsCertificate.png">mmowgli.nps.navy.mil https certificate</a> + </li> + <li> + <a href="images/MovesInstituteHttpsCertificate.png">movesInstitute.org https certificate</a> + </li> + <li> + <a href="images/X3d-earthHttpsCertificate.png">x3d-earth.nps.edu https certificate</a> + </li> + <li> + <a href="images/MmogHttpsCertificate.png">mmog.ern.nps.edu https certificate</a> (NPS intranet access only) + </li> + <li> + <a href="images/EosHttpsCertificate.png">eos.nps.edu https certificate</a> (Simkit, Viskit) + </li> + </ul> + + <p> + ssh/sftp public keys can be used for informal verification of site identity: + </p> + <ul> + <li> + <a href="images/Savage.SshSftpPublicKey.png">Savage.nps.edu https certificate</a> + </li> + <li> + Savage.nps.edu ssh/sftp RSA public key fingerprint is + <br /> + <code style="color:darkgreen"><b>d8:d2:77:4d:52:7c:75:65:21:e7:99:da:28:50:d9:7b</b></code> + + </li> + </ul> + + <p> + Browser companies still have not deployed DoD Certificate Authority (CA) links + (apparently because they want the government to pay them to do so). + Thus end users have to manually confirm each of the above certificates when first accessing these servers. + </p> + <p> + Nevertheless you can + <a href="http://dodpki.c3pki.chamb.disa.mil/rootca.html">install DOD CA certificates</a> locally + (as shown in this + <a href="images/DownloadingDodCertificatePermissionsFirefox.png">Firefox dialog</a> + or, with some difficulty, + <a href="images/DownloadingDodCertificatePermissionsInternetExplorer.png">Internet Explorer dialog</a>). + </p> + <p> + If server keys are changed, you may need to clear previously cached values. + Cached certificate values can be found in directory <code style="color:darkgreen"><b>~/.ssh/known_hosts</b></code> + or else invoke <code style="color:darkgreen"><b>man ssh</b></code> for further details. + </p> + + + <!-- =========================================================== --> + + <h2> <a name="Servers">Servers</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + The NPS MOVES Savage team maintains multiple servers. + Issue tracking is maintained at + <a href="https://www.movesinstitute.org/bugzilla">https://www.movesinstitute.org/bugzilla</a> + </p> + + <ul> + <li> + <a href="https://savage.nps.edu/Savage">https://savage.nps.edu/Savage</a> + X3D Archive + (<a href="https://mmog.ern.nps.edu/awstats/awstats.pl?config=savage.nps.edu" target="_blank">usage statistics</a>) + </li> + <li> + <a href="https://SavageDefense.nps.navy.mil/SavageDefense" title="restricted access" alt="restricted access">https://SavageDefense.nps.navy.mil/SavageDefense</a> + X3D Archive + has restricted access, + For Official Use Only (FOUO) + (<a href="https://mmog.ern.nps.edu/awstats/awstats.pl?config=SavageDefense.nps.navy.mil" target="_blank" title="restricted access" alt="restricted access">usage statistics</a>) + </li> + <li> + <a href="https://www.movesinstitute.org">https://www.movesinstitute.org</a> + Modeling, Virtual Environments and Simulation (MOVES) Institute + (<a href="https://mmog.ern.nps.edu/awstats/awstats.pl?config=movesinstitute.org" target="_blank">usage statistics</a>) + </li> + <li> + <a href="http://mmowgli.nps.edu">http://mmowgli.nps.edu</a> + Massive Multiplayer Online Wargame Leveraging the Internet (MMOWGLI) + <!-- Akamai-zed + (<a href="https://mmog.ern.nps.edu/awstats/awstats.pl?config=mmowgli.nps.edu" target="_blank">usage statistics</a>) + --> + </li> + <li> + <a href="http://mmowgli.nps.edu">http://web.mmowgli.nps.edu</a> image server + (<a href="https://mmog.ern.nps.edu/awstats/awstats.pl?config=web.mmowgli.nps.edu" target="_blank">usage statistics</a>) + </li> + <!-- TODO also usage stats for test.mmowgli.nps.edu and portal.mmowgli.nps.edu --> + <li> + <a href="http://oam.nps.edu">http://oam.nps.edu</a> + Open Aerial Map (OAM) + <!-- + (<a href="https://mmog.ern.nps.edu/awstats/awstats.pl?config=oam.nps.edu" target="_blank">usage statistics</a>) + --> + </li> + <li> + <a href="https://x3d-earth.nps.edu">https://x3d-earth.nps.edu</a> X3D Earth server + <!-- + (<a href="https://mmog.ern.nps.edu/awstats/awstats.pl?config=x3d-earth.nps.edu" target="_blank">usage statistics</a>) + --> + </li> + <li> + <a href="https://savage.nps.edu/manager/html">https://savage.nps.edu/manager/html</a> + Tomcat manager (used by + <a href="https://savage.nps.edu/X3dValidator">X3D Validator</a> + and other tools) + (TODO restrict to NPS intranet access?) + </li> + <li> + <a href="https://mmog.ern.nps.edu">https://mmog.ern.nps.edu</a> + (<a href="https://mmog.ern.nps.edu/awstats/awstats.pl?config=mmog.ern.nps.edu" target="_blank">usage statistics</a>) + (NPS intranet access) + </li> + <!-- TODO + <li> + <a href="https://mmowgli.nps.edu">https://mmowgli.nps.edu</a> CentOS Linux Tomcat cluster for high availability + </li> + --> + </ul> +<!-- + (<a href="https://savage.nps.edu/usage" target="_blank">usage statistics</a>) + (<a href="https://SavageDefense.nps.navy.mil/usage" target="_blank" title="restricted access" alt="restricted access">usage statistics</a>) + (<a href="https://www.movesinstitute.org/usage" target="_blank">usage statistics</a>) + (<a href="http://mmowgli.nps.edu/usage" target="_blank">usage statistics</a>) + (<a href="http://oam.nps.edu/usage" target="_blank">usage statistics</a>) + + + <p> + Usage statistics + are generated using + <a href="http://www.mrunix.net/webalizer">Webalizer</a> + with the + <a href="http://httpd.apache.org">Apache</a> + http server. + </p> +--> + <p> + Mailing lists and hypermail archives: + </p> + <ul> + <li> + <a href="https://www.movesinstitute.org/mailman/listinfo">MOVES Mailing Lists</a> + </li> + <li> + Trouble reports: + please contact <a href="mailto:mailman@www.movesinstitute.org?subject=mailman%20feedback%20">mailman@www.movesinstitute.org</a> + </li> + <li> + <a href="http://www.gnu.org/software/mailman">Mailman</a> + server software + (<a href="http://www.gnu.org/software/mailman/docs.html">documentation</a>, + <a href="http://www.gnu.org/software/mailman/faq.html">FAQ</a>, + <a href="http://wiki.list.org/display/COM/Home">wiki</a>) + </li> + </ul> + + <p> + Department of Defense Web Policy: + <a href="http://www.defense.gov/webmasters/policy/dod_web_policy_12071998_with_amendments_and_corrections.html">Web Site Administration Policies & Procedures</a> + </p> + + <p> + Additional information: + </p> + <ul> + <li> + <a href="mailto:mcgredo@nps.edu(Don%20McGregor),brutzman@nps.edu(Don%20Brutzman)?subject=Savage%20hserver%20help%20request">Savage server help request</a> + </li> + <li> + <a href="mailto:brutzman@nps.edu(Don%20Brutzman),mcgredo@nps.edu(Don%20McGregor),?subject=Savage.nps.edu%20password%20request">savage.nps.edu password request</a> + </li> + <li> + <a href="http://www.web3d.org/x3d/learn/mimetypes">Configuring a web server for X3D MIME types</a> + </li> + <li> + <a href="http://www.bram.us/2007/05/25/office-2007-mime-types-for-iis/">MIME types for Microsoft Office</a> + (also + <a href="http://technet.microsoft.com/en-us/library/ee309278%28office.12%29.aspx">here</a>) + </li> + </ul> + + <!-- =========================================================== --> + + <h2> <a name="Subversion">Subversion</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + Subversion is used for version control of Savage projects and files. + Support for subversion is built into NetBeans and X3D-Edit. + </p> + <p> + NPS subversion servers: + </p> + <ul> + <li> + <a href="https://savage.nps.edu/subversion.html">https://savage.nps.edu/subversion.html</a> + (with + <a href="https://savage.nps.edu/svn/repos/list">sventon browsing</a>) + has open access + </li> + <li> + <a href="https://SavageDefense.nps.navy.mil/subversion.html" title="restricted access" alt="restricted access">https://SavageDefense.nps.navy.mil/subversion.html</a> + (with + <a href="https://SavageDefense.nps.navy.mil/svn/repos/list" title="restricted access" alt="restricted access">sventon browsing</a>) + has restricted access, + For Official Use Only (FOUO) + </li> + <li> + The + <a href="#DES">Discrete Event Simulation (DES)</a> + section of this page includes information about subversion checkout for + Simkit, Viskit, Diskit, SavageStudio and the ViskitModels behavior libraries. + </li> + <li> + <a href="mailto:brutzman@nps.edu(Don%20Brutzman),mcgredo@nps.edu(Don%20McGregor),?subject=Savage%20password%20request">Savage password request</a> + </li> + <li> + <a href="https://www.movesinstitute.org/bugzilla">XMSF Issue Tracker</a> + for + <a href="https://www.movesinstitute.org/bugzilla/buglist.cgi?quicksearch=Savage">Savage bug reports</a> + and feature suggestions + </li> + </ul> + <p> + Student subversion for course work (NPS intranet access only): + </p> + + <ul> + <li> + <a href="https://mmog.ern.nps.edu/svn/mv3204/Mv3204Mv4205SubversionControl.pdf">MV3204, MV4205 Student Subversion Archive</a> directions + </li> + <li> + <a href="https://mmog.ern.nps.edu/svn/mv3204">https://mmog.ern.nps.edu/svn/mv3204</a> + </li> + <li> + <a href="https://mmog.ern.nps.edu/svn/mv4205">https://mmog.ern.nps.edu/svn/mv4205</a> + </li> + <li> + <a href="https://mmog.ern.nps.edu/svn/x3dPastStudents">https://mmog.ern.nps.edu/svn/x3dPastStudents</a> + </li> + </ul> + <p> + Tutorial and resource information includes: + </p> + + <ul> + <li> + <a href="https://www.movesinstitute.org/~mcgredo/primers/svn.ppt">Subversion primer</a> + by Don McGregor + </li> + <li> + <a href="http://subversion.apache.org">Apache Subversion</a> + community home, including + <a href="http://subversion.apache.org/docs">documentation</a> + </li> + <li> + <a href="http://svnbook.red-bean.com/">Version Control With Subversion</a> + is a complete manual for Subversion, in PDF and HTML formats + </li> + <li> + <a href="http://netbeans.org/kb/docs/ide/subversion.html">Guided Tour of Subversion with NetBeans</a> + </li> + <li> + <a href="http://www.tortoisesvn.net/downloads.html">TortoiseSVN client</a> + integrates with the file browsers + for Windows, OS X, and Linux + </li> + <li> + <a href="http://www.open.collab.net/downloads/subversion">Collabnet client</a> + works via command line + (<a href="http://help.collab.net/index.jsp?topic=/faq/editorcommandline.html">setting environment variable for command line</a>) + </li> + <li> + <a href="http://nedbatchelder.com/text/quicksvnbranch.html">Subversion branching quick start</a> + by Ned Batchelder + </li> + <li> + <a href="http://wiki.sventon.org">Sventon</a> + is our interface for Web-based subversion browsing + (<a href="http://wiki.sventon.org/index.php?n=Main.FAQ">FAQ</a>, + <a href="http://wiki.sventon.org">wiki</a>) + </li> + </ul> + + <p> + Some advanced subversion questions: + </p> + + <ul> + <li> + <i> + I checked in an HTML file, but when I view it in my web browser, + it shows up as source text rather than being rendered as a web page. + </i> + <br /> + This is probably the correct behavior for a file being retrieved + as source code from a version-control server. The + purpose of a version-control system is to give you a view of the + source code; it is not to present the visual content. If you want to see + rendered HTML, you should go to the regular website address for that page. + Developers often manage all this by keeping website content under subversion control, + then using sftp to place the source code into a directory on the Apache server + which serves the actual content. + <br /> + + </li> + <li> + <i> + How can I make a copy of the + source code without all of the internal ".svn" subdirectories that are used by + subversion for housekeeping? + </i> + <br /> + Use the subversion <b>export</b> command: + <code style="color:darkgreen"><b>svn export [RepositoryURL]</b></code> + <br /> + + </li> + <li> + <i> + I have checked out a project from subversion but cannot check changes back in. Why not? + </i> + <ul> + <li> + Ensure that you checked out the project with an authorized username. + If necessary, convince the project administrator that you deserve to get permissions as a project committer + (which is a serious responsibility). + </li> + <li> + If you checked out a project using http: protocol, you may need to <code>relocate</code> it using the https: protocol in order to meet security requirements for writing changes. + Use the subversion <b>relocate</b> command: + <code style="color:darkgreen"><b>svn help relocate</b></code> + </li> + </ul> + + </li> + <li> + <i> + How do I set up a new subversion server with Apache? + </i> + <br></br> + If you want to set up your own Subversion server, a how-to for doing + this with apache on Linux is on the + <a href="http://www.howtoforge.com/apache_subversion_repository">HowtoForge tutorial site</a>. + <br></br> + Most developers don't need to do this and simply use an already-existing version-control server. + </li> + </ul> + <!-- =========================================================== --> + + <h2> <a name="telnet">telnet</a> Network Protocol + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + The + <a href="https://en.wikipedia.org/wiki/Telnet"></a><code>telnet</code> + protocol is widely used and provides a standard way of interfacing terminal-oriented devices and processes. + Given that security vulnerabilities may exist if used surreptitiously, + modern operating systems typically require specific configuration action to enable it. + </p> + <ul> + <li> + Authoritative reference: + <a href="https://tools.ietf.org/html/rfc854">RFC 854, TELNET PROTOCOL SPECIFICATION</a>, + default port 23. + </li> + <li> + System configuration changes typically require administrator permissions. + </li> + <li> + <em>Windows 7:</em> + <i>Control Panel > Turn Windows features on or off > + <a href="images/Windows7ControlPanelTelnetClientEnabled.png">Windows features</a></i> + <!-- https://kb.ctera.com/article/how-to-open-a-telnet-session-on-windows-7-or-windows-8-os-16.html --> + </li> + <li> + <em>Windows 10:</em> + <i>Settings > Turn Windows features on or off > + <a href="images/Windows10SettingsTelnetClientEnabled.png">Windows features</a></i> + </li> + <li> + <em>Cygwin:</em> + install the <a href="#inetutils">inetutils</a> package for + <code>ssh</code> and <code>telnet</code>. + (Of note is that <code>netcat</code> is also included in Cygwin, but is quickly scrubbed by NPS antivirus routines for Windows.) + </li> + <li> + <em>macOS:</em> + preferred tool is + <code>nc (netcat)</code> which is functionally equivalent to <code>ssh</code> + and can be invoked from inside a terminal process. + Many ad hoc tools also exist (with lesser security) such as + <a href="https://brew.sh" target="_blank">brew</a>. + </li> + </ul> + + <!-- =========================================================== --> + + <h2> <a name="Time">Time</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + Numerous simulations and network protocols depend on accurate time adjustment. + </p> + <ul> + <li> + NPS time servers for NTP are time.nps.edu matrix.nps.edu and matrix.nps.edu and stargate.nps.edu. + NPS generally disallows access to NTP servers off campus. + n.b. Subverting NTP servers is a popular element of attacks, because it affects the timestamp on logs. + + </li> + <li> + NPS wiki: + <a href="https://wiki.nps.edu/display/TAC/Time+server">Time server</a> + guidance (for Mac at least). + </li> + <li> + <a href="http://www.usno.navy.mil/USNO/time">U.S. Naval Observatory (USNO) Precise Time</a> + and + <a href="http://www.usno.navy.mil/USNO/time/ntp">Network Time Protocol (NTP)</a>. + </li> + <li> + <a href="http://www.ntp.org">Network Time Foundation (ntp.org)</a> + includes information about a variety of time-related protocols and also software downloads. + </li> + </ul> + + <!-- =========================================================== --> + + <h2> <a name="Tools">Tools</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + <a name="Altova">The</a> + <a href="http://www.altova.com">Altova XML tools</a> + (XMLSpy, Diffdog, etc.) + provide outstanding support for XML development. + </p> + <ul> + <li> + MOVES has a + <a href="mailto:brutzman%20at%20nps.edu%20(Don%20Brutzman)?subject=feedback:%20Altova%20developers%20license%20request">full developers license</a> + for academic use by students and staff. + </li> + <li> + XML Spy project files help organize large sets of XML documents + <ul> + <li> + <a href="http://www.web3d.org/specifications/X3dSchemaDtd-XmlSpyProject.spp">X3D schemas and DTDs</a> + </li> + <li> + Project catalogs for X3D example archives + are autogenerated as part of ContentCatalogCreation: + <br /> + <a href="http://www.web3d.org/x3d/content/examples/Basic/ContentCatalogBasic.spp" target="_blank">Basic</a>, + <a href="http://www.web3d.org/x3d/content/examples/ConformanceNist/ContentCatalogConformanceNist.spp" target="_blank">ConformanceNist</a>, + <a href="http://www.web3d.org/x3d/content/examples/Vrml2.0Sourcebook/ContentCatalogVrml2.0Sourcebook.spp" target="_blank">Vrml 2.0 Sourcebook</a>, + <a href="https://savage.nps.edu/Savage/ContentCatalogSavage.spp" target="_blank">Savage</a>, + <a href="https://SavageDefense.nps.navy.mil/SavageDefense/ContentCatalogSavageDefense.spp" target="_blank" title="restricted access" alt="restricted access">SavageDefense</a> (FOUO access) and + <a href="http://x3dgraphics.com/examples/X3dForWebAuthors/ContentCatalogX3dForWebAuthors.spp" target="_blank">X3dForWebAuthors</a> + </li> + </ul> + </li> + </ul> + + <p> + <a href="https://www.nps.edu/Technology/SoftwareLib/index.htm">NPS Downloadable Software</a> + and + <!-- TODO check and test iago url --> + <a href="\\iago\c$">NPS MOVES IAGO software archive</a> + (NPS access only, password protected) + provide a variety of locally licensed resources. + </p> + + <p> + The following additional tools are also useful. + </p> + + <ul> + <li> + <a href="#Cygwin">Cygwin</a> Unix for Windows provides command-line Unix commands on Windows systems + </li> + <li> + <a href="chat.html#Elluminate">Elluminate</a> + is a desktop-sharing system for meetings with remote participation + </li> + <li> + <a href="http://www.mozilla.com">Firefox</a> + Web browser and + <a href="http://www.mozillamessaging.com/en-US/thunderbird">Thunderbird</a> + email client + by Mozilla + </li> + <li> + <a href="http://www.gimp.org">GNU Image Manipulation Program (GIMP)</a> for image editing + </li> + <li> + <a href="http://www.htmlkit.com">HTML-Kit</a> advanced HTML editor by Chami + </li> + <li> + <a href="http://protege.stanford.edu">Protege</a> + ontology editor and knowledge-base framework for Semantic Web + </li> + <li> + <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html">Putty</a> + ssh and sftp + </li> + <li> + <a href="http://www.apple.com/quicktime/pro">Quicktime Pro</a> by Apple ($$) for simple movie editing + </li> + <li> + <a href="http://www.ultraedit.com">UltraEdit text editor</a> + and + <a href="http://www.ultracompare.com">UltraCompare file comparison</a> + </li> + <li> + <a href="http://windirstat.info">WinDirStat</a> is an open-source disk-usage statistics viewer and cleanup tool for Microsoft Windows. + </li> + <li> + <a href="http://winscp.net">WinSCP</a> is an open-source free SFTP, SCP and FTP client for Windows. + </li> + </ul> + + <!-- =========================================================== --> + + <h2> <a name="Wikis">Wiki sites</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + Wikis are an excellent way to collaboratively build websites online using a simple syntax. + We typically use the same + <a href="http://www.wikimedia.org">Wikimedia</a> + server software used by + <a href="http://www.wikimedia.org">Wikipedia</a>. + </p> + + <ul> + <li> + <a href="https://wiki.nps.edu">NPS wiki</a> + </li> + <li> + <a href="https://www.movesinstitute.org/wiki">https://www.movesinstitute.org/wiki</a> + <ul> + <li> + <a href="https://www.movesinstitute.org/wiki/index.php/Sweet_Spot_Project_ADL_SCORM_S1000D_X3D">Sweet Spot Project ADL SCORM S1000D X3D</a> + </li> + </ul> + </li> + <li> + <a href="https://savagedefense.nps.navy.mil/developers.html#Wikis" title="restricted access" alt="restricted access">SavageDefense wiki</a> (restricted FOUO access) + </li> + <li> + <a href="http://simkit.movesinstitute.org">Simkit Liferay Server</a> + </li> + </ul> + + <!-- =========================================================== --> + + <h2> <a name="Writing">Writing</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + Writing up our accomplishments, in theses and reports, is crucially important. + </p> + + <ul> + <li> + <a href="https://my.nps.edu/web/gwc">NPS Graduate Writing Center</a> + </li> + <li> + <a href="http://www.dtic.mil/whs/directives/plainlanguage.html">Official DoD Plain Language Website</a> + </li> + <li> + <a href="http://www.bloomberg.com/graphics/2015-paul-ford-what-is-code">What is Code?</a> + by Paul Ford, Business Week, 11 June 2015 + (also + <a href="http://www.bloomberg.com/news/videos/2015-06-12/-what-is-code-charlie-rose-06-12-">interview video</a>) + </li> + </ul> + + <!-- =========================================================== --> + + <h2> <a name="Xj3D">Xj3D viewer</a>: NPS source + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + Xj3D is an open-source Java viewer and application codebase for X3D graphics scenes. + </p> + + <ul> + <li> + NPS maintains and uses a public version of the Xj3D source, periodically synchronized with the original Xj3D.org project, to test new developments and bug fixes. + </li> + <li> + We are happy to work together with anyone who wants to help provide full support for the X3D Graphics standard in Xj3D. + </li> + <li> + The + <a href="http://web3d.org/wiki/index.php/Xj3D_Evolution">Xj3D Evolution</a> + strategy describes how + Web3D working-group stakeholders are considering and implementing further improvements to Xj3D. + </li> + <li> + Available: + <a href="https://sourceforge.net/projects/xj3d">Xj3D Sourceforge</a> + project is now established with a full history of changes included. + We are refactoring past and future branches through + formal renumbering and release. + <ul> + <li> + <b>Xj3D version 2.1</b> is the most up-to-date build, maintained by NPS as the + <a href="https://sourceforge.net/p/xj3d/code/HEAD/tree/trunk/">Xj3D trunk</a>. + </li> + <li> + <b>Xj3D version 2.0</b> is a snapshot of Yumetech-produced version at time of migration, August 2014, + available at + <a href="https://sourceforge.net/p/xj3d/code/HEAD/tree/branches/yumetechTrunk">branch/yumetechTrunk</a>. + </li> + <li> + Future version releases will integrate other + <a href="http://www.web3d.org/wiki/index.php/Xj3D_Evolution#Merge_orphaned_Xj3D_codebases">previously orphaned Xj3D builds</a>. + </li> + </ul> + </li> + <li> + We use the long-running + <a href="http://web3d.org/mailman/listinfo/source_web3d.org">source @ web3d.org</a> mailing list for Xj3D source code discussions + </li> + <li> + Xj3D source code version-control notifications: + <ul> + <li> + Mailed automatically to SourceForge Xj3D developers. + Also publicly visible at + <a href="https://sourceforge.net/p/xj3d/code/commit_browser">Browse Commits</a> + </li> + <li> + (Through October 2014) + <a href="http://web3d.org/mailman/listinfo/source_x3d_cvs_web3d.org">source-x3d-cvs AT web3d.org</a> + </li> + </ul> + </li> + <li> + Current releases use the open-source + <a href="https://jogamp.org">Jogamp</a> high performance Java libraries for 3D Graphics, Multimedia and Processing. + These include Java OpenGL (JOGL) rendering + and JOAL spatialized audio. + Xj3D can run on multiple operating systems + (Windows MacOSX Linux Solaris). + </li> + <li> + <a href="http://www.web3d.org/specifications/X3dNodeInventoryComparison.xlsx">X3D Node Inventory Comparison</a> + (<a href="http://www.web3d.org/specifications/X3dNodeInventoryComparison.pdf">.pdf</a>) + shows implementation coverage of the X3D Abstract Specification. + </li> + </ul> + + <p> + Applications using Xj3D include: + <ul> + <li> + <a href="https://savage.nps.edu/X3D-Edit">X3D-Edit</a>, + an open-source Extensible 3D (X3D) Graphics authoring tool for simple error-free editing, authoring and validation of X3D scenes. + </li> + <li> + Build processes for compressing and taking offline screen snapshots + (<a href="http://www.web3d.org/x3d-resources/content/examples/Vrml2.0Sourcebook/Siggraph98Course/viewpointSlideshow.html">example</a>) + for the thousands of scenes in the + <a href="http://www.web3d.org/x3d/content/examples/X3dResources.html#Examples">X3D Example Archives</a> + </li> + <li> + <a href="http://www.web3d.org/case-studies/structure-and-form-analysis-system-safas/e-learning-and-e-design">Structure and Form Analysis System (SAFAS)</a> + by Virginia Tech (VT), + a curriculum-support application for Architecture students learning Structural Engineering. + </li> + <li> + <a href="https://savage.nps.edu/AuvWorkbench">NPS AUV Workbench</a>, + experimental open-source software that supports physics-based mission rehearsal, + real-time task-level control of robot missions, and replay of recorded results + in support of autonomous unmanned underwater, surface and air vehicles. + </li> + <li> + <a href="#DES">Viskit</a> + and + <a href="#DES">SavageStudio</a>, + a drag+drop scenario-authoring tool that uses the Savage model archives to generate Viskit discrete-event simulation (DES) scenarios that are visualized using Xj3D. + </li> + </ul> + </p> + + <!-- ============================== --> + <p> + <i>Recommended for developers.</i> + The most up-to-date Xj3D code repository is now available at: + </p> + + <ul> + <li> + Subversion root directory + <code style="color:darkgreen"><b><a href="https://svn.code.sf.net/p/xj3d/code/trunk">https://svn.code.sf.net/p/xj3d/code/trunk</a></b></code> + </li> + <li> + Documentation is found in the + <a href="https://sourceforge.net/p/xj3d/code/HEAD/tree/trunk/docs">docs</a> directory<!--, + <a href="https://sourceforge.net/p/xj3d/code/HEAD/tree/trunk/docs/HowToInstall.html">NPS build instructions: How To Install</a> + --> + and + <a href="https://sourceforge.net/p/xj3d/code/HEAD/tree/trunk/docs/Xj3D-Codebase-ChangeLog-NPS.txt">Change Log of modifications in NPS build</a> + by Terry Norbraten + (<a href="mailto:tdnorbra%20at%20nps.edu%20(Terry%20Norbraten)?subject=feedback:%20Xj3D"><i>tdnorbra at nps.edu</i></a>) + </li> + <li> + <!-- These installers and jars are updated nightly by Jenkins build tasks --> + Additional resources include + nightly build + <a href="https://savage.nps.edu/Xj3D.nps/izpackInstallers">installers</a>, + <a href="https://savage.nps.edu/Xj3D.nps/jars">jar files</a>, + <a href="https://savage.nps.edu/Xj3D.nps/docs/arch/overview.html">documentation</a> + and + <a href="https://savage.nps.edu/Xj3D.nps/docs/javadoc">javadoc</a> + are produced by the + <a href="https://savage.nps.edu/jenkins/job/Xj3dSourceNpsBranch">Xj3dSourceNpsBranch</a> + project on the + <a href="https://savage.nps.edu/jenkins/">Savage jenkins server</a>. + </li> + </ul> + + <!-- ============================== --> + <p> + Prior links for the Xj3D code repository supporting the long-running NPS branch: + </p> + + <ul> + <li> + Subversion root directory + <a href="http://svn.xj3d.org/xj3d_code/branches/NPS">http://svn.xj3d.org/xj3d_code/branches/NPS</a> + </li> + <li> + NPS build instructions + <a href="http://svn.xj3d.org/xj3d_code/branches/NPS/README">README</a> + and + <a href="http://svn.xj3d.org/xj3d_code/branches/NPS/docs/Xj3D-Codebase-ChangeLog-NPS.txt">Change Log of modifications in NPS build</a> + by Terry Norbraten + (<a href="mailto:tdnorbra%20at%20nps.edu%20(Terry%20Norbraten)?subject=feedback:%20NPS%20Xj3D.nps%20change%20log%20"><i>tdnorbra at nps.edu</i></a>) + </li> + <li> + The NPS source branch provides Netbeans project support and strives to meet best practices for Ant. + If you are developing new code, be sure to use the proper + <a href="http://svn.xj3d.org/xj3d_code/branches/NPS/build.xml">build.xml</a> + from the NPS branch. + This is probably the only file in the NPS source branch that remains quite different than + the corresponding file in the trunk. + </li> + </ul> + + <!-- ============================== --> + <p> + Historic links for the original Xj3D trunk supports version 1.0 (released 15 April 2006). + </p> + + <ul> + <li> + <a href="http://www.Xj3D.org">Xj3D home page</a> + by individuals from + <a href="http://www.yumetech.com">Yumetech</a> + is the primary site for the trunk. + </li> + <li> + Latest Xj3D downloads are found on the + <a href="http://www.xj3d.org/snapshots.html">Development Snapshots</a> page. + </li> + <li> + <a href="http://www.xj3d.org/svn.html">Xj3D subversion description</a> + and + subversion root directory + <code style="color:darkgreen"><b><a href="http://svn.xj3d.org/xj3d_code">http://svn.xj3d.org/xj3d_code</a></b></code> + </li> + <li> + A huge number of improvements have been made over the years, but + original development of version 2.0 has not yet resulted in a formal release. + </li> + </ul> + + <!-- ============================== --> + + <p> + Also available: + </p> + <ul> + <li> + <a href="http://bugzilla.xj3d.org/">Xj3D bug list</a> by Yumetech + </li> + <li> + <a href="https://www.movesinstitute.org/bugzilla/buglist.cgi?quicksearch=xj3d">XMSF Issue Tracker for Xj3D</a> + by NPS + </li> + <li> + Aniviza + <a href="http://www.aniviza.com/svn/listing.php">attempted extensions to Xj3D</a> + for NASA WorldWind + </li> + </ul> + + + <!-- =========================================================== --> + + <h2> <a name="XML">XML</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + The Extensible Markup Language (XML) is a simple text-based format for representing structured information: + documents, data, configuration, books, transactions, invoices, and much more. + It was derived from an older standard format called SGML (ISO 8879), in order to be more suitable for Web use. + </p> + + <ul> + <li> + <a href="http://www.w3.org">World Wide Web Consortium (W3C)</a> + is the open standards development organization whose Recommendations govern XML. + <ul> + <li> + <a href="http://www.w3.org/XML/1999/XML-in-10-points">XML in 10 points</a> + provides a concise summary of the many capabilities possible with XML. + <ul> + <li> + Proposed addition to point 4: + <br/><i> +Efficient XML Interchange (EXI) further improves these capabilities. +Smaller compression enables bigger data on the Web, while +faster decompression saves both memory and power consumption +which can lead to the Internet of Things becoming the Web of Things. </i> + </li> + </ul> + </li> + <li> + <a href="http://www.w3.org/XML">Extensible Markup Language (XML)</a> + </li> + <li> + <a href="http://www.w3.org/XML/EXI">Efficient XML Interchange (EXI) working group</a>, + related + + and NPS work on + <a href="https://wiki.nps.edu/display/NOW/Efficient+Messaging">Efficient Messaging</a> + </li> + <li> + <a href="http://www.w3.org/standards/xml/core">XML Essentials</a> + </li> + <li> + <a href="http://www.w3.org/standards/xml">XML Technology</a> + </li> + </ul> + </li> + <li> + <a href="http://google-styleguide.googlecode.com/svn/trunk/xmlstyle.html">Google XML Document Format Style Guide</a> + </li> + </ul> + + + + <!-- =========================================================== --> + + <h2> <a name="XmlCatalog">XML Catalog</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <p> + An XML Catalog provides mappings from online URL or generic URI addresses + to specific files on the local machine. This allows tools to refer to + XML DTDs, schemas etc. to accomplish XML validation without being connected online. + </p> + + <ul> + <li> + <a href="http://www.oasis-open.org/committees/download.php/14810/xml-catalogs.pdf">XML Catalogs v1.1</a> + by the + <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=entity">OASIS Entity Resolution Technical Committee (TC)</a> + </li> + <li> + <a href="http://www.sagehill.net/docbookxsl/UseCatalog.html">How to use a catalog file</a> + in + <a href="http://www.sagehill.net/docbookxsl/Catalogs.html">Chapter 5. XML catalogs</a> + from + <a href="http://www.sagehill.net/docbookxsl">DocBook XSL: The Complete Guide</a> + (Fourth Edition) by Bob Stayton + </li> + </ul> + + <p> + <a href="http://www.web3d.org/specifications/OasisXmlCatalogX3D.xml">OasisXmlCatalogX3D.xml</a> + provides schema and doctype address resolution for typical offline validation of X3D scenes. + </p> + + <ul> + <li> + <a href="http://x3d.svn.sourceforge.net/viewvc/x3d/www.web3d.org/x3d/tools/CreateContentCatalog/CatalogManager.properties">CatalogManager.properties</a> + </li> + <li> + The Apache resolver is available at + <a href="http://www.apache.org/dist/xerces/xml-commons/">xml-commons-resolver-latest.zip</a> + </li> + </ul> + + <!-- =========================================================== --> + + <hr /> + + <h2><a name="Contact">Contact</a> + <a href="#"> + <!-- width="83" height="100" --> + <img src="images/SavageLogo.png" width="42" height="50" border="0" title="to top" alt="to top" align="right"/> + </a> + </h2> + + <blockquote> + Questions, suggestions and comments about these resources are welcome. + Please send them to + <a href="http://faculty.nps.edu/brutzman" target="_blank">Don Brutzman</a> + (<a href="mailto:brutzman%20at%20nps.edu%20(Don%20Brutzman)?subject=feedback:%20Savage%20Developers%20"><i>brutzman at nps.edu</i></a>) + </blockquote> + + <blockquote> + Available online at + <a href="https://savage.nps.edu/developers.html">https://savage.nps.edu/developers.html</a> + </blockquote> + <blockquote> + Revised 1 July 2019. + </blockquote> + + <p> + <a href="http://www.nps.navy.mil/disclaimer" target="disclaimer">Official disclaimer</a>: + <br /> + <q> +Material contained herein is made available for the purpose of +peer review and discussion and does not necessarily reflect the +views of the Department of the Navy or the Department of Defense. + </q> + </p> + + </body> +</html> -- GitLab