<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://vrl.cs.brown.edu/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Brad+Berg</id>
	<title>VrlWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://vrl.cs.brown.edu/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Brad+Berg"/>
	<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php/Special:Contributions/Brad_Berg"/>
	<updated>2026-04-20T04:39:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Software_tests&amp;diff=5923</id>
		<title>Software tests</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Software_tests&amp;diff=5923"/>
		<updated>2012-04-04T15:25:43Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Running Tests ==&lt;br /&gt;
&lt;br /&gt;
The test driver is installed on all CS department machines.  A configuration file is used to launch tests and mail results to subscribers.  You can subscribe to a test summary or receive notices when select tests fail.  The default configuration file is:  &amp;lt;tt&amp;gt;$G/common/build/site/test.platform.cfg&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to perform a private test run and suppress mail notifications run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; /systest/bin/vrl_fast  -noemail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run a set of select tests and specify alternative mail notifications (usually to yourself) you can create and run using a custom configuration file.  Make a private copy of the default configuration file and modify it.  The comments in the default configuration file describe the format.  Then run using the new configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; /systest/bin/vrl_fast  -config  &amp;lt;My work area&amp;gt;/&amp;lt;Custom configuration&amp;gt;.cfg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an example of a small custom configuration file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#########################  test.platform.fast.cfg  #############################&lt;br /&gt;
#&lt;br /&gt;
Developer:  you@cs.brown.edu&lt;br /&gt;
Summary:    none&lt;br /&gt;
&lt;br /&gt;
nag      none  linux common/build/valid/test.project.py common/include/nag&lt;br /&gt;
libnr    none  linux common/build/valid/test.project.py common/gg/libnr&lt;br /&gt;
libgg    none  linux common/build/valid/test.project.py common/gg/libgg&lt;br /&gt;
libds    none  linux common/build/valid/test.project.py common/gg/libds&lt;br /&gt;
libggpp  none  linux common/build/valid/test.project.py common/gg/libggpp&lt;br /&gt;
libnum   none  linux common/build/valid/test.project.py common/gg/libnum&lt;br /&gt;
libcff2  none  linux common/build/valid/test.project.py common/gg/libcff2&lt;br /&gt;
libmri   none  linux common/build/valid/test.project.py common/mri/libmri&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
#######################  end  test.platform.fast.cfg  ##########################&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Writing Tests ==&lt;br /&gt;
&lt;br /&gt;
It is a good idea to provide one or more quick tests that can be included in the test suite we run each night.  Tests need to run in batch mode and simply return a zero status if successful and non-zero if they fail.&lt;br /&gt;
&lt;br /&gt;
Create a make test target that runs a test that returns a zero status for success and a non-zero status for an error.  The test should be able to run as a batch job (not interactive).  Projects with multiple tests can use a target named &amp;lt;tt&amp;gt;test.&amp;lt;name&amp;gt;&amp;lt;/tt&amp;gt; for each individual test and a target &amp;lt;tt&amp;gt;alltest&amp;lt;/tt&amp;gt; to run them all.&lt;br /&gt;
&lt;br /&gt;
Test targets should limit themselves to commands supported on both linux and Windows or use Python scripts.  Currently only the &amp;quot;rm -f&amp;quot; and &amp;quot;diff&amp;quot; commands are supported.  As always, absolute path names are to be avoided.&lt;br /&gt;
&lt;br /&gt;
Large raw input files such as MRI images should be copied to a directory named &amp;lt;tt&amp;gt;$GROOT/data/&amp;lt;project&amp;gt;/test/&amp;lt;/tt&amp;gt;.  Cooked data and test output should go to a test directory inside the project directory.  Tests should clear output files from prior runs to avoid false positives.  Regression tests that use diff to check output should comapare against a file named:  &amp;lt;tt&amp;gt;&amp;lt;root name&amp;gt;_base.&amp;lt;suffix&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test System Maintenance ==&lt;br /&gt;
&lt;br /&gt;
THe directories and files manages by tStaff are:&lt;br /&gt;
&lt;br /&gt;
 /tstaff/bin/regtest   # tStaff manages the driver.&lt;br /&gt;
    /systest/bin/*     # Run only the links; excludes other files.&lt;br /&gt;
&lt;br /&gt;
 /systest/bin/:   Changes are reflected to all department machines.&lt;br /&gt;
                  The build64 and build32 machines have separate test links.&lt;br /&gt;
&lt;br /&gt;
Systest commands:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; systest-info -A    # print all project info&lt;br /&gt;
 CTime: 1235158613&lt;br /&gt;
 Description: Test software for the VRL group.&lt;br /&gt;
 Links: bin/vrl_test&lt;br /&gt;
 MTime: 1236091161&lt;br /&gt;
 Name: vrltest&lt;br /&gt;
 Owners: bb dhl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Select project:  To add type in a project name and hit &amp;quot;Create&amp;quot;.&lt;br /&gt;
 # Create Project:  Description:  Enter a brief description.&lt;br /&gt;
 #                       Owners:  Enter space separated user ids.&lt;br /&gt;
 # Prject name = vrl -&amp;gt; creates /systest/projects/vrl&lt;br /&gt;
 #&lt;br /&gt;
 &amp;gt; systest-req        # Interactive box to add a new project (run on Linux box).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Run after creating a new project and set up a test script:&lt;br /&gt;
 #  add:     /systest/projects/&amp;lt;project&amp;gt;/&amp;lt;test&amp;gt;.&amp;lt;suffix&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 &amp;gt; systest-link  /systest/projects/&amp;lt;project&amp;gt;/&amp;lt;test_name&amp;gt;.&amp;lt;suffix&amp;gt;  /systest/bin/&amp;lt;test_name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Run after creating a new project and set up a test script:&lt;br /&gt;
 #  add:     /systest/projects/&amp;lt;project&amp;gt;/&amp;lt;test&amp;gt;.&amp;lt;suffix&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 &amp;gt; systest-link  /systest/projects/&amp;lt;project&amp;gt;/&amp;lt;test_name&amp;gt;.&amp;lt;suffix&amp;gt;  /systest/bin/&amp;lt;test_name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:HOWTO]][[Category:$G HOWTO]][[Category:Software Development]]&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Software_tests&amp;diff=5922</id>
		<title>Software tests</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Software_tests&amp;diff=5922"/>
		<updated>2012-04-04T15:24:03Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Running Tests ==&lt;br /&gt;
&lt;br /&gt;
The test driver is installed on all CS department machines.  A configuration file is used to launch tests and mail results to subscribers.  You can subscribe to a test summary or receive notices when select tests fail.  The default configuration file is:  &amp;lt;tt&amp;gt;$G/common/build/site/test.platform.cfg&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to perform a private test run and suppress mail notifications run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; /systest/bin/vrl_fast  -noemail&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To run a set of select tests and specify alternative mail notifications (usually to yourself) you can create and run using a custom configuration file.  Make a private copy of the default configuration file and modify it.  The comments in the default configuration file describe the format.  Then run using the new configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; /systest/bin/vrl_fast  -config  &amp;lt;My work area&amp;gt;/&amp;lt;Custom configuration&amp;gt;.cfg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is an example of a small custom configuration file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#########################  test.platform.fast.cfg  #############################&lt;br /&gt;
#&lt;br /&gt;
Developer:  you@cs.brown.edu&lt;br /&gt;
Summary:    none&lt;br /&gt;
&lt;br /&gt;
nag      none  linux common/build/valid/test.project.py common/include/nag&lt;br /&gt;
libnr    none  linux common/build/valid/test.project.py common/gg/libnr&lt;br /&gt;
libgg    none  linux common/build/valid/test.project.py common/gg/libgg&lt;br /&gt;
libds    none  linux common/build/valid/test.project.py common/gg/libds&lt;br /&gt;
libggpp  none  linux common/build/valid/test.project.py common/gg/libggpp&lt;br /&gt;
libnum   none  linux common/build/valid/test.project.py common/gg/libnum&lt;br /&gt;
libcff2  none  linux common/build/valid/test.project.py common/gg/libcff2&lt;br /&gt;
libmri   none  linux common/build/valid/test.project.py common/mri/libmri&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
#######################  end  test.platform.fast.cfg  ##########################&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Writing Tests ==&lt;br /&gt;
&lt;br /&gt;
It is a good idea to provide one or more quick tests that can be included in the test suite we run each night.  Tests need to run in batch mode and simply return a zero status if successful and non-zero if they fail.&lt;br /&gt;
&lt;br /&gt;
Create a make test target that runs a test that returns a zero status for success and a non-zero status for an error.  The test should be able to run as a batch job (not interactive).  Projects with multiple tests can use a target named &amp;lt;tt&amp;gt;test.&amp;lt;name&amp;gt;&amp;lt;/tt&amp;gt; for each individual test and a target &amp;lt;tt&amp;gt;alltest&amp;lt;/tt&amp;gt; to run them all.&lt;br /&gt;
&lt;br /&gt;
Test targets should limit themselves to commands supported on both linux and Windows or use Python scripts.  Currently only the &amp;quot;rm -f&amp;quot; and &amp;quot;diff&amp;quot; commands are supported.  As always, absolute path names are to be avoided.&lt;br /&gt;
&lt;br /&gt;
Large raw input files such as MRI images should be copied to a directory named &amp;lt;tt&amp;gt;$GROOT/data/&amp;lt;project&amp;gt;/test/&amp;lt;/tt&amp;gt;.  Cooked data and test output should go to a test directory inside the project directory.  Tests should clear output files from prior runs to avoid false positives.  Regression tests that use diff to check output should comapare against a file named:  &amp;lt;tt&amp;gt;&amp;lt;root name&amp;gt;_base.&amp;lt;suffix&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Test System Maintenance ==&lt;br /&gt;
&lt;br /&gt;
 /tstaff/bin/regtest   # tStaff manages the driver.&lt;br /&gt;
    /systest/bin/*     # Run only the links; excludes other files.&lt;br /&gt;
&lt;br /&gt;
 /systest/bin/:   Changes are reflected to all department machines.&lt;br /&gt;
                  The build64 and build32 machines have separate test links.&lt;br /&gt;
&lt;br /&gt;
Systest commands:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; systest-info -A    # print all project info&lt;br /&gt;
 CTime: 1235158613&lt;br /&gt;
 Description: Test software for the VRL group.&lt;br /&gt;
 Links: bin/vrl_test&lt;br /&gt;
 MTime: 1236091161&lt;br /&gt;
 Name: vrltest&lt;br /&gt;
 Owners: bb dhl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Select project:  To add type in a project name and hit &amp;quot;Create&amp;quot;.&lt;br /&gt;
 # Create Project:  Description:  Enter a brief description.&lt;br /&gt;
 #                       Owners:  Enter space separated user ids.&lt;br /&gt;
 # Prject name = vrl -&amp;gt; creates /systest/projects/vrl&lt;br /&gt;
 #&lt;br /&gt;
 &amp;gt; systest-req        # Interactive box to add a new project (run on Linux box).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Run after creating a new project and set up a test script:&lt;br /&gt;
 #  add:     /systest/projects/&amp;lt;project&amp;gt;/&amp;lt;test&amp;gt;.&amp;lt;suffix&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 &amp;gt; systest-link  /systest/projects/&amp;lt;project&amp;gt;/&amp;lt;test_name&amp;gt;.&amp;lt;suffix&amp;gt;  /systest/bin/&amp;lt;test_name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 # Run after creating a new project and set up a test script:&lt;br /&gt;
 #  add:     /systest/projects/&amp;lt;project&amp;gt;/&amp;lt;test&amp;gt;.&amp;lt;suffix&amp;gt;&lt;br /&gt;
 #&lt;br /&gt;
 &amp;gt; systest-link  /systest/projects/&amp;lt;project&amp;gt;/&amp;lt;test_name&amp;gt;.&amp;lt;suffix&amp;gt;  /systest/bin/&amp;lt;test_name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:HOWTO]][[Category:$G HOWTO]][[Category:Software Development]]&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Install_3rd_party_code&amp;diff=5921</id>
		<title>Install 3rd party code</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Install_3rd_party_code&amp;diff=5921"/>
		<updated>2012-04-04T15:09:09Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most projects use code downloaded from third parties. For convenience some have been pre-installed in:  &#039;&#039;&#039;/map/gfx0/tools/linux/import/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If the package or a version you need is not there you&#039;ll need to add it.  If you want you can set it up in your private import directory in your sandbox and make it public later.  The import directories are structured as:&lt;br /&gt;
&lt;br /&gt;
 import/&amp;lt;Package&amp;gt;/kit/&amp;lt;Downloaded Kit&amp;gt;.tar&lt;br /&gt;
 import/&amp;lt;Package&amp;gt;/kit/&amp;lt;Downloaded Kit&amp;gt;.zip&lt;br /&gt;
 import/&amp;lt;Package&amp;gt;/&amp;lt;Installed Kit&amp;gt;/...&lt;br /&gt;
&lt;br /&gt;
* Create a subdirectory under import to hold all versions of a package.&lt;br /&gt;
&lt;br /&gt;
* Create the kit directory and put any download files there.&lt;br /&gt;
&lt;br /&gt;
* Create a subdirectory for each installed version of the package.  Perform any build required to install the package. The details of how directories are named and structured are determined primarily by the vendor.&lt;br /&gt;
&lt;br /&gt;
* Optionally you can integrate the package into the make system by adding a file:  commmon/build/make/&amp;lt;package&amp;gt;.make  You will need to also modify common/build/make/use.make to recognize the package on the [[G_USE]] variable.  You should be able to ascertain how to do this by looking at some of the existing files like: nag.make&lt;br /&gt;
&lt;br /&gt;
* Once everything is working check in the package.  The &#039;&#039;&#039;import/*/kit&#039;&#039;&#039; directory has uninstalled downloaded packages.  Only check in the downloaded kits.  Do not check in pre-installed software.  Note that tar and zip files need to be checked in as binary files using the -b CVS option.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Install_3rd_party_code&amp;diff=5920</id>
		<title>Install 3rd party code</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Install_3rd_party_code&amp;diff=5920"/>
		<updated>2012-04-04T15:06:37Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most projects use code downloaded from third parties. For convenience some have been pre-installed in:  &#039;&#039;&#039;/map/gfx0/tools/linux/import/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If the package or a version you need is not there you&#039;ll need to add it.  If you want you can set it up in your private import directory in your sandbox and make it public later.  The import directories are structured as:&lt;br /&gt;
&lt;br /&gt;
 import/&amp;lt;Package&amp;gt;/kit/&amp;lt;Downloaded Kit&amp;gt;.tar&lt;br /&gt;
 import/&amp;lt;Package&amp;gt;/kit/&amp;lt;Downloaded Kit&amp;gt;.zip&lt;br /&gt;
 import/&amp;lt;Package&amp;gt;/&amp;lt;Installed Kit&amp;gt;/...&lt;br /&gt;
&lt;br /&gt;
* Create a subdirectory under import to hold all versions of a package.&lt;br /&gt;
&lt;br /&gt;
* Create the kit directory and put any download files there.&lt;br /&gt;
&lt;br /&gt;
* Create a subdirectory for each installed version of the package.  Perform any build required to install the package. The details of how directories are named and structured are determined primarily by the vendor.&lt;br /&gt;
&lt;br /&gt;
* Optionally you can integrate the package into the make system by adding a file:  commmon/build/make/&amp;lt;package&amp;gt;.make  You will need to also modify common/build/make/use.make to recognize the package on the [[G_USE]] variable.&lt;br /&gt;
&lt;br /&gt;
* Once everything is working check in the package.  The &#039;&#039;&#039;import/*/kit&#039;&#039;&#039; directory has uninstalled downloaded packages.  Only check in the downloaded kits.  Do not check in pre-installed software.  Note that tar and zip files need to be checked in as binary files using the -b CVS option.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Install_3rd_party_code&amp;diff=5919</id>
		<title>Install 3rd party code</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Install_3rd_party_code&amp;diff=5919"/>
		<updated>2012-04-04T15:05:30Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most projects use code downloaded from third parties. For convenience some have been pre-installed in:  &#039;&#039;&#039;/map/gfx0/tools/linux/import/&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If the package or a version you need is not there you&#039;ll need to add it.  If you want you can set it up in your private import directory in your sandbox and make it public later.  The import directories are structured as:&lt;br /&gt;
&lt;br /&gt;
 import/&amp;lt;Package&amp;gt;/kit/&amp;lt;Downloaded Kit&amp;gt;.tar&lt;br /&gt;
 import/&amp;lt;Package&amp;gt;/kit/&amp;lt;Downloaded Kit&amp;gt;.zip&lt;br /&gt;
 import/&amp;lt;Package&amp;gt;/&amp;lt;Installed Kit&amp;gt;/...&lt;br /&gt;
&lt;br /&gt;
* Create a subdirectory under import to hold all versions of a package.&lt;br /&gt;
&lt;br /&gt;
* Create the kit directory and put any download files there.&lt;br /&gt;
&lt;br /&gt;
* Create a subdirectory for each installed version of the package.  Perform any build required to install the package. The details of how directories are named and structured are determined primarily by the vendor.&lt;br /&gt;
&lt;br /&gt;
* Optionally you can integrate the package into the make system by adding a file:  commmon/build/make/&amp;lt;package&amp;gt;.make  You will need to also modify common/build/make/use.make to recognize the package on the G_USE variable.&lt;br /&gt;
&lt;br /&gt;
* Once everything is working check in the package.  The &#039;&#039;&#039;import/*/kit&#039;&#039;&#039; directory has uninstalled downloaded packages.  Only check in the downloaded kits.  Do not check in pre-installed software.  Note that tar and zip files need to be checked in as binary files using the -b CVS option.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Shared_Public_Directory_Structure&amp;diff=5918</id>
		<title>Shared Public Directory Structure</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Shared_Public_Directory_Structure&amp;diff=5918"/>
		<updated>2012-04-04T14:49:18Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The graphics group has developed a system over many years that allows easy development of a large, shared base of software.  We give the whole thing the nickname &amp;lt;tt&amp;gt;[[$G]]&amp;lt;/tt&amp;gt; (&amp;quot;dollar gee&amp;quot;), named after the environment variable that represents the root of the source tree.&lt;br /&gt;
&lt;br /&gt;
There source code our group has created is modified and backed up through a source control system called CVS (Concurrent Versioning System).  You must have CVS set up properly in order to develop with our shared codebase.&lt;br /&gt;
&lt;br /&gt;
Source control works by allowing an individual user to make structured copies of the master versions of files (this process is called &amp;quot;checking out&amp;quot; the files).  The user then modifies his or her personal copies of the files, and then &amp;quot;checks in&amp;quot; the changes once they&#039;re certain that the code compiles and runs properly.  The location where a user modifies a personal copy of shared code is called a &amp;quot;sandbox&amp;quot;, because it is in some sense walled off from the master copy: destructive changes to the code in the sandbox do not affect the master copy, provided the user doesn&#039;t check them in.&lt;br /&gt;
&lt;br /&gt;
Environment variables are used to configure the development environment.  Visit this page for general instructions for [[Setting Environment Variables]] and using them.  The instructions in the remainder of this section require that you know how to set up environment variables.  For Windows the instructions use the native Windows (cmd.exe) command shell.  Unix command examples should work on most shells.&lt;br /&gt;
&lt;br /&gt;
Even if you intend to work on Windows you should set up your sandbox at Brown using Linux.  The instructions will include Windows specific instructions when applicable.  Explicit procedures for setting up a remote Windows system (like your laptop) are not yet in place.  If you are familiar with setting up Windows development environments you should be able to adapt these procedures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a description of the directories you will find under &#039;&#039;&#039;/research/graphics/&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;data&#039;&#039;&#039;:  A directory for large datasets.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;users&#039;&#039;&#039;:  Space for students to set up sandboxes.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tools/linux/import&#039;&#039;&#039;:  Pre-installed third party software.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tools/linux/install_linux&#039;&#039;&#039;:  Shared copies of pre-built Linux projects.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tools/linux/install_WIN32&#039;&#039;&#039;:  Shared copies of pre-built Windows projects.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tools/public/yesterday&#039;&#039;&#039;:  Browse recent common and project directories.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tools/public/raw_notes&#039;&#039;&#039;:  Unedited notes on a variety of development topics.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;cvsroot&#039;&#039;&#039;:  The CVS repository.  The files in here are only for administrators to access.  Students should only access the repository through CVS commands.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within the CVS repository the primary directories are:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;import&#039;&#039;&#039;:  Downloaded kits for third party software.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;common&#039;&#039;&#039;:  Software used by multiple projects.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;project&#039;&#039;&#039;:  Project software.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A copy of the &#039;&#039;&#039;common&#039;&#039;&#039; and &#039;&#039;&#039;project&#039;&#039;&#039; directories for you to browse is updated nightly at:&lt;br /&gt;
/research/graphics/tools/public/yesterday&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See [[Using Public or Private Programs and Libraries]] for&lt;br /&gt;
a detailed overview of the environment variables and directories.&lt;br /&gt;
&lt;br /&gt;
At any given time there are several active versions of our software.  Students need to be aware of what version is appropriate for thier work and set up their workspace to reflect this.&lt;br /&gt;
&lt;br /&gt;
* The latest source checked into CVS&lt;br /&gt;
&lt;br /&gt;
* The version in a students project directory at the time they last checked it out or changed it.&lt;br /&gt;
&lt;br /&gt;
* The version installed in a students sandbox the last time they built and installed it.&lt;br /&gt;
&lt;br /&gt;
* The public installed copy at:  /research/graphics/tools/linux/install_$GARCH&lt;br /&gt;
&lt;br /&gt;
* The copy used for cloning at:  /research/graphics/tools/public/clone&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Shared_Public_Directory_Structure&amp;diff=5899</id>
		<title>Shared Public Directory Structure</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Shared_Public_Directory_Structure&amp;diff=5899"/>
		<updated>2012-02-02T18:51:57Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The graphics group has developed a system over many years that allows easy development of a large, shared base of software.  We give the whole thing the nickname &amp;lt;tt&amp;gt;[[$G]]&amp;lt;/tt&amp;gt; (&amp;quot;dollar gee&amp;quot;), named after the environment variable that represents the root of the source tree.&lt;br /&gt;
&lt;br /&gt;
There source code our group has created is modified and backed up through a source control system called CVS (Concurrent Versioning System).  You must have CVS set up properly in order to develop with our shared codebase.&lt;br /&gt;
&lt;br /&gt;
Source control works by allowing an individual user to make structured copies of the master versions of files (this process is called &amp;quot;checking out&amp;quot; the files).  The user then modifies his or her personal copies of the files, and then &amp;quot;checks in&amp;quot; the changes once they&#039;re certain that the code compiles and runs properly.  The location where a user modifies a personal copy of shared code is called a &amp;quot;sandbox&amp;quot;, because it is in some sense walled off from the master copy: destructive changes to the code in the sandbox do not affect the master copy, provided the user doesn&#039;t check them in.&lt;br /&gt;
&lt;br /&gt;
Environment variables are used to configure the development environment.  Visit this page for general instructions for [[Setting Environment Variables]] and using them.  The instructions in the remainder of this section require that you know how to set up environment variables.  For Windows the instructions use the native Windows (cmd.exe) command shell.  Unix command examples should work on most shells.&lt;br /&gt;
&lt;br /&gt;
Even if you intend to work on Windows you should set up your sandbox at Brown using Linux.  The instructions will include Windows specific instructions when applicable.  Explicit procedures for setting up a remote Windows system (like your laptop) are not yet in place.  If you are familiar with setting up Windows development environments you should be able to adapt these procedures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Here&#039;s a description of the directories you will find under &#039;&#039;&#039;/research/graphics/&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;data&#039;&#039;&#039;:  A directory for large datasets.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;users&#039;&#039;&#039;:  Space for students to set up sandboxes.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tools/linux/import&#039;&#039;&#039;:  Pre-installed third party software.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tools/linux/install_linux&#039;&#039;&#039;:  Shared copies of pre-built Linux projects.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;tools/linux/install_WIN32&#039;&#039;&#039;:  Shared copies of pre-built Windows projects.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;cvsroot&#039;&#039;&#039;:  The CVS repository.  The files in here are only for administrators to access.  Students should only access the repository through CVS commands.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Within the CVS repository the primary directories are:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;import&#039;&#039;&#039;:  Downloaded kits for third party software.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;common&#039;&#039;&#039;:  Software used by multiple projects.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;project&#039;&#039;&#039;:  Project software.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A copy of the &#039;&#039;&#039;common&#039;&#039;&#039; and &#039;&#039;&#039;project&#039;&#039;&#039; directories for you to browse is updated nightly at:&lt;br /&gt;
/research/graphics/tools/public/yesterday&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See [[Using Public or Private Programs and Libraries]] for&lt;br /&gt;
a detailed overview of the environment variables and directories.&lt;br /&gt;
&lt;br /&gt;
At any given time there are several active versions of our software.  Students need to be aware of what version is appropriate for thier work and set up their workspace to reflect this.&lt;br /&gt;
&lt;br /&gt;
* The latest source checked into CVS&lt;br /&gt;
&lt;br /&gt;
* The version in a students project directory at the time they last checked it out or changed it.&lt;br /&gt;
&lt;br /&gt;
* The version installed in a students sandbox the last time they built and installed it.&lt;br /&gt;
&lt;br /&gt;
* The public installed copy at:  /research/graphics/tools/linux/install_$GARCH&lt;br /&gt;
&lt;br /&gt;
* The copy used for cloning at:  /research/graphics/tools/public/clone&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Software_Development&amp;diff=5898</id>
		<title>Software Development</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Software_Development&amp;diff=5898"/>
		<updated>2012-02-02T18:47:34Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* &#039;&#039;&#039;Essential Background Reading&#039;&#039;&#039;&lt;br /&gt;
** [[Shared Public Directory Structure]]&lt;br /&gt;
** [[Understanding File Permissions]]&lt;br /&gt;
** [[Setting Environment Variables]]&lt;br /&gt;
** [[Introduction to CVS]]&lt;br /&gt;
** [[Minimal Coding Conventions|Coding Conventions and Programming Tips]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Create a Linux Sandbox&#039;&#039;&#039;&lt;br /&gt;
** [[Get a Linux Account]]&lt;br /&gt;
** Set up Your Sandbox&lt;br /&gt;
*** [[Automated Quick Start|Automated Quick Start - Linux only]]&lt;br /&gt;
*** [[Quick Start for CIT Users|Manual Quick Start - Windows and Linux]]&lt;br /&gt;
** [[Merge Installed Programs Into One Directory]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Software Development Tasks&#039;&#039;&#039;&lt;br /&gt;
** Before you start, [[Building and Installing Common Components]]&lt;br /&gt;
** Work on Existing Projects&lt;br /&gt;
*** [[Check out projects|Check out and build existing projects]]&lt;br /&gt;
*** [[Contribute to projects|Contribute to existing projects]]&lt;br /&gt;
** Add a project&lt;br /&gt;
*** [[Add a new project]]&lt;br /&gt;
**** [[Build a Trivial Program]]&lt;br /&gt;
**** [[Build a Trivial Library]]&lt;br /&gt;
*** [[Port existing project|Port existing project to the new $G]]&lt;br /&gt;
**[[Writing Make Files]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Advanced Topics&#039;&#039;&#039;&lt;br /&gt;
** [[Create a Windows Sandbox|Create a Windows Sandbox (In or out of CIT)]]&lt;br /&gt;
** [[Software tests|Create and automate software tests]]&lt;br /&gt;
** [[Install 3rd party code|Install 3rd-party programs or libraries]]&lt;br /&gt;
** [[Using Public or Private Programs and Libraries]]&lt;br /&gt;
** [[Multiple Directories|Set up a project with multiple directories]]&lt;br /&gt;
** [[Working With Multiple Sandboxes]]&lt;br /&gt;
** [[Working With Legacy Software]]&lt;br /&gt;
** [[Software demos|Create and install software demos]]&lt;br /&gt;
** [[Distribute software|Distribute software and data]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software Development]]&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Plans_and_Goals&amp;diff=5897</id>
		<title>Plans and Goals</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Plans_and_Goals&amp;diff=5897"/>
		<updated>2012-01-25T16:35:24Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Brad */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page the members of the [[VRL]] record and refine their goals for the current semester.  This is a living document in which [[dhl]] will provide feedback.  See the bottom of the page for links to past plans &amp;amp; goals documents.&lt;br /&gt;
&lt;br /&gt;
== Current Schedule ==&lt;br /&gt;
Meetings are on Tuesdays.  The authoritative list is in dhl&#039;s calendar. (updated here 9/24/10)&lt;br /&gt;
&lt;br /&gt;
== Current Plans and Goals (Spring &#039;12) ==&lt;br /&gt;
&lt;br /&gt;
=== [[User:Brad Berg|Brad]] ===&lt;br /&gt;
&lt;br /&gt;
* Provide software support for BioEngineering.&lt;br /&gt;
*# Fix bugs as needed.&lt;br /&gt;
*# Enhancements under consideration are:&lt;br /&gt;
*#* Register single bones.&lt;br /&gt;
*#* Improve performance and ease of use.&lt;br /&gt;
*#* Migrate fully to Windows.&lt;br /&gt;
*#* Deploy to collaborators outside Brown.&lt;br /&gt;
*#* Generalize to other bones (foot and knee).&lt;br /&gt;
&lt;br /&gt;
* Help set up software for the new cave.&lt;br /&gt;
&lt;br /&gt;
* Improve software services for students.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- please don&#039;t edit below this line --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Cagatay Demiralp|Çağatay]] === &lt;br /&gt;
&lt;br /&gt;
* Graduate &lt;br /&gt;
** Take a job around New York &lt;br /&gt;
*** Give good talks at Harvard&lt;br /&gt;
** Finish writing the thesis &lt;br /&gt;
*** Topological signatures for global analysis to MICCAI&lt;br /&gt;
*** MRF-MAP framework to diffusion modeling to MICCAI &lt;br /&gt;
* Semantic segmentation of gliomas to MICCAI&lt;br /&gt;
* Magazine article on theory of visualization to CG &amp;amp; A &lt;br /&gt;
* Theory of visualization to VisWeek&lt;br /&gt;
* Surface deformation to TOG  &lt;br /&gt;
&amp;lt;!-- please don&#039;t edit below this line --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== [[User:Caroline Ziemkiewicz|Caroline]] ===&lt;br /&gt;
&lt;br /&gt;
* Get a job! &lt;br /&gt;
** Go on interviews, network, improve job talk, etc. &lt;br /&gt;
* Prepare a VisWeek submission extending task analysis work&lt;br /&gt;
* Help Steve&#039;s group on the whiteboard/explanations project; also aim for VisWeek&lt;br /&gt;
* Submit TVCG article based on VAST locus of control paper&lt;br /&gt;
* Service activities&lt;br /&gt;
** VisWeek program committee&lt;br /&gt;
** Reviews &lt;br /&gt;
** NSF panel?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- please don&#039;t edit below this line --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== David ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- please don&#039;t edit below this line --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== Eni ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- please don&#039;t edit below this line --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== [[User:Jadrian Miles|Jadrian]] ===&lt;br /&gt;
&lt;br /&gt;
* [[:Image:Jadrian Miles PhD Proposal original 2009-06-22.pdf‎|Initial thesis proposal, submitted 2009-06-22]]&lt;br /&gt;
* [[:Image:Jadrian Miles PhD Proposal rev2 2009-10-15.pdf|Proposal second revision, prepared 2009-10-15]]&lt;br /&gt;
&lt;br /&gt;
{{User:Jadrian Miles/OKRs}}&lt;br /&gt;
&amp;lt;!-- please don&#039;t edit below this line --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== [[User:Nathan Malkin|Nathan]] ===&lt;br /&gt;
&lt;br /&gt;
* UTRA application?&lt;br /&gt;
* Independent research&lt;br /&gt;
*# API for experimental platform to interact with Mechanical Turk&lt;br /&gt;
*# Using games from experimental economics (Prisoner&#039;s Dilemma, Trust Game, Ultimatum Game), attempt to replicate some of their findings&lt;br /&gt;
*# Test the effect of the incentive level on people&#039;s behavior&lt;br /&gt;
*# Test the effects various manifestations of online identity have on behavior&lt;br /&gt;
*#* Attempt to replicate findings with faces increasing other-regarding behavior&lt;br /&gt;
*#* Repeat experiment with avatars&lt;br /&gt;
*#* Also names and nicknames&lt;br /&gt;
*# Test effects of different interface elements&lt;br /&gt;
*#* Colors, borders, overall &amp;quot;prettiness&amp;quot;, ...&lt;br /&gt;
*# Test effects of priming&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- please don&#039;t edit below this line --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Radu === &lt;br /&gt;
&lt;br /&gt;
* Finish dissertation (send to committee by end of Jan)&lt;br /&gt;
* Set defense date by end of Jan&lt;br /&gt;
* Defend&lt;br /&gt;
* Find job&lt;br /&gt;
* Vis paper with Steve, Caroline, Hua&lt;br /&gt;
* Follow up mechturk study on nudges (April)&lt;br /&gt;
* Assist Wenjin and Ryan on brain vis&lt;br /&gt;
* Ensure PhD code is reusable&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- please don&#039;t edit below this line --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Wenjin ===&lt;br /&gt;
* Axon Application on real data&lt;br /&gt;
** data from Ed&lt;br /&gt;
** intense data search from everywhere: Israel, Germany, NIH, etc.&lt;br /&gt;
** find alternatives!&lt;br /&gt;
* Finish thesis and defend by May&lt;br /&gt;
* Get a job&lt;br /&gt;
** prepare job talks and interviews&lt;br /&gt;
** postdoc and fellowship applications&lt;br /&gt;
* Address NeuroImage reviews &lt;br /&gt;
** resubmit with new real data results &lt;br /&gt;
** or, submit somewhere else with simulation only&lt;br /&gt;
* Brain cortical connectivity VIS with Ryan, Radu and Win&lt;br /&gt;
** aim for VIS/MICCAI?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- please don&#039;t edit below this line --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Steven Gomez|Steve]] ===&lt;br /&gt;
&lt;br /&gt;
* Finish camready materials for CHI (due Jan 13)&lt;br /&gt;
* Prepare CHI talk for the conference in May, test-run at scivis lunch&lt;br /&gt;
* Prepare VisWeek paper&lt;br /&gt;
** slideshow analysis and live study by end of Feb; draft paper by March 5&lt;br /&gt;
** touch base with Jian in early January&lt;br /&gt;
* Revisit diagram work (&amp;quot;querying/visualizing by sketching network&amp;quot;)&lt;br /&gt;
** UIST is in Cambridge, MA this fall... submit some work?&lt;br /&gt;
** Vis Viewpoint?  &#039;&#039;Magic-Button Evaluation&#039;&#039;&lt;br /&gt;
* Grad requirements&lt;br /&gt;
** shop/do course for outside minor; &amp;quot;Visualizing Vision&amp;quot; in CLPS&lt;br /&gt;
** find out about alternative depth req&lt;br /&gt;
* Proposal draft by April 15&lt;br /&gt;
** feedback from dhl incorporated by end of semester&lt;br /&gt;
** establish committee and circulate draft by summer&lt;br /&gt;
&amp;lt;!-- please don&#039;t edit below this line --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ryan ===&lt;br /&gt;
&lt;br /&gt;
* Finish comps project&lt;br /&gt;
** evaluate track shape metrics&lt;br /&gt;
** implement and evaluate cortical shape metrics&lt;br /&gt;
** write up and given presentation&lt;br /&gt;
* Submit papers&lt;br /&gt;
** Edinburgh normal brain networks paper to NI&lt;br /&gt;
** MAP-MRF multitensor paper w/ CD to MICCAI&lt;br /&gt;
** Bayesian T1/T2 estimation paper to MICCAI?&lt;br /&gt;
** Brain network circle vis paper?&lt;br /&gt;
* Finish coursework&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- please don&#039;t edit below this line --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
=== [[User:Hua Guo|Hua]] ===&lt;br /&gt;
&lt;br /&gt;
* Required coursework: complete two CS courses&lt;br /&gt;
** CS1950F Intro to Machine Learning&lt;br /&gt;
** CS1550/CS2951A/CS1320&lt;br /&gt;
* Progress on the research comp&lt;br /&gt;
** Propose the research comp project&lt;br /&gt;
** Implement a prototype of the brain circuit visual analysis tool&lt;br /&gt;
** Implement a prototype of the embedded task model  &lt;br /&gt;
* Submit a poster on EEG Tool Task Analysis to Vis&lt;br /&gt;
* Contribute to the visual thinking project&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Past Plans and Goals ==&lt;br /&gt;
* [[/Summer-Fall 2011|Summer-Fall &#039;11]]&lt;br /&gt;
* [[/Spring 2011|Spring &#039;11]]&lt;br /&gt;
* [[/Summer-Fall 2010|Summer-Fall &#039;10]]&lt;br /&gt;
* [[/Spring 2010|Spring &#039;10]]&lt;br /&gt;
* [[/Fall 2009|Fall &#039;09]]&lt;br /&gt;
* [[/Summer 2009|Summer &#039;09]]&lt;br /&gt;
* [[/Spring 2009|Spring &#039;09]]&lt;br /&gt;
* [[/Fall 2008|Fall &#039;08]]&lt;br /&gt;
* [http://sites.google.com/a/vis.cs.brown.edu/collaboravis/Home/summer-08-group-goals Summer &#039;08]&lt;br /&gt;
&lt;br /&gt;
[[Category:VRL]]&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Quick_Start_for_CIT_Users&amp;diff=4868</id>
		<title>Quick Start for CIT Users</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Quick_Start_for_CIT_Users&amp;diff=4868"/>
		<updated>2011-06-22T18:27:32Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Set Environment Variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are terse instructions for setting up a typical sandbox at Brown using Linux.  Even if you intend to develop on a different platform such as Windows you should initially get set up on Linux.  If you need more explicit instructions or you want a more complex setup then revert back to the full instructions.  &lt;br /&gt;
&lt;br /&gt;
== Create your Sandbox ==&lt;br /&gt;
&lt;br /&gt;
Create a user directory for yourself in the groups work area.  Be sure to use your login name as the directory name.  Before you do anything double check to see that your primary group is graphics.  If it is not ask tStaff (mail problem@cs.brown.edu) to change it for you.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; groups&lt;br /&gt;
 graphics  grad  guest               # The first item must be graphics.&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER&lt;br /&gt;
&lt;br /&gt;
== Set Environment Variables ==&lt;br /&gt;
&lt;br /&gt;
Setup your environment variables in the login script for your shell.  If you are using Windows you will also want to set these variables on your Windows system as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               Linux                             Windows&lt;br /&gt;
&lt;br /&gt;
 CVSROOT   /research/graphics/cvsroot        Y:\research\graphics\cvsroot&lt;br /&gt;
 GROOT     /research/graphics                Y:\research\graphics&lt;br /&gt;
 G         /research/graphics/users/$USER    Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;&lt;br /&gt;
 GTO       /research/graphics/users/$USER    Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;&lt;br /&gt;
 GARCH     linux                             WIN32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;G_COMPILER&#039;&#039;&#039; variable is set to the compiler you want to work with.  This may change depending on project requirements.  Most projects will build if you set it to &#039;&#039;&#039;gcc4&#039;&#039;&#039; on Linux and &#039;&#039;&#039;cl9&#039;&#039;&#039; on Windows.  Note that at Brown gcc version 3.4 is no longer supported on Debian.  Current settings are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
       Linux                          Windows                                    OSX&lt;br /&gt;
&lt;br /&gt;
 gcc2 - gcc version 2.95     cl6 - Microsoft Studio version 6            gcc4 - gcc version 4.2&lt;br /&gt;
 gcc3 - gcc version 3.4      cl8 - Microsoft Studio version 8 (2005)&lt;br /&gt;
 gcc4 - gcc version 4.1      cl9 - Microsoft Studio version 9 (2008)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also on Linux set your umask in your login shell to:  002&lt;br /&gt;
&lt;br /&gt;
 umask  002&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that imported software packages may require additional environment variable settings when your project uses them.  You will need to read the documentation for each package to see how it is set up.&lt;br /&gt;
&lt;br /&gt;
The NAG library is supported by tStaff for Linux.  If you use the NAG library you will need to set:&lt;br /&gt;
&lt;br /&gt;
 LM_LICENSE_FILE  /cfarm/nag/license.dat:/com/nag/license.dat&lt;br /&gt;
 NAG_KUSARI_FILE  /com/nag/kusari.dat&lt;br /&gt;
&lt;br /&gt;
== Get the Build System ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/&#039;&#039;&#039; directory has the build make files and shared programs and libraries written at Brown.  You only need the &#039;&#039;&#039;common/build/&#039;&#039;&#039; directory to develop programs, but since you probably will eventually want other common code just check the whole directory out.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER&lt;br /&gt;
 &amp;gt; cvs co common&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When software is installed (via the &amp;quot;make install&amp;quot; command) it is copied to the install directory.  There is an install directory for each platform.  Create install directories for Linux and Windows with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/install_linux&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/install_WIN32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The install directories are populated by a &amp;quot;make install&amp;quot; command and are organized like this:&lt;br /&gt;
&lt;br /&gt;
 install_linux/lib/&amp;lt;Project Name&amp;gt;/lib*.a&lt;br /&gt;
 install_linux/bin/&amp;lt;Project Name&amp;gt;/&amp;lt;Program&amp;gt;&lt;br /&gt;
 install_linux/include/&amp;lt;Project Name&amp;gt;/*.h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Try a simple build to see that everything is properly set up.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER/common/utility&lt;br /&gt;
 &amp;gt; make  all                       # Build the utilities.&lt;br /&gt;
 &amp;gt; make install                    # Install the utilities.&lt;br /&gt;
&lt;br /&gt;
Here is a transcript for [[Building and Installing Common Components]].&lt;br /&gt;
&lt;br /&gt;
This should populate the install directory.  Take a look with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ls  /research/graphics/users/$USER/install_linux/*/*&lt;br /&gt;
&lt;br /&gt;
== Get Project Code ==&lt;br /&gt;
&lt;br /&gt;
Project code is kept in CVS under the &#039;&#039;&#039;project/&#039;&#039;&#039; directory.  Note that inside your sandbox project code can be kept in any directory and you can have multiple versions of projects in different directories.  If you want to work with a project already in CVS then you can check it out now.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER&lt;br /&gt;
 &amp;gt; cvs  co  project/&amp;amp;lt;Project Name&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to create a new project then make a new directory for it in your sandbox.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  -p  /research/graphics/users/$USER/project/&amp;lt;Project Name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You are free to organize your project within the new directory as you see fit.  For instructions on writing make files visit:&lt;br /&gt;
&lt;br /&gt;
 https://sourceforge.net/apps/mediawiki/vrg3d/index.php?title=Writing_Make_Files&lt;br /&gt;
&lt;br /&gt;
== Get Third Party Software ==&lt;br /&gt;
&lt;br /&gt;
Many projects depend on downloaded software.  Create the &#039;&#039;&#039;import/&#039;&#039;&#039; directory in your sandbox where downloaded software is installed.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/import&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The packages you need are determined by the projects you are working on. Project documentation is the first place to check for required software.  Copies of some packages are installed in a shared public area, however the public area may not have the versions your projects require and the installations may change over time without notice.  The only sure fire method is to download and install the software.&lt;br /&gt;
&lt;br /&gt;
To see how the &#039;&#039;&#039;import/&#039;&#039;&#039; directory is organized and what packages are installed browse the public installations:&lt;br /&gt;
&lt;br /&gt;
 /research/graphics/tools/linux/import/...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a copy there that looks like one you need you can first try it and if it doesn&#039;t work then download and install your own copy.  Copy the packages you need from the public area to your own:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; copy  -R  /research/graphics/tools/linux/import/&amp;lt;Package&amp;gt;  /research/graphics/users/$USER/import&lt;br /&gt;
&lt;br /&gt;
== Build a Project on Windows ==&lt;br /&gt;
&lt;br /&gt;
Windows users need a few Unix utilities installed to build projects.  You can check these out of cvs on a Linux computer with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd   /research/graphics/users/$USER         &lt;br /&gt;
 &amp;gt; cvs  co  import/make             # Check out the utilities on a Linux computer.&lt;br /&gt;
             :&lt;br /&gt;
 &amp;gt; ls /research/graphics/users/$USER/import/make/g.utility_1.0/&lt;br /&gt;
 CVS/         cp.exe*    echo.exe*   libiconv2.dll  make.exe*   mkdir_gnu.exe*&lt;br /&gt;
 READ_ME.txt  diff.exe*  false.exe*  libintl3.dll   mkdir.exe*  rm.exe*&lt;br /&gt;
&lt;br /&gt;
Now switch to the Windows computer.  You will need to add the path to &#039;&#039;&#039;g.utility_1.0\&#039;&#039;&#039; to the front of your Windows &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable.  On Windows the path is &#039;&#039;&#039;&amp;quot;Y:\research\graphics\users\&amp;lt;User ID&amp;gt;\import\make\g.utility_1.0&amp;quot;&#039;&#039;&#039; After it is set verify that you can run these utilities from the command shell of your choosing.  The native Windows command shell is &#039;&#039;&#039;cmd.exe&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you&#039;ve not already done so, set your Windows environment variables according to the section &amp;quot;Setting Environment Variables&amp;quot;.  To see if you can build software run the &#039;cmd.exe&#039; shell and try:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\research\graphics\users\&amp;lt;User ID&amp;gt;\common\utility&lt;br /&gt;
 &amp;gt; make  all                                         # Build utilities on Windows.&lt;br /&gt;
 &amp;gt; make  install                                     # Install them to:  install_WIN32/&lt;br /&gt;
&lt;br /&gt;
Finally inspect &#039;&#039;&#039;Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;\install_WIN32&#039;&#039;&#039; to ensure it was properly populated.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Quick_Start_for_CIT_Users&amp;diff=4867</id>
		<title>Quick Start for CIT Users</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Quick_Start_for_CIT_Users&amp;diff=4867"/>
		<updated>2011-06-22T18:26:48Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Set Environment Variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are terse instructions for setting up a typical sandbox at Brown using Linux.  Even if you intend to develop on a different platform such as Windows you should initially get set up on Linux.  If you need more explicit instructions or you want a more complex setup then revert back to the full instructions.  &lt;br /&gt;
&lt;br /&gt;
== Create your Sandbox ==&lt;br /&gt;
&lt;br /&gt;
Create a user directory for yourself in the groups work area.  Be sure to use your login name as the directory name.  Before you do anything double check to see that your primary group is graphics.  If it is not ask tStaff (mail problem@cs.brown.edu) to change it for you.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; groups&lt;br /&gt;
 graphics  grad  guest               # The first item must be graphics.&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER&lt;br /&gt;
&lt;br /&gt;
== Set Environment Variables ==&lt;br /&gt;
&lt;br /&gt;
Setup your environment variables in the login script for your shell.  If you are using Windows you will also want to set these variables on your Windows system as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               Linux                             Windows&lt;br /&gt;
&lt;br /&gt;
 CVSROOT   /research/graphics/cvsroot        Y:\research\graphics\cvsroot&lt;br /&gt;
 GROOT     /research/graphics                Y:\research\graphics&lt;br /&gt;
 G         /research/graphics/users/$USER    Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;&lt;br /&gt;
 GTO       /research/graphics/users/$USER    Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;&lt;br /&gt;
 GARCH     linux                             WIN32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;G_COMPILER&#039;&#039;&#039; variable is set to the compiler you want to work with.  This may change depending on project requirements.  Most projects will build if you set it to &#039;&#039;&#039;gcc4&#039;&#039;&#039; on Linux and &#039;&#039;&#039;cl9&#039;&#039;&#039; on Windows.  Note that at Brown gcc version 3.4 is no longer supported on Debian.  Current settings are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               Linux                             Windows                                    OSX&lt;br /&gt;
&lt;br /&gt;
          gcc2 - gcc version 2.95            cl6 - Microsoft Studio version 6            gcc4 - gcc version 4.2&lt;br /&gt;
          gcc3 - gcc version 3.4             cl8 - Microsoft Studio version 8 (2005)&lt;br /&gt;
          gcc4 - gcc version 4.1             cl9 - Microsoft Studio version 9 (2008)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also on Linux set your umask in your login shell to:  002&lt;br /&gt;
&lt;br /&gt;
 umask  002&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that imported software packages may require additional environment variable settings when your project uses them.  You will need to read the documentation for each package to see how it is set up.&lt;br /&gt;
&lt;br /&gt;
The NAG library is supported by tStaff for Linux.  If you use the NAG library you will need to set:&lt;br /&gt;
&lt;br /&gt;
 LM_LICENSE_FILE  /cfarm/nag/license.dat:/com/nag/license.dat&lt;br /&gt;
 NAG_KUSARI_FILE  /com/nag/kusari.dat&lt;br /&gt;
&lt;br /&gt;
== Get the Build System ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/&#039;&#039;&#039; directory has the build make files and shared programs and libraries written at Brown.  You only need the &#039;&#039;&#039;common/build/&#039;&#039;&#039; directory to develop programs, but since you probably will eventually want other common code just check the whole directory out.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER&lt;br /&gt;
 &amp;gt; cvs co common&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When software is installed (via the &amp;quot;make install&amp;quot; command) it is copied to the install directory.  There is an install directory for each platform.  Create install directories for Linux and Windows with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/install_linux&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/install_WIN32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The install directories are populated by a &amp;quot;make install&amp;quot; command and are organized like this:&lt;br /&gt;
&lt;br /&gt;
 install_linux/lib/&amp;lt;Project Name&amp;gt;/lib*.a&lt;br /&gt;
 install_linux/bin/&amp;lt;Project Name&amp;gt;/&amp;lt;Program&amp;gt;&lt;br /&gt;
 install_linux/include/&amp;lt;Project Name&amp;gt;/*.h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Try a simple build to see that everything is properly set up.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER/common/utility&lt;br /&gt;
 &amp;gt; make  all                       # Build the utilities.&lt;br /&gt;
 &amp;gt; make install                    # Install the utilities.&lt;br /&gt;
&lt;br /&gt;
Here is a transcript for [[Building and Installing Common Components]].&lt;br /&gt;
&lt;br /&gt;
This should populate the install directory.  Take a look with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ls  /research/graphics/users/$USER/install_linux/*/*&lt;br /&gt;
&lt;br /&gt;
== Get Project Code ==&lt;br /&gt;
&lt;br /&gt;
Project code is kept in CVS under the &#039;&#039;&#039;project/&#039;&#039;&#039; directory.  Note that inside your sandbox project code can be kept in any directory and you can have multiple versions of projects in different directories.  If you want to work with a project already in CVS then you can check it out now.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER&lt;br /&gt;
 &amp;gt; cvs  co  project/&amp;amp;lt;Project Name&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to create a new project then make a new directory for it in your sandbox.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  -p  /research/graphics/users/$USER/project/&amp;lt;Project Name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You are free to organize your project within the new directory as you see fit.  For instructions on writing make files visit:&lt;br /&gt;
&lt;br /&gt;
 https://sourceforge.net/apps/mediawiki/vrg3d/index.php?title=Writing_Make_Files&lt;br /&gt;
&lt;br /&gt;
== Get Third Party Software ==&lt;br /&gt;
&lt;br /&gt;
Many projects depend on downloaded software.  Create the &#039;&#039;&#039;import/&#039;&#039;&#039; directory in your sandbox where downloaded software is installed.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/import&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The packages you need are determined by the projects you are working on. Project documentation is the first place to check for required software.  Copies of some packages are installed in a shared public area, however the public area may not have the versions your projects require and the installations may change over time without notice.  The only sure fire method is to download and install the software.&lt;br /&gt;
&lt;br /&gt;
To see how the &#039;&#039;&#039;import/&#039;&#039;&#039; directory is organized and what packages are installed browse the public installations:&lt;br /&gt;
&lt;br /&gt;
 /research/graphics/tools/linux/import/...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a copy there that looks like one you need you can first try it and if it doesn&#039;t work then download and install your own copy.  Copy the packages you need from the public area to your own:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; copy  -R  /research/graphics/tools/linux/import/&amp;lt;Package&amp;gt;  /research/graphics/users/$USER/import&lt;br /&gt;
&lt;br /&gt;
== Build a Project on Windows ==&lt;br /&gt;
&lt;br /&gt;
Windows users need a few Unix utilities installed to build projects.  You can check these out of cvs on a Linux computer with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd   /research/graphics/users/$USER         &lt;br /&gt;
 &amp;gt; cvs  co  import/make             # Check out the utilities on a Linux computer.&lt;br /&gt;
             :&lt;br /&gt;
 &amp;gt; ls /research/graphics/users/$USER/import/make/g.utility_1.0/&lt;br /&gt;
 CVS/         cp.exe*    echo.exe*   libiconv2.dll  make.exe*   mkdir_gnu.exe*&lt;br /&gt;
 READ_ME.txt  diff.exe*  false.exe*  libintl3.dll   mkdir.exe*  rm.exe*&lt;br /&gt;
&lt;br /&gt;
Now switch to the Windows computer.  You will need to add the path to &#039;&#039;&#039;g.utility_1.0\&#039;&#039;&#039; to the front of your Windows &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable.  On Windows the path is &#039;&#039;&#039;&amp;quot;Y:\research\graphics\users\&amp;lt;User ID&amp;gt;\import\make\g.utility_1.0&amp;quot;&#039;&#039;&#039; After it is set verify that you can run these utilities from the command shell of your choosing.  The native Windows command shell is &#039;&#039;&#039;cmd.exe&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you&#039;ve not already done so, set your Windows environment variables according to the section &amp;quot;Setting Environment Variables&amp;quot;.  To see if you can build software run the &#039;cmd.exe&#039; shell and try:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\research\graphics\users\&amp;lt;User ID&amp;gt;\common\utility&lt;br /&gt;
 &amp;gt; make  all                                         # Build utilities on Windows.&lt;br /&gt;
 &amp;gt; make  install                                     # Install them to:  install_WIN32/&lt;br /&gt;
&lt;br /&gt;
Finally inspect &#039;&#039;&#039;Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;\install_WIN32&#039;&#039;&#039; to ensure it was properly populated.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Automated_Quick_Start&amp;diff=4866</id>
		<title>Automated Quick Start</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Automated_Quick_Start&amp;diff=4866"/>
		<updated>2011-06-22T18:10:52Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are instructions using a script to set up a typical sandbox at Brown using Linux. Even if you intend to develop on a different platform such as Windows you should initially get set up on Linux. If you need more explicit instructions or you want a more complex setup then revert back to the full instructions.&lt;br /&gt;
&lt;br /&gt;
* To create your sandbox run this command form any directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 % /research/graphics/tools/linux/install_linux/bin/setup/new.g.user.sh&lt;br /&gt;
    NOTE:  Creating a sandbox in the directory:  /research/graphics/users/YourId/&lt;br /&gt;
    NOTE:  Copying previously installed Brown linux projects ...&lt;br /&gt;
    NOTE:     ... done copying linux projects.&lt;br /&gt;
    NOTE:  Copying previously installed Brown Windows projects ...&lt;br /&gt;
    NOTE:     ... done copying Windows projects.&lt;br /&gt;
    NOTE:  Checking out the common/ directory from CVS ...&lt;br /&gt;
    NOTE:     ... The common/ directory was succefully checked out from CVS.&lt;br /&gt;
    NOTE:  Building the common/utility/ directory ...&lt;br /&gt;
    NOTE:     ... The common/utility/ directory successfully built.&lt;br /&gt;
&lt;br /&gt;
  Your work area was created in:  /research/graphics/users/YourId/&lt;br /&gt;
&lt;br /&gt;
     Source code for projects you create and any Brown projects&lt;br /&gt;
        you want to check out from the CVS repository will go here:&lt;br /&gt;
 drwxrwsr-x 2 YourId graphics 4096 Sep 15 11:18 /research/graphics/users/YourId/project&lt;br /&gt;
&lt;br /&gt;
     Your private copy of shared Brown source code was checked out to:&lt;br /&gt;
 drwxrwsr-x 15 YourId graphics 4096 Sep 15 11:20 /research/graphics/users/YourId/common&lt;br /&gt;
&lt;br /&gt;
     Your private copy of previously installed programs and libraries&lt;br /&gt;
        written at Brown are here:&lt;br /&gt;
 drwxrwsr-x 5 YourId graphics 4096 Sep 15 11:18 /research/graphics/users/YourId/install_linux&lt;br /&gt;
 drwxrwsr-x 6 YourId graphics 4096 Sep 15 11:19 /research/graphics/users/YourId/install_WIN32&lt;br /&gt;
 drwxrwsr-x 7 YourId graphics 4096 Sep 15 11:19 /research/graphics/users/YourId/install_OSX&lt;br /&gt;
&lt;br /&gt;
     Your projects can access third party software that has been&lt;br /&gt;
        previously downloaded and installed here:&lt;br /&gt;
 /research/graphics/tools/linux/import/afni       /research/graphics/tools/linux/import/gsl&lt;br /&gt;
 /research/graphics/tools/linux/import/artoolkit  /research/graphics/tools/linux/import/make&lt;br /&gt;
 /research/graphics/tools/linux/import/blitz      /research/graphics/tools/linux/import/mricron&lt;br /&gt;
 /research/graphics/tools/linux/import/build      /research/graphics/tools/linux/import/nifti&lt;br /&gt;
 /research/graphics/tools/linux/import/camino     /research/graphics/tools/linux/import/qt&lt;br /&gt;
 /research/graphics/tools/linux/import/cg         /research/graphics/tools/linux/import/scalable&lt;br /&gt;
 /research/graphics/tools/linux/import/dtk        /research/graphics/tools/linux/import/sdl&lt;br /&gt;
 /research/graphics/tools/linux/import/ftgl       /research/graphics/tools/linux/import/vrpn&lt;br /&gt;
 /research/graphics/tools/linux/import/g3d        /research/graphics/tools/linux/import/xerces&lt;br /&gt;
 /research/graphics/tools/linux/import/glut&lt;br /&gt;
&lt;br /&gt;
 *****  The new.g.user.sh script has successfully completed.  *****&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* To setup your envionment each time you login modify your default login script.  First you need to know if you are running the &#039;&#039;&#039;tcsh&#039;&#039;&#039; or &#039;&#039;&#039;bash&#039;&#039;&#039; shell.&lt;br /&gt;
  &lt;br /&gt;
  &amp;gt; finger  $USER&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;&amp;quot;Shell:&amp;quot;&#039;&#039;&#039; field in the output will be either &#039;&#039;&#039;/bin/tcsh&#039;&#039;&#039; or &#039;&#039;&#039;/bin/bash&#039;&#039;&#039;.  If you are running &#039;&#039;&#039;tcsh&#039;&#039;&#039; then edit &#039;&#039;&#039;$HOME/.cshrc&#039;&#039;&#039; and add this line at the end:&lt;br /&gt;
&lt;br /&gt;
 source   /research/graphics/tools/linux/install_linux/bin/setup/g.login.csh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are running &#039;&#039;&#039;bash&#039;&#039;&#039; then instead edit &#039;&#039;&#039;$HOME/.bashrc&#039;&#039;&#039; and add this line at the end:&lt;br /&gt;
&lt;br /&gt;
 source  /research/graphics/tools/linux/install_linux/bin/setup/g.login.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can check your results by logging out and then logging in again.  This command will list your environment variables.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; printenv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It will list all your variables, but you should see that these variables are set:&amp;lt;br&amp;gt;&lt;br /&gt;
 CVSROOT   GARCH   G   GTO   GROOT   G_IMPORT   G_COMPILER&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additionally the variable needed to access the NAG library are set up.  These variables are not part of the G build environment, but are needed for programs that use the NAG libraries.  You can override them if they&lt;br /&gt;
conflict with your environment.&lt;br /&gt;
&lt;br /&gt;
The NAG libraries are installed and supported by tStaff.  If you have any trouble with these settings contact tStaff.&lt;br /&gt;
&lt;br /&gt;
The NAG environment variable settings are:&lt;br /&gt;
&lt;br /&gt;
 LM_LICENSE_FILE  /cfarm/nag/license.dat:/com/nag/license.dat&lt;br /&gt;
 NAG_KUSARI_FILE  /com/nag/kusari.dat&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Get_a_Linux_Account&amp;diff=4865</id>
		<title>Get a Linux Account</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Get_a_Linux_Account&amp;diff=4865"/>
		<updated>2011-06-22T17:56:21Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You will need Linux and Windows accounts made for you by tStaff.  Before you do anything double check to see that your primary group is graphics.  If it is not ask tStaff (mail problem@cs.brown.edu) to change it for you.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; groups&lt;br /&gt;
 graphics  grad  guest               # The first item must be graphics.&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Introduction_to_CVS&amp;diff=4864</id>
		<title>Introduction to CVS</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Introduction_to_CVS&amp;diff=4864"/>
		<updated>2011-06-22T17:54:50Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CVS repository is accessed by setting the &#039;&#039;&#039;CVSROOT&#039;&#039; variable.  Once set you will be able to checkout code and make updates to the repository.  Complete instruction for setting up your environment including the CVSROOT variable is described in the sections [[Automated Quick Start]] and [[Quick Start for CIT Users|Manual Quick Start]].&lt;br /&gt;
&lt;br /&gt;
The CVS repository has the golden copies of our software.  It is a high valued item so you need to use caution whenever you modify it.  It is important to understand how CVS works and what effects CVS command have.  If you are new to CVS there are many tutorials online to help you get started.  Note that deleting or renaming directories in the CVS repository needs to be done by an administrator.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Unix set &#039;&#039;&#039;CVSROOT&#039;&#039;&#039; to:  &amp;lt;code&amp;gt;/research/graphics/cvsroot/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On Windows set &#039;&#039;&#039;CVSROOT&#039;&#039;&#039; to:  &amp;lt;code&amp;gt;Y:\research\graphics\cvsroot\&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 One of many online tutorials:  http://kuparinen.org/martti/comp/cvs/cvs.html &lt;br /&gt;
 One page cheat sheet for CVS:  http://www.bravegnu.org/cvscheat/cvscheat.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CAUTION FOR WINDOWS USERS:&#039;&#039;&#039;  The free versions of CVS we&#039;ve tried do not work reliably on Windows.  Unless you understand the underlying issues involved and carefully check your work you should perform CVS operations on Unix.  It is generally safe to do a read-only check out of software from CVS on Windows.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Windows developers it is imperative that when checking in text files that they use Linux style Line Feed (LF) delimiters.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The default delimiter on Windows is Carriage Return and Line Feed (CR/LF).  To create text files with line feed delimiters you can either change your editor settings or use a conversion tool.  Many editors do not support end of line settings.  The Cygwin &#039;&#039;&#039;vim&#039;&#039;&#039; editor installed on the standard Brown desktop creates files with Line Feed delimiters.  To convert files the &amp;lt;tt&amp;gt;dos2unix&amp;lt;/tt&amp;gt; command is available on Linux and with Cygwin on Windows.&lt;br /&gt;
&lt;br /&gt;
You can access files in your Linux sandbox from Windows using VPN.  This can be slow, unreliable, and requires you be connected to the Brown CS network.  If you are working on a Windows machine in the CS department the VPN connection is automatically established.&lt;br /&gt;
&lt;br /&gt;
Alternatively you can check out files on Linux and copy them over to Windows.  When you are done, copy them back to a CS Linux system, optionally convert end of lines, and check them in.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Quick_Start_for_CIT_Users&amp;diff=4863</id>
		<title>Quick Start for CIT Users</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Quick_Start_for_CIT_Users&amp;diff=4863"/>
		<updated>2011-06-22T17:49:19Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Get Third Party Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are terse instructions for setting up a typical sandbox at Brown using Linux.  Even if you intend to develop on a different platform such as Windows you should initially get set up on Linux.  If you need more explicit instructions or you want a more complex setup then revert back to the full instructions.  &lt;br /&gt;
&lt;br /&gt;
== Create your Sandbox ==&lt;br /&gt;
&lt;br /&gt;
Create a user directory for yourself in the groups work area.  Be sure to use your login name as the directory name.  Before you do anything double check to see that your primary group is graphics.  If it is not ask tStaff (mail problem@cs.brown.edu) to change it for you.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; groups&lt;br /&gt;
 graphics  grad  guest               # The first item must be graphics.&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER&lt;br /&gt;
&lt;br /&gt;
== Set Environment Variables ==&lt;br /&gt;
&lt;br /&gt;
Setup your environment variables in the login script for your shell.  If you are using Windows you will also want to set these variables on your Windows system as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               Linux                             Windows&lt;br /&gt;
&lt;br /&gt;
 CVSROOT   /research/graphics/cvsroot        Y:\research\graphics\cvsroot&lt;br /&gt;
 GROOT     /research/graphics                Y:\research\graphics&lt;br /&gt;
 G         /research/graphics/users/$USER    Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;&lt;br /&gt;
 GTO       /research/graphics/users/$USER    Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;&lt;br /&gt;
 GARCH     linux                             WIN32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;G_COMPILER&#039;&#039;&#039; variable is set to the compiler you want to work with.  This may change depending on project requirements.  Most projects will build if you set it to &#039;&#039;&#039;gcc4&#039;&#039;&#039; on Linux and &#039;&#039;&#039;cl9&#039;&#039;&#039; on Windows.  Supported settings are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               Linux                             Windows&lt;br /&gt;
&lt;br /&gt;
          gcc2 - gcc version 2.95            cl6 - Microsoft Studio version 6      &lt;br /&gt;
          gcc3 - gcc version 3.4             cl8 - Microsoft Studio version 8 (2005)&lt;br /&gt;
          gcc4 - gcc version 4.1             cl9 - Microsoft Studio version 9 (2008)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also on Linux set your umask in your login shell to:  002&lt;br /&gt;
&lt;br /&gt;
 umask  002&lt;br /&gt;
&lt;br /&gt;
== Get the Build System ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/&#039;&#039;&#039; directory has the build make files and shared programs and libraries written at Brown.  You only need the &#039;&#039;&#039;common/build/&#039;&#039;&#039; directory to develop programs, but since you probably will eventually want other common code just check the whole directory out.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER&lt;br /&gt;
 &amp;gt; cvs co common&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When software is installed (via the &amp;quot;make install&amp;quot; command) it is copied to the install directory.  There is an install directory for each platform.  Create install directories for Linux and Windows with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/install_linux&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/install_WIN32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The install directories are populated by a &amp;quot;make install&amp;quot; command and are organized like this:&lt;br /&gt;
&lt;br /&gt;
 install_linux/lib/&amp;lt;Project Name&amp;gt;/lib*.a&lt;br /&gt;
 install_linux/bin/&amp;lt;Project Name&amp;gt;/&amp;lt;Program&amp;gt;&lt;br /&gt;
 install_linux/include/&amp;lt;Project Name&amp;gt;/*.h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Try a simple build to see that everything is properly set up.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER/common/utility&lt;br /&gt;
 &amp;gt; make  all                       # Build the utilities.&lt;br /&gt;
 &amp;gt; make install                    # Install the utilities.&lt;br /&gt;
&lt;br /&gt;
Here is a transcript for [[Building and Installing Common Components]].&lt;br /&gt;
&lt;br /&gt;
This should populate the install directory.  Take a look with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ls  /research/graphics/users/$USER/install_linux/*/*&lt;br /&gt;
&lt;br /&gt;
== Get Project Code ==&lt;br /&gt;
&lt;br /&gt;
Project code is kept in CVS under the &#039;&#039;&#039;project/&#039;&#039;&#039; directory.  Note that inside your sandbox project code can be kept in any directory and you can have multiple versions of projects in different directories.  If you want to work with a project already in CVS then you can check it out now.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER&lt;br /&gt;
 &amp;gt; cvs  co  project/&amp;amp;lt;Project Name&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to create a new project then make a new directory for it in your sandbox.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  -p  /research/graphics/users/$USER/project/&amp;lt;Project Name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You are free to organize your project within the new directory as you see fit.  For instructions on writing make files visit:&lt;br /&gt;
&lt;br /&gt;
 https://sourceforge.net/apps/mediawiki/vrg3d/index.php?title=Writing_Make_Files&lt;br /&gt;
&lt;br /&gt;
== Get Third Party Software ==&lt;br /&gt;
&lt;br /&gt;
Many projects depend on downloaded software.  Create the &#039;&#039;&#039;import/&#039;&#039;&#039; directory in your sandbox where downloaded software is installed.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/import&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The packages you need are determined by the projects you are working on. Project documentation is the first place to check for required software.  Copies of some packages are installed in a shared public area, however the public area may not have the versions your projects require and the installations may change over time without notice.  The only sure fire method is to download and install the software.&lt;br /&gt;
&lt;br /&gt;
To see how the &#039;&#039;&#039;import/&#039;&#039;&#039; directory is organized and what packages are installed browse the public installations:&lt;br /&gt;
&lt;br /&gt;
 /research/graphics/tools/linux/import/...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a copy there that looks like one you need you can first try it and if it doesn&#039;t work then download and install your own copy.  Copy the packages you need from the public area to your own:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; copy  -R  /research/graphics/tools/linux/import/&amp;lt;Package&amp;gt;  /research/graphics/users/$USER/import&lt;br /&gt;
&lt;br /&gt;
== Build a Project on Windows ==&lt;br /&gt;
&lt;br /&gt;
Windows users need a few Unix utilities installed to build projects.  You can check these out of cvs on a Linux computer with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd   /research/graphics/users/$USER         &lt;br /&gt;
 &amp;gt; cvs  co  import/make             # Check out the utilities on a Linux computer.&lt;br /&gt;
             :&lt;br /&gt;
 &amp;gt; ls /research/graphics/users/$USER/import/make/g.utility_1.0/&lt;br /&gt;
 CVS/         cp.exe*    echo.exe*   libiconv2.dll  make.exe*   mkdir_gnu.exe*&lt;br /&gt;
 READ_ME.txt  diff.exe*  false.exe*  libintl3.dll   mkdir.exe*  rm.exe*&lt;br /&gt;
&lt;br /&gt;
Now switch to the Windows computer.  You will need to add the path to &#039;&#039;&#039;g.utility_1.0\&#039;&#039;&#039; to the front of your Windows &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable.  On Windows the path is &#039;&#039;&#039;&amp;quot;Y:\research\graphics\users\&amp;lt;User ID&amp;gt;\import\make\g.utility_1.0&amp;quot;&#039;&#039;&#039; After it is set verify that you can run these utilities from the command shell of your choosing.  The native Windows command shell is &#039;&#039;&#039;cmd.exe&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you&#039;ve not already done so, set your Windows environment variables according to the section &amp;quot;Setting Environment Variables&amp;quot;.  To see if you can build software run the &#039;cmd.exe&#039; shell and try:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\research\graphics\users\&amp;lt;User ID&amp;gt;\common\utility&lt;br /&gt;
 &amp;gt; make  all                                         # Build utilities on Windows.&lt;br /&gt;
 &amp;gt; make  install                                     # Install them to:  install_WIN32/&lt;br /&gt;
&lt;br /&gt;
Finally inspect &#039;&#039;&#039;Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;\install_WIN32&#039;&#039;&#039; to ensure it was properly populated.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Quick_Start_for_CIT_Users&amp;diff=4862</id>
		<title>Quick Start for CIT Users</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Quick_Start_for_CIT_Users&amp;diff=4862"/>
		<updated>2011-06-22T17:48:29Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Build a Project on Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are terse instructions for setting up a typical sandbox at Brown using Linux.  Even if you intend to develop on a different platform such as Windows you should initially get set up on Linux.  If you need more explicit instructions or you want a more complex setup then revert back to the full instructions.  &lt;br /&gt;
&lt;br /&gt;
== Create your Sandbox ==&lt;br /&gt;
&lt;br /&gt;
Create a user directory for yourself in the groups work area.  Be sure to use your login name as the directory name.  Before you do anything double check to see that your primary group is graphics.  If it is not ask tStaff (mail problem@cs.brown.edu) to change it for you.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; groups&lt;br /&gt;
 graphics  grad  guest               # The first item must be graphics.&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER&lt;br /&gt;
&lt;br /&gt;
== Set Environment Variables ==&lt;br /&gt;
&lt;br /&gt;
Setup your environment variables in the login script for your shell.  If you are using Windows you will also want to set these variables on your Windows system as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               Linux                             Windows&lt;br /&gt;
&lt;br /&gt;
 CVSROOT   /research/graphics/cvsroot        Y:\research\graphics\cvsroot&lt;br /&gt;
 GROOT     /research/graphics                Y:\research\graphics&lt;br /&gt;
 G         /research/graphics/users/$USER    Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;&lt;br /&gt;
 GTO       /research/graphics/users/$USER    Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;&lt;br /&gt;
 GARCH     linux                             WIN32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;G_COMPILER&#039;&#039;&#039; variable is set to the compiler you want to work with.  This may change depending on project requirements.  Most projects will build if you set it to &#039;&#039;&#039;gcc4&#039;&#039;&#039; on Linux and &#039;&#039;&#039;cl9&#039;&#039;&#039; on Windows.  Supported settings are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               Linux                             Windows&lt;br /&gt;
&lt;br /&gt;
          gcc2 - gcc version 2.95            cl6 - Microsoft Studio version 6      &lt;br /&gt;
          gcc3 - gcc version 3.4             cl8 - Microsoft Studio version 8 (2005)&lt;br /&gt;
          gcc4 - gcc version 4.1             cl9 - Microsoft Studio version 9 (2008)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also on Linux set your umask in your login shell to:  002&lt;br /&gt;
&lt;br /&gt;
 umask  002&lt;br /&gt;
&lt;br /&gt;
== Get the Build System ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/&#039;&#039;&#039; directory has the build make files and shared programs and libraries written at Brown.  You only need the &#039;&#039;&#039;common/build/&#039;&#039;&#039; directory to develop programs, but since you probably will eventually want other common code just check the whole directory out.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER&lt;br /&gt;
 &amp;gt; cvs co common&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When software is installed (via the &amp;quot;make install&amp;quot; command) it is copied to the install directory.  There is an install directory for each platform.  Create install directories for Linux and Windows with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/install_linux&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/install_WIN32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The install directories are populated by a &amp;quot;make install&amp;quot; command and are organized like this:&lt;br /&gt;
&lt;br /&gt;
 install_linux/lib/&amp;lt;Project Name&amp;gt;/lib*.a&lt;br /&gt;
 install_linux/bin/&amp;lt;Project Name&amp;gt;/&amp;lt;Program&amp;gt;&lt;br /&gt;
 install_linux/include/&amp;lt;Project Name&amp;gt;/*.h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Try a simple build to see that everything is properly set up.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER/common/utility&lt;br /&gt;
 &amp;gt; make  all                       # Build the utilities.&lt;br /&gt;
 &amp;gt; make install                    # Install the utilities.&lt;br /&gt;
&lt;br /&gt;
Here is a transcript for [[Building and Installing Common Components]].&lt;br /&gt;
&lt;br /&gt;
This should populate the install directory.  Take a look with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ls  /research/graphics/users/$USER/install_linux/*/*&lt;br /&gt;
&lt;br /&gt;
== Get Project Code ==&lt;br /&gt;
&lt;br /&gt;
Project code is kept in CVS under the &#039;&#039;&#039;project/&#039;&#039;&#039; directory.  Note that inside your sandbox project code can be kept in any directory and you can have multiple versions of projects in different directories.  If you want to work with a project already in CVS then you can check it out now.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER&lt;br /&gt;
 &amp;gt; cvs  co  project/&amp;amp;lt;Project Name&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to create a new project then make a new directory for it in your sandbox.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  -p  /research/graphics/users/$USER/project/&amp;lt;Project Name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You are free to organize your project within the new directory as you see fit.  For instructions on writing make files visit:&lt;br /&gt;
&lt;br /&gt;
 https://sourceforge.net/apps/mediawiki/vrg3d/index.php?title=Writing_Make_Files&lt;br /&gt;
&lt;br /&gt;
== Get Third Party Software ==&lt;br /&gt;
&lt;br /&gt;
Many projects depend on downloaded software.  Create the &#039;&#039;&#039;import/&#039;&#039;&#039; directory in your sandbox where downloaded software is installed.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/import&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The packages you need are determined by the projects you are working on. Project documentation is the first place to check for required software.  Copies of some packages are installed in a shared public area, however the public area may not have the versions your projects require and the installations may change over time without notice.  The only sure fire method is to download and install the software.&lt;br /&gt;
&lt;br /&gt;
To see how the &#039;&#039;&#039;import/&#039;&#039;&#039; directory is organized and what packages are installed browse the public installations:&lt;br /&gt;
&lt;br /&gt;
 /research/graphics/tools/linux/import/...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a copy there that looks like one you need you can first try it and if it doesn&#039;t work then download and install your own copy.  Copy the packages you need from the public area to your own:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; copy  -R  /research/graphics/tools/linux/import/&amp;lt;Package&amp;gt;  /map/gfx0/users/$USER/import&lt;br /&gt;
&lt;br /&gt;
== Build a Project on Windows ==&lt;br /&gt;
&lt;br /&gt;
Windows users need a few Unix utilities installed to build projects.  You can check these out of cvs on a Linux computer with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd   /research/graphics/users/$USER         &lt;br /&gt;
 &amp;gt; cvs  co  import/make             # Check out the utilities on a Linux computer.&lt;br /&gt;
             :&lt;br /&gt;
 &amp;gt; ls /research/graphics/users/$USER/import/make/g.utility_1.0/&lt;br /&gt;
 CVS/         cp.exe*    echo.exe*   libiconv2.dll  make.exe*   mkdir_gnu.exe*&lt;br /&gt;
 READ_ME.txt  diff.exe*  false.exe*  libintl3.dll   mkdir.exe*  rm.exe*&lt;br /&gt;
&lt;br /&gt;
Now switch to the Windows computer.  You will need to add the path to &#039;&#039;&#039;g.utility_1.0\&#039;&#039;&#039; to the front of your Windows &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable.  On Windows the path is &#039;&#039;&#039;&amp;quot;Y:\research\graphics\users\&amp;lt;User ID&amp;gt;\import\make\g.utility_1.0&amp;quot;&#039;&#039;&#039; After it is set verify that you can run these utilities from the command shell of your choosing.  The native Windows command shell is &#039;&#039;&#039;cmd.exe&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you&#039;ve not already done so, set your Windows environment variables according to the section &amp;quot;Setting Environment Variables&amp;quot;.  To see if you can build software run the &#039;cmd.exe&#039; shell and try:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\research\graphics\users\&amp;lt;User ID&amp;gt;\common\utility&lt;br /&gt;
 &amp;gt; make  all                                         # Build utilities on Windows.&lt;br /&gt;
 &amp;gt; make  install                                     # Install them to:  install_WIN32/&lt;br /&gt;
&lt;br /&gt;
Finally inspect &#039;&#039;&#039;Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;\install_WIN32&#039;&#039;&#039; to ensure it was properly populated.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Quick_Start_for_CIT_Users&amp;diff=4861</id>
		<title>Quick Start for CIT Users</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Quick_Start_for_CIT_Users&amp;diff=4861"/>
		<updated>2011-06-22T17:47:22Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Get Third Party Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are terse instructions for setting up a typical sandbox at Brown using Linux.  Even if you intend to develop on a different platform such as Windows you should initially get set up on Linux.  If you need more explicit instructions or you want a more complex setup then revert back to the full instructions.  &lt;br /&gt;
&lt;br /&gt;
== Create your Sandbox ==&lt;br /&gt;
&lt;br /&gt;
Create a user directory for yourself in the groups work area.  Be sure to use your login name as the directory name.  Before you do anything double check to see that your primary group is graphics.  If it is not ask tStaff (mail problem@cs.brown.edu) to change it for you.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; groups&lt;br /&gt;
 graphics  grad  guest               # The first item must be graphics.&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER&lt;br /&gt;
&lt;br /&gt;
== Set Environment Variables ==&lt;br /&gt;
&lt;br /&gt;
Setup your environment variables in the login script for your shell.  If you are using Windows you will also want to set these variables on your Windows system as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               Linux                             Windows&lt;br /&gt;
&lt;br /&gt;
 CVSROOT   /research/graphics/cvsroot        Y:\research\graphics\cvsroot&lt;br /&gt;
 GROOT     /research/graphics                Y:\research\graphics&lt;br /&gt;
 G         /research/graphics/users/$USER    Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;&lt;br /&gt;
 GTO       /research/graphics/users/$USER    Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;&lt;br /&gt;
 GARCH     linux                             WIN32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;G_COMPILER&#039;&#039;&#039; variable is set to the compiler you want to work with.  This may change depending on project requirements.  Most projects will build if you set it to &#039;&#039;&#039;gcc4&#039;&#039;&#039; on Linux and &#039;&#039;&#039;cl9&#039;&#039;&#039; on Windows.  Supported settings are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               Linux                             Windows&lt;br /&gt;
&lt;br /&gt;
          gcc2 - gcc version 2.95            cl6 - Microsoft Studio version 6      &lt;br /&gt;
          gcc3 - gcc version 3.4             cl8 - Microsoft Studio version 8 (2005)&lt;br /&gt;
          gcc4 - gcc version 4.1             cl9 - Microsoft Studio version 9 (2008)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also on Linux set your umask in your login shell to:  002&lt;br /&gt;
&lt;br /&gt;
 umask  002&lt;br /&gt;
&lt;br /&gt;
== Get the Build System ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/&#039;&#039;&#039; directory has the build make files and shared programs and libraries written at Brown.  You only need the &#039;&#039;&#039;common/build/&#039;&#039;&#039; directory to develop programs, but since you probably will eventually want other common code just check the whole directory out.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER&lt;br /&gt;
 &amp;gt; cvs co common&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When software is installed (via the &amp;quot;make install&amp;quot; command) it is copied to the install directory.  There is an install directory for each platform.  Create install directories for Linux and Windows with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/install_linux&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/install_WIN32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The install directories are populated by a &amp;quot;make install&amp;quot; command and are organized like this:&lt;br /&gt;
&lt;br /&gt;
 install_linux/lib/&amp;lt;Project Name&amp;gt;/lib*.a&lt;br /&gt;
 install_linux/bin/&amp;lt;Project Name&amp;gt;/&amp;lt;Program&amp;gt;&lt;br /&gt;
 install_linux/include/&amp;lt;Project Name&amp;gt;/*.h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Try a simple build to see that everything is properly set up.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER/common/utility&lt;br /&gt;
 &amp;gt; make  all                       # Build the utilities.&lt;br /&gt;
 &amp;gt; make install                    # Install the utilities.&lt;br /&gt;
&lt;br /&gt;
Here is a transcript for [[Building and Installing Common Components]].&lt;br /&gt;
&lt;br /&gt;
This should populate the install directory.  Take a look with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ls  /research/graphics/users/$USER/install_linux/*/*&lt;br /&gt;
&lt;br /&gt;
== Get Project Code ==&lt;br /&gt;
&lt;br /&gt;
Project code is kept in CVS under the &#039;&#039;&#039;project/&#039;&#039;&#039; directory.  Note that inside your sandbox project code can be kept in any directory and you can have multiple versions of projects in different directories.  If you want to work with a project already in CVS then you can check it out now.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER&lt;br /&gt;
 &amp;gt; cvs  co  project/&amp;amp;lt;Project Name&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to create a new project then make a new directory for it in your sandbox.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  -p  /research/graphics/users/$USER/project/&amp;lt;Project Name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You are free to organize your project within the new directory as you see fit.  For instructions on writing make files visit:&lt;br /&gt;
&lt;br /&gt;
 https://sourceforge.net/apps/mediawiki/vrg3d/index.php?title=Writing_Make_Files&lt;br /&gt;
&lt;br /&gt;
== Get Third Party Software ==&lt;br /&gt;
&lt;br /&gt;
Many projects depend on downloaded software.  Create the &#039;&#039;&#039;import/&#039;&#039;&#039; directory in your sandbox where downloaded software is installed.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/import&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The packages you need are determined by the projects you are working on. Project documentation is the first place to check for required software.  Copies of some packages are installed in a shared public area, however the public area may not have the versions your projects require and the installations may change over time without notice.  The only sure fire method is to download and install the software.&lt;br /&gt;
&lt;br /&gt;
To see how the &#039;&#039;&#039;import/&#039;&#039;&#039; directory is organized and what packages are installed browse the public installations:&lt;br /&gt;
&lt;br /&gt;
 /research/graphics/tools/linux/import/...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a copy there that looks like one you need you can first try it and if it doesn&#039;t work then download and install your own copy.  Copy the packages you need from the public area to your own:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; copy  -R  /research/graphics/tools/linux/import/&amp;lt;Package&amp;gt;  /map/gfx0/users/$USER/import&lt;br /&gt;
&lt;br /&gt;
== Build a Project on Windows ==&lt;br /&gt;
&lt;br /&gt;
Windows users need a few Unix utilities installed to build projects.  You can check these out of cvs on a Linux computer with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd   /map/gfx0/users/$USER         &lt;br /&gt;
 &amp;gt; cvs  co  import/make             # Check out the utilities on a Linux computer.&lt;br /&gt;
             :&lt;br /&gt;
 &amp;gt; ls /map/gfx0/users/$USER/import/make/g.utility_1.0/&lt;br /&gt;
 CVS/         cp.exe*    echo.exe*   libiconv2.dll  make.exe*   mkdir_gnu.exe*&lt;br /&gt;
 READ_ME.txt  diff.exe*  false.exe*  libintl3.dll   mkdir.exe*  rm.exe*&lt;br /&gt;
&lt;br /&gt;
Now switch to the Windows computer.  You will need to add the path to &#039;&#039;&#039;g.utility_1.0\&#039;&#039;&#039; to the front of your Windows &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable.  On Windows the path is &#039;&#039;&#039;&amp;quot;Y:\map\gfx0\users\&amp;lt;User ID&amp;gt;\import\make\g.utility_1.0&amp;quot;&#039;&#039;&#039; After it is set verify that you can run these utilities from the command shell of your choosing.  The native Windows command shell is &#039;&#039;&#039;cmd.exe&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you&#039;ve not already done so, set your Windows environment variables according to the section &amp;quot;Setting Environment Variables&amp;quot;.  To see if you can build software run the &#039;cmd.exe&#039; shell and try:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\map\gfx0\users\&amp;lt;User ID&amp;gt;\common\utility&lt;br /&gt;
 &amp;gt; make  all                                         # Build utilities on Windows.&lt;br /&gt;
 &amp;gt; make  install                                     # Install them to:  install_WIN32/&lt;br /&gt;
&lt;br /&gt;
Finally inspect &#039;&#039;&#039;Y:\map\gfx0\users\&amp;amp;lt;User ID&amp;amp;gt;\install_WIN32&#039;&#039;&#039; to ensure it was properly populated.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Quick_Start_for_CIT_Users&amp;diff=4860</id>
		<title>Quick Start for CIT Users</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Quick_Start_for_CIT_Users&amp;diff=4860"/>
		<updated>2011-06-22T17:46:55Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Get Project Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are terse instructions for setting up a typical sandbox at Brown using Linux.  Even if you intend to develop on a different platform such as Windows you should initially get set up on Linux.  If you need more explicit instructions or you want a more complex setup then revert back to the full instructions.  &lt;br /&gt;
&lt;br /&gt;
== Create your Sandbox ==&lt;br /&gt;
&lt;br /&gt;
Create a user directory for yourself in the groups work area.  Be sure to use your login name as the directory name.  Before you do anything double check to see that your primary group is graphics.  If it is not ask tStaff (mail problem@cs.brown.edu) to change it for you.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; groups&lt;br /&gt;
 graphics  grad  guest               # The first item must be graphics.&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER&lt;br /&gt;
&lt;br /&gt;
== Set Environment Variables ==&lt;br /&gt;
&lt;br /&gt;
Setup your environment variables in the login script for your shell.  If you are using Windows you will also want to set these variables on your Windows system as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               Linux                             Windows&lt;br /&gt;
&lt;br /&gt;
 CVSROOT   /research/graphics/cvsroot        Y:\research\graphics\cvsroot&lt;br /&gt;
 GROOT     /research/graphics                Y:\research\graphics&lt;br /&gt;
 G         /research/graphics/users/$USER    Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;&lt;br /&gt;
 GTO       /research/graphics/users/$USER    Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;&lt;br /&gt;
 GARCH     linux                             WIN32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;G_COMPILER&#039;&#039;&#039; variable is set to the compiler you want to work with.  This may change depending on project requirements.  Most projects will build if you set it to &#039;&#039;&#039;gcc4&#039;&#039;&#039; on Linux and &#039;&#039;&#039;cl9&#039;&#039;&#039; on Windows.  Supported settings are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               Linux                             Windows&lt;br /&gt;
&lt;br /&gt;
          gcc2 - gcc version 2.95            cl6 - Microsoft Studio version 6      &lt;br /&gt;
          gcc3 - gcc version 3.4             cl8 - Microsoft Studio version 8 (2005)&lt;br /&gt;
          gcc4 - gcc version 4.1             cl9 - Microsoft Studio version 9 (2008)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also on Linux set your umask in your login shell to:  002&lt;br /&gt;
&lt;br /&gt;
 umask  002&lt;br /&gt;
&lt;br /&gt;
== Get the Build System ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/&#039;&#039;&#039; directory has the build make files and shared programs and libraries written at Brown.  You only need the &#039;&#039;&#039;common/build/&#039;&#039;&#039; directory to develop programs, but since you probably will eventually want other common code just check the whole directory out.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER&lt;br /&gt;
 &amp;gt; cvs co common&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When software is installed (via the &amp;quot;make install&amp;quot; command) it is copied to the install directory.  There is an install directory for each platform.  Create install directories for Linux and Windows with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/install_linux&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/install_WIN32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The install directories are populated by a &amp;quot;make install&amp;quot; command and are organized like this:&lt;br /&gt;
&lt;br /&gt;
 install_linux/lib/&amp;lt;Project Name&amp;gt;/lib*.a&lt;br /&gt;
 install_linux/bin/&amp;lt;Project Name&amp;gt;/&amp;lt;Program&amp;gt;&lt;br /&gt;
 install_linux/include/&amp;lt;Project Name&amp;gt;/*.h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Try a simple build to see that everything is properly set up.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER/common/utility&lt;br /&gt;
 &amp;gt; make  all                       # Build the utilities.&lt;br /&gt;
 &amp;gt; make install                    # Install the utilities.&lt;br /&gt;
&lt;br /&gt;
Here is a transcript for [[Building and Installing Common Components]].&lt;br /&gt;
&lt;br /&gt;
This should populate the install directory.  Take a look with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ls  /research/graphics/users/$USER/install_linux/*/*&lt;br /&gt;
&lt;br /&gt;
== Get Project Code ==&lt;br /&gt;
&lt;br /&gt;
Project code is kept in CVS under the &#039;&#039;&#039;project/&#039;&#039;&#039; directory.  Note that inside your sandbox project code can be kept in any directory and you can have multiple versions of projects in different directories.  If you want to work with a project already in CVS then you can check it out now.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER&lt;br /&gt;
 &amp;gt; cvs  co  project/&amp;amp;lt;Project Name&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to create a new project then make a new directory for it in your sandbox.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  -p  /research/graphics/users/$USER/project/&amp;lt;Project Name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You are free to organize your project within the new directory as you see fit.  For instructions on writing make files visit:&lt;br /&gt;
&lt;br /&gt;
 https://sourceforge.net/apps/mediawiki/vrg3d/index.php?title=Writing_Make_Files&lt;br /&gt;
&lt;br /&gt;
== Get Third Party Software ==&lt;br /&gt;
&lt;br /&gt;
Many projects depend on downloaded software.  Create the &#039;&#039;&#039;import/&#039;&#039;&#039; directory in your sandbox where downloaded software is installed.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  /map/gfx0/users/$USER/import&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The packages you need are determined by the projects you are working on. Project documentation is the first place to check for required software.  Copies of some packages are installed in a shared public area, however the public area may not have the versions your projects require and the installations may change over time without notice.  The only sure fire method is to download and install the software.&lt;br /&gt;
&lt;br /&gt;
To see how the &#039;&#039;&#039;import/&#039;&#039;&#039; directory is organized and what packages are installed browse the public installations:&lt;br /&gt;
&lt;br /&gt;
 /map/gfx0/tools/linux/import/...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a copy there that looks like one you need you can first try it and if it doesn&#039;t work then download and install your own copy.  Copy the packages you need from the public area to your own:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; copy  -R  /map/gfx0/tools/linux/import/&amp;lt;Package&amp;gt;  /map/gfx0/users/$USER/import&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build a Project on Windows ==&lt;br /&gt;
&lt;br /&gt;
Windows users need a few Unix utilities installed to build projects.  You can check these out of cvs on a Linux computer with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd   /map/gfx0/users/$USER         &lt;br /&gt;
 &amp;gt; cvs  co  import/make             # Check out the utilities on a Linux computer.&lt;br /&gt;
             :&lt;br /&gt;
 &amp;gt; ls /map/gfx0/users/$USER/import/make/g.utility_1.0/&lt;br /&gt;
 CVS/         cp.exe*    echo.exe*   libiconv2.dll  make.exe*   mkdir_gnu.exe*&lt;br /&gt;
 READ_ME.txt  diff.exe*  false.exe*  libintl3.dll   mkdir.exe*  rm.exe*&lt;br /&gt;
&lt;br /&gt;
Now switch to the Windows computer.  You will need to add the path to &#039;&#039;&#039;g.utility_1.0\&#039;&#039;&#039; to the front of your Windows &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable.  On Windows the path is &#039;&#039;&#039;&amp;quot;Y:\map\gfx0\users\&amp;lt;User ID&amp;gt;\import\make\g.utility_1.0&amp;quot;&#039;&#039;&#039; After it is set verify that you can run these utilities from the command shell of your choosing.  The native Windows command shell is &#039;&#039;&#039;cmd.exe&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you&#039;ve not already done so, set your Windows environment variables according to the section &amp;quot;Setting Environment Variables&amp;quot;.  To see if you can build software run the &#039;cmd.exe&#039; shell and try:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\map\gfx0\users\&amp;lt;User ID&amp;gt;\common\utility&lt;br /&gt;
 &amp;gt; make  all                                         # Build utilities on Windows.&lt;br /&gt;
 &amp;gt; make  install                                     # Install them to:  install_WIN32/&lt;br /&gt;
&lt;br /&gt;
Finally inspect &#039;&#039;&#039;Y:\map\gfx0\users\&amp;amp;lt;User ID&amp;amp;gt;\install_WIN32&#039;&#039;&#039; to ensure it was properly populated.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Quick_Start_for_CIT_Users&amp;diff=4859</id>
		<title>Quick Start for CIT Users</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Quick_Start_for_CIT_Users&amp;diff=4859"/>
		<updated>2011-06-22T17:46:28Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Get the Build System */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are terse instructions for setting up a typical sandbox at Brown using Linux.  Even if you intend to develop on a different platform such as Windows you should initially get set up on Linux.  If you need more explicit instructions or you want a more complex setup then revert back to the full instructions.  &lt;br /&gt;
&lt;br /&gt;
== Create your Sandbox ==&lt;br /&gt;
&lt;br /&gt;
Create a user directory for yourself in the groups work area.  Be sure to use your login name as the directory name.  Before you do anything double check to see that your primary group is graphics.  If it is not ask tStaff (mail problem@cs.brown.edu) to change it for you.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; groups&lt;br /&gt;
 graphics  grad  guest               # The first item must be graphics.&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER&lt;br /&gt;
&lt;br /&gt;
== Set Environment Variables ==&lt;br /&gt;
&lt;br /&gt;
Setup your environment variables in the login script for your shell.  If you are using Windows you will also want to set these variables on your Windows system as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               Linux                             Windows&lt;br /&gt;
&lt;br /&gt;
 CVSROOT   /research/graphics/cvsroot        Y:\research\graphics\cvsroot&lt;br /&gt;
 GROOT     /research/graphics                Y:\research\graphics&lt;br /&gt;
 G         /research/graphics/users/$USER    Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;&lt;br /&gt;
 GTO       /research/graphics/users/$USER    Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;&lt;br /&gt;
 GARCH     linux                             WIN32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;G_COMPILER&#039;&#039;&#039; variable is set to the compiler you want to work with.  This may change depending on project requirements.  Most projects will build if you set it to &#039;&#039;&#039;gcc4&#039;&#039;&#039; on Linux and &#039;&#039;&#039;cl9&#039;&#039;&#039; on Windows.  Supported settings are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               Linux                             Windows&lt;br /&gt;
&lt;br /&gt;
          gcc2 - gcc version 2.95            cl6 - Microsoft Studio version 6      &lt;br /&gt;
          gcc3 - gcc version 3.4             cl8 - Microsoft Studio version 8 (2005)&lt;br /&gt;
          gcc4 - gcc version 4.1             cl9 - Microsoft Studio version 9 (2008)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also on Linux set your umask in your login shell to:  002&lt;br /&gt;
&lt;br /&gt;
 umask  002&lt;br /&gt;
&lt;br /&gt;
== Get the Build System ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/&#039;&#039;&#039; directory has the build make files and shared programs and libraries written at Brown.  You only need the &#039;&#039;&#039;common/build/&#039;&#039;&#039; directory to develop programs, but since you probably will eventually want other common code just check the whole directory out.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER&lt;br /&gt;
 &amp;gt; cvs co common&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When software is installed (via the &amp;quot;make install&amp;quot; command) it is copied to the install directory.  There is an install directory for each platform.  Create install directories for Linux and Windows with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/install_linux&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER/install_WIN32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The install directories are populated by a &amp;quot;make install&amp;quot; command and are organized like this:&lt;br /&gt;
&lt;br /&gt;
 install_linux/lib/&amp;lt;Project Name&amp;gt;/lib*.a&lt;br /&gt;
 install_linux/bin/&amp;lt;Project Name&amp;gt;/&amp;lt;Program&amp;gt;&lt;br /&gt;
 install_linux/include/&amp;lt;Project Name&amp;gt;/*.h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Try a simple build to see that everything is properly set up.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER/common/utility&lt;br /&gt;
 &amp;gt; make  all                       # Build the utilities.&lt;br /&gt;
 &amp;gt; make install                    # Install the utilities.&lt;br /&gt;
&lt;br /&gt;
Here is a transcript for [[Building and Installing Common Components]].&lt;br /&gt;
&lt;br /&gt;
This should populate the install directory.  Take a look with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ls  /research/graphics/users/$USER/install_linux/*/*&lt;br /&gt;
&lt;br /&gt;
== Get Project Code ==&lt;br /&gt;
&lt;br /&gt;
Project code is kept in CVS under the &#039;&#039;&#039;project/&#039;&#039;&#039; directory.  Note that inside your sandbox project code can be kept in any directory and you can have multiple versions of projects in different directories.  If you want to work with a project already in CVS then you can check it out now.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /map/gfx0/users/$USER&lt;br /&gt;
 &amp;gt; cvs  co  project/&amp;amp;lt;Project Name&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to create a new project then make a new directory for it in your sandbox.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  -p  /map/gfx0/users/$USER/project/&amp;lt;Project Name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You are free to organize your project within the new directory as you see fit.  For instructions on writing make files visit:&lt;br /&gt;
&lt;br /&gt;
 https://sourceforge.net/apps/mediawiki/vrg3d/index.php?title=Writing_Make_Files&lt;br /&gt;
&lt;br /&gt;
== Get Third Party Software ==&lt;br /&gt;
&lt;br /&gt;
Many projects depend on downloaded software.  Create the &#039;&#039;&#039;import/&#039;&#039;&#039; directory in your sandbox where downloaded software is installed.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  /map/gfx0/users/$USER/import&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The packages you need are determined by the projects you are working on. Project documentation is the first place to check for required software.  Copies of some packages are installed in a shared public area, however the public area may not have the versions your projects require and the installations may change over time without notice.  The only sure fire method is to download and install the software.&lt;br /&gt;
&lt;br /&gt;
To see how the &#039;&#039;&#039;import/&#039;&#039;&#039; directory is organized and what packages are installed browse the public installations:&lt;br /&gt;
&lt;br /&gt;
 /map/gfx0/tools/linux/import/...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a copy there that looks like one you need you can first try it and if it doesn&#039;t work then download and install your own copy.  Copy the packages you need from the public area to your own:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; copy  -R  /map/gfx0/tools/linux/import/&amp;lt;Package&amp;gt;  /map/gfx0/users/$USER/import&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build a Project on Windows ==&lt;br /&gt;
&lt;br /&gt;
Windows users need a few Unix utilities installed to build projects.  You can check these out of cvs on a Linux computer with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd   /map/gfx0/users/$USER         &lt;br /&gt;
 &amp;gt; cvs  co  import/make             # Check out the utilities on a Linux computer.&lt;br /&gt;
             :&lt;br /&gt;
 &amp;gt; ls /map/gfx0/users/$USER/import/make/g.utility_1.0/&lt;br /&gt;
 CVS/         cp.exe*    echo.exe*   libiconv2.dll  make.exe*   mkdir_gnu.exe*&lt;br /&gt;
 READ_ME.txt  diff.exe*  false.exe*  libintl3.dll   mkdir.exe*  rm.exe*&lt;br /&gt;
&lt;br /&gt;
Now switch to the Windows computer.  You will need to add the path to &#039;&#039;&#039;g.utility_1.0\&#039;&#039;&#039; to the front of your Windows &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable.  On Windows the path is &#039;&#039;&#039;&amp;quot;Y:\map\gfx0\users\&amp;lt;User ID&amp;gt;\import\make\g.utility_1.0&amp;quot;&#039;&#039;&#039; After it is set verify that you can run these utilities from the command shell of your choosing.  The native Windows command shell is &#039;&#039;&#039;cmd.exe&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you&#039;ve not already done so, set your Windows environment variables according to the section &amp;quot;Setting Environment Variables&amp;quot;.  To see if you can build software run the &#039;cmd.exe&#039; shell and try:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\map\gfx0\users\&amp;lt;User ID&amp;gt;\common\utility&lt;br /&gt;
 &amp;gt; make  all                                         # Build utilities on Windows.&lt;br /&gt;
 &amp;gt; make  install                                     # Install them to:  install_WIN32/&lt;br /&gt;
&lt;br /&gt;
Finally inspect &#039;&#039;&#039;Y:\map\gfx0\users\&amp;amp;lt;User ID&amp;amp;gt;\install_WIN32&#039;&#039;&#039; to ensure it was properly populated.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Quick_Start_for_CIT_Users&amp;diff=4858</id>
		<title>Quick Start for CIT Users</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Quick_Start_for_CIT_Users&amp;diff=4858"/>
		<updated>2011-06-22T17:45:52Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Set Environment Variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are terse instructions for setting up a typical sandbox at Brown using Linux.  Even if you intend to develop on a different platform such as Windows you should initially get set up on Linux.  If you need more explicit instructions or you want a more complex setup then revert back to the full instructions.  &lt;br /&gt;
&lt;br /&gt;
== Create your Sandbox ==&lt;br /&gt;
&lt;br /&gt;
Create a user directory for yourself in the groups work area.  Be sure to use your login name as the directory name.  Before you do anything double check to see that your primary group is graphics.  If it is not ask tStaff (mail problem@cs.brown.edu) to change it for you.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; groups&lt;br /&gt;
 graphics  grad  guest               # The first item must be graphics.&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER&lt;br /&gt;
&lt;br /&gt;
== Set Environment Variables ==&lt;br /&gt;
&lt;br /&gt;
Setup your environment variables in the login script for your shell.  If you are using Windows you will also want to set these variables on your Windows system as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               Linux                             Windows&lt;br /&gt;
&lt;br /&gt;
 CVSROOT   /research/graphics/cvsroot        Y:\research\graphics\cvsroot&lt;br /&gt;
 GROOT     /research/graphics                Y:\research\graphics&lt;br /&gt;
 G         /research/graphics/users/$USER    Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;&lt;br /&gt;
 GTO       /research/graphics/users/$USER    Y:\research\graphics\users\&amp;amp;lt;User ID&amp;amp;gt;&lt;br /&gt;
 GARCH     linux                             WIN32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;G_COMPILER&#039;&#039;&#039; variable is set to the compiler you want to work with.  This may change depending on project requirements.  Most projects will build if you set it to &#039;&#039;&#039;gcc4&#039;&#039;&#039; on Linux and &#039;&#039;&#039;cl9&#039;&#039;&#039; on Windows.  Supported settings are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               Linux                             Windows&lt;br /&gt;
&lt;br /&gt;
          gcc2 - gcc version 2.95            cl6 - Microsoft Studio version 6      &lt;br /&gt;
          gcc3 - gcc version 3.4             cl8 - Microsoft Studio version 8 (2005)&lt;br /&gt;
          gcc4 - gcc version 4.1             cl9 - Microsoft Studio version 9 (2008)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also on Linux set your umask in your login shell to:  002&lt;br /&gt;
&lt;br /&gt;
 umask  002&lt;br /&gt;
&lt;br /&gt;
== Get the Build System ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/&#039;&#039;&#039; directory has the build make files and shared programs and libraries written at Brown.  You only need the &#039;&#039;&#039;common/build/&#039;&#039;&#039; directory to develop programs, but since you probably will eventually want other common code just check the whole directory out.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /map/gfx0/users/$USER&lt;br /&gt;
 &amp;gt; cvs co common&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When software is installed (via the &amp;quot;make install&amp;quot; command) it is copied to the install directory.  There is an install directory for each platform.  Create install directories for Linux and Windows with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  /map/gfx0/users/$USER/install_linux&lt;br /&gt;
 &amp;gt; mkdir  /map/gfx0/users/$USER/install_WIN32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The install directories are populated by a &amp;quot;make install&amp;quot; command and are organized like this:&lt;br /&gt;
&lt;br /&gt;
 install_linux/lib/&amp;lt;Project Name&amp;gt;/lib*.a&lt;br /&gt;
 install_linux/bin/&amp;lt;Project Name&amp;gt;/&amp;lt;Program&amp;gt;&lt;br /&gt;
 install_linux/include/&amp;lt;Project Name&amp;gt;/*.h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Try a simple build to see that everything is properly set up.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /map/gfx0/users/$USER/common/utility&lt;br /&gt;
 &amp;gt; make  all                       # Build the utilities.&lt;br /&gt;
 &amp;gt; make install                    # Install the utilities.&lt;br /&gt;
&lt;br /&gt;
Here is a transcript for [[Building and Installing Common Components]].&lt;br /&gt;
&lt;br /&gt;
This should populate the install directory.  Take a look with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ls  /map/gfx0/users/$USER/install_linux/*/*&lt;br /&gt;
&lt;br /&gt;
== Get Project Code ==&lt;br /&gt;
&lt;br /&gt;
Project code is kept in CVS under the &#039;&#039;&#039;project/&#039;&#039;&#039; directory.  Note that inside your sandbox project code can be kept in any directory and you can have multiple versions of projects in different directories.  If you want to work with a project already in CVS then you can check it out now.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /map/gfx0/users/$USER&lt;br /&gt;
 &amp;gt; cvs  co  project/&amp;amp;lt;Project Name&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to create a new project then make a new directory for it in your sandbox.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  -p  /map/gfx0/users/$USER/project/&amp;lt;Project Name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You are free to organize your project within the new directory as you see fit.  For instructions on writing make files visit:&lt;br /&gt;
&lt;br /&gt;
 https://sourceforge.net/apps/mediawiki/vrg3d/index.php?title=Writing_Make_Files&lt;br /&gt;
&lt;br /&gt;
== Get Third Party Software ==&lt;br /&gt;
&lt;br /&gt;
Many projects depend on downloaded software.  Create the &#039;&#039;&#039;import/&#039;&#039;&#039; directory in your sandbox where downloaded software is installed.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  /map/gfx0/users/$USER/import&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The packages you need are determined by the projects you are working on. Project documentation is the first place to check for required software.  Copies of some packages are installed in a shared public area, however the public area may not have the versions your projects require and the installations may change over time without notice.  The only sure fire method is to download and install the software.&lt;br /&gt;
&lt;br /&gt;
To see how the &#039;&#039;&#039;import/&#039;&#039;&#039; directory is organized and what packages are installed browse the public installations:&lt;br /&gt;
&lt;br /&gt;
 /map/gfx0/tools/linux/import/...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a copy there that looks like one you need you can first try it and if it doesn&#039;t work then download and install your own copy.  Copy the packages you need from the public area to your own:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; copy  -R  /map/gfx0/tools/linux/import/&amp;lt;Package&amp;gt;  /map/gfx0/users/$USER/import&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build a Project on Windows ==&lt;br /&gt;
&lt;br /&gt;
Windows users need a few Unix utilities installed to build projects.  You can check these out of cvs on a Linux computer with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd   /map/gfx0/users/$USER         &lt;br /&gt;
 &amp;gt; cvs  co  import/make             # Check out the utilities on a Linux computer.&lt;br /&gt;
             :&lt;br /&gt;
 &amp;gt; ls /map/gfx0/users/$USER/import/make/g.utility_1.0/&lt;br /&gt;
 CVS/         cp.exe*    echo.exe*   libiconv2.dll  make.exe*   mkdir_gnu.exe*&lt;br /&gt;
 READ_ME.txt  diff.exe*  false.exe*  libintl3.dll   mkdir.exe*  rm.exe*&lt;br /&gt;
&lt;br /&gt;
Now switch to the Windows computer.  You will need to add the path to &#039;&#039;&#039;g.utility_1.0\&#039;&#039;&#039; to the front of your Windows &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable.  On Windows the path is &#039;&#039;&#039;&amp;quot;Y:\map\gfx0\users\&amp;lt;User ID&amp;gt;\import\make\g.utility_1.0&amp;quot;&#039;&#039;&#039; After it is set verify that you can run these utilities from the command shell of your choosing.  The native Windows command shell is &#039;&#039;&#039;cmd.exe&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you&#039;ve not already done so, set your Windows environment variables according to the section &amp;quot;Setting Environment Variables&amp;quot;.  To see if you can build software run the &#039;cmd.exe&#039; shell and try:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\map\gfx0\users\&amp;lt;User ID&amp;gt;\common\utility&lt;br /&gt;
 &amp;gt; make  all                                         # Build utilities on Windows.&lt;br /&gt;
 &amp;gt; make  install                                     # Install them to:  install_WIN32/&lt;br /&gt;
&lt;br /&gt;
Finally inspect &#039;&#039;&#039;Y:\map\gfx0\users\&amp;amp;lt;User ID&amp;amp;gt;\install_WIN32&#039;&#039;&#039; to ensure it was properly populated.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Quick_Start_for_CIT_Users&amp;diff=4857</id>
		<title>Quick Start for CIT Users</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Quick_Start_for_CIT_Users&amp;diff=4857"/>
		<updated>2011-06-22T17:44:20Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Create your Sandbox */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are terse instructions for setting up a typical sandbox at Brown using Linux.  Even if you intend to develop on a different platform such as Windows you should initially get set up on Linux.  If you need more explicit instructions or you want a more complex setup then revert back to the full instructions.  &lt;br /&gt;
&lt;br /&gt;
== Create your Sandbox ==&lt;br /&gt;
&lt;br /&gt;
Create a user directory for yourself in the groups work area.  Be sure to use your login name as the directory name.  Before you do anything double check to see that your primary group is graphics.  If it is not ask tStaff (mail problem@cs.brown.edu) to change it for you.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; groups&lt;br /&gt;
 graphics  grad  guest               # The first item must be graphics.&lt;br /&gt;
 &amp;gt; mkdir  /research/graphics/users/$USER&lt;br /&gt;
&lt;br /&gt;
== Set Environment Variables ==&lt;br /&gt;
&lt;br /&gt;
Setup your environment variables in the login script for your shell.  If you are using Windows you will also want to set these variables on your Windows system as well.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               Linux                             Windows&lt;br /&gt;
&lt;br /&gt;
 CVSROOT   /map/gfx0/cvsroot                 Y:\map\gfx0\cvsroot&lt;br /&gt;
 GROOT     /map/gfx0                         Y:\map\gfx0&lt;br /&gt;
 G         /map/gfx0/users/$USER             Y:\map\gfx0\users\&amp;amp;lt;User ID&amp;amp;gt;&lt;br /&gt;
 GTO       /map/gfx0/users/$USER             Y:\map\gfx0\users\&amp;amp;lt;User ID&amp;amp;gt;&lt;br /&gt;
 GARCH     linux                             WIN32&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;G_COMPILER&#039;&#039;&#039; variable is set to the compiler you want to work with.  This may change depending on project requirements.  Most projects will build if you set it to &#039;&#039;&#039;gcc4&#039;&#039;&#039; on Linux and &#039;&#039;&#039;cl9&#039;&#039;&#039; on Windows.  Supported settings are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
               Linux                             Windows&lt;br /&gt;
&lt;br /&gt;
          gcc2 - gcc version 2.95            cl6 - Microsoft Studio version 6      &lt;br /&gt;
          gcc3 - gcc version 3.4             cl8 - Microsoft Studio version 8 (2005)&lt;br /&gt;
          gcc4 - gcc version 4.1             cl9 - Microsoft Studio version 9 (2008)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Also on Linux set your umask in your login shell to:  002&lt;br /&gt;
&lt;br /&gt;
 umask  002&lt;br /&gt;
&lt;br /&gt;
== Get the Build System ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/&#039;&#039;&#039; directory has the build make files and shared programs and libraries written at Brown.  You only need the &#039;&#039;&#039;common/build/&#039;&#039;&#039; directory to develop programs, but since you probably will eventually want other common code just check the whole directory out.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /map/gfx0/users/$USER&lt;br /&gt;
 &amp;gt; cvs co common&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When software is installed (via the &amp;quot;make install&amp;quot; command) it is copied to the install directory.  There is an install directory for each platform.  Create install directories for Linux and Windows with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  /map/gfx0/users/$USER/install_linux&lt;br /&gt;
 &amp;gt; mkdir  /map/gfx0/users/$USER/install_WIN32&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The install directories are populated by a &amp;quot;make install&amp;quot; command and are organized like this:&lt;br /&gt;
&lt;br /&gt;
 install_linux/lib/&amp;lt;Project Name&amp;gt;/lib*.a&lt;br /&gt;
 install_linux/bin/&amp;lt;Project Name&amp;gt;/&amp;lt;Program&amp;gt;&lt;br /&gt;
 install_linux/include/&amp;lt;Project Name&amp;gt;/*.h&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Try a simple build to see that everything is properly set up.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /map/gfx0/users/$USER/common/utility&lt;br /&gt;
 &amp;gt; make  all                       # Build the utilities.&lt;br /&gt;
 &amp;gt; make install                    # Install the utilities.&lt;br /&gt;
&lt;br /&gt;
Here is a transcript for [[Building and Installing Common Components]].&lt;br /&gt;
&lt;br /&gt;
This should populate the install directory.  Take a look with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; ls  /map/gfx0/users/$USER/install_linux/*/*&lt;br /&gt;
&lt;br /&gt;
== Get Project Code ==&lt;br /&gt;
&lt;br /&gt;
Project code is kept in CVS under the &#039;&#039;&#039;project/&#039;&#039;&#039; directory.  Note that inside your sandbox project code can be kept in any directory and you can have multiple versions of projects in different directories.  If you want to work with a project already in CVS then you can check it out now.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /map/gfx0/users/$USER&lt;br /&gt;
 &amp;gt; cvs  co  project/&amp;amp;lt;Project Name&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to create a new project then make a new directory for it in your sandbox.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  -p  /map/gfx0/users/$USER/project/&amp;lt;Project Name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You are free to organize your project within the new directory as you see fit.  For instructions on writing make files visit:&lt;br /&gt;
&lt;br /&gt;
 https://sourceforge.net/apps/mediawiki/vrg3d/index.php?title=Writing_Make_Files&lt;br /&gt;
&lt;br /&gt;
== Get Third Party Software ==&lt;br /&gt;
&lt;br /&gt;
Many projects depend on downloaded software.  Create the &#039;&#039;&#039;import/&#039;&#039;&#039; directory in your sandbox where downloaded software is installed.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; mkdir  /map/gfx0/users/$USER/import&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The packages you need are determined by the projects you are working on. Project documentation is the first place to check for required software.  Copies of some packages are installed in a shared public area, however the public area may not have the versions your projects require and the installations may change over time without notice.  The only sure fire method is to download and install the software.&lt;br /&gt;
&lt;br /&gt;
To see how the &#039;&#039;&#039;import/&#039;&#039;&#039; directory is organized and what packages are installed browse the public installations:&lt;br /&gt;
&lt;br /&gt;
 /map/gfx0/tools/linux/import/...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is a copy there that looks like one you need you can first try it and if it doesn&#039;t work then download and install your own copy.  Copy the packages you need from the public area to your own:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; copy  -R  /map/gfx0/tools/linux/import/&amp;lt;Package&amp;gt;  /map/gfx0/users/$USER/import&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Build a Project on Windows ==&lt;br /&gt;
&lt;br /&gt;
Windows users need a few Unix utilities installed to build projects.  You can check these out of cvs on a Linux computer with:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd   /map/gfx0/users/$USER         &lt;br /&gt;
 &amp;gt; cvs  co  import/make             # Check out the utilities on a Linux computer.&lt;br /&gt;
             :&lt;br /&gt;
 &amp;gt; ls /map/gfx0/users/$USER/import/make/g.utility_1.0/&lt;br /&gt;
 CVS/         cp.exe*    echo.exe*   libiconv2.dll  make.exe*   mkdir_gnu.exe*&lt;br /&gt;
 READ_ME.txt  diff.exe*  false.exe*  libintl3.dll   mkdir.exe*  rm.exe*&lt;br /&gt;
&lt;br /&gt;
Now switch to the Windows computer.  You will need to add the path to &#039;&#039;&#039;g.utility_1.0\&#039;&#039;&#039; to the front of your Windows &#039;&#039;&#039;PATH&#039;&#039;&#039; environment variable.  On Windows the path is &#039;&#039;&#039;&amp;quot;Y:\map\gfx0\users\&amp;lt;User ID&amp;gt;\import\make\g.utility_1.0&amp;quot;&#039;&#039;&#039; After it is set verify that you can run these utilities from the command shell of your choosing.  The native Windows command shell is &#039;&#039;&#039;cmd.exe&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you&#039;ve not already done so, set your Windows environment variables according to the section &amp;quot;Setting Environment Variables&amp;quot;.  To see if you can build software run the &#039;cmd.exe&#039; shell and try:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\map\gfx0\users\&amp;lt;User ID&amp;gt;\common\utility&lt;br /&gt;
 &amp;gt; make  all                                         # Build utilities on Windows.&lt;br /&gt;
 &amp;gt; make  install                                     # Install them to:  install_WIN32/&lt;br /&gt;
&lt;br /&gt;
Finally inspect &#039;&#039;&#039;Y:\map\gfx0\users\&amp;amp;lt;User ID&amp;amp;gt;\install_WIN32&#039;&#039;&#039; to ensure it was properly populated.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Automated_Quick_Start&amp;diff=4856</id>
		<title>Automated Quick Start</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Automated_Quick_Start&amp;diff=4856"/>
		<updated>2011-06-22T17:43:21Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are instructions using a script to set up a typical sandbox at Brown using Linux. Even if you intend to develop on a different platform such as Windows you should initially get set up on Linux. If you need more explicit instructions or you want a more complex setup then revert back to the full instructions.&lt;br /&gt;
&lt;br /&gt;
* To create your sandbox run this command form any directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 % /research/graphics/tools/linux/install_linux/bin/setup/new.g.user.sh&lt;br /&gt;
    NOTE:  Creating a sandbox in the directory:  /research/graphics/users/YourId/&lt;br /&gt;
    NOTE:  Copying previously installed Brown linux projects ...&lt;br /&gt;
    NOTE:     ... done copying linux projects.&lt;br /&gt;
    NOTE:  Copying previously installed Brown Windows projects ...&lt;br /&gt;
    NOTE:     ... done copying Windows projects.&lt;br /&gt;
    NOTE:  Checking out the common/ directory from CVS ...&lt;br /&gt;
    NOTE:     ... The common/ directory was succefully checked out from CVS.&lt;br /&gt;
    NOTE:  Building the common/utility/ directory ...&lt;br /&gt;
    NOTE:     ... The common/utility/ directory successfully built.&lt;br /&gt;
&lt;br /&gt;
  Your work area was created in:  /research/graphics/users/YourId/&lt;br /&gt;
&lt;br /&gt;
     Source code for projects you create and any Brown projects&lt;br /&gt;
        you want to check out from the CVS repository will go here:&lt;br /&gt;
 drwxrwsr-x 2 YourId graphics 4096 Sep 15 11:18 /research/graphics/users/YourId/project&lt;br /&gt;
&lt;br /&gt;
     Your private copy of shared Brown source code was checked out to:&lt;br /&gt;
 drwxrwsr-x 15 YourId graphics 4096 Sep 15 11:20 /research/graphics/users/YourId/common&lt;br /&gt;
&lt;br /&gt;
     Your private copy of previously installed programs and libraries&lt;br /&gt;
        written at Brown are here:&lt;br /&gt;
 drwxrwsr-x 5 YourId graphics 4096 Sep 15 11:18 /research/graphics/users/YourId/install_linux&lt;br /&gt;
 drwxrwsr-x 6 YourId graphics 4096 Sep 15 11:19 /research/graphics/users/YourId/install_WIN32&lt;br /&gt;
 drwxrwsr-x 7 YourId graphics 4096 Sep 15 11:19 /research/graphics/users/YourId/install_OSX&lt;br /&gt;
&lt;br /&gt;
     Your projects can access third party software that has been&lt;br /&gt;
        previously downloaded and installed here:&lt;br /&gt;
 /research/graphics/tools/linux/import/afni       /research/graphics/tools/linux/import/gsl&lt;br /&gt;
 /research/graphics/tools/linux/import/artoolkit  /research/graphics/tools/linux/import/make&lt;br /&gt;
 /research/graphics/tools/linux/import/blitz      /research/graphics/tools/linux/import/mricron&lt;br /&gt;
 /research/graphics/tools/linux/import/build      /research/graphics/tools/linux/import/nifti&lt;br /&gt;
 /research/graphics/tools/linux/import/camino     /research/graphics/tools/linux/import/qt&lt;br /&gt;
 /research/graphics/tools/linux/import/cg         /research/graphics/tools/linux/import/scalable&lt;br /&gt;
 /research/graphics/tools/linux/import/dtk        /research/graphics/tools/linux/import/sdl&lt;br /&gt;
 /research/graphics/tools/linux/import/ftgl       /research/graphics/tools/linux/import/vrpn&lt;br /&gt;
 /research/graphics/tools/linux/import/g3d        /research/graphics/tools/linux/import/xerces&lt;br /&gt;
 /research/graphics/tools/linux/import/glut&lt;br /&gt;
&lt;br /&gt;
 *****  The new.g.user.sh script has successfully completed.  *****&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* To setup your envionment each time you login modify your default login script.  First you need to know if you are running the &#039;&#039;&#039;tcsh&#039;&#039;&#039; or &#039;&#039;&#039;bash&#039;&#039;&#039; shell.&lt;br /&gt;
  &lt;br /&gt;
  &amp;gt; finger  $USER&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;&amp;quot;Shell:&amp;quot;&#039;&#039;&#039; field in the output will be either &#039;&#039;&#039;/bin/tcsh&#039;&#039;&#039; or &#039;&#039;&#039;/bin/bash&#039;&#039;&#039;.  If you are running &#039;&#039;&#039;tcsh&#039;&#039;&#039; then edit &#039;&#039;&#039;$HOME/.cshrc&#039;&#039;&#039; and add this line at the end:&lt;br /&gt;
&lt;br /&gt;
 source   /research/graphics/tools/linux/install_linux/bin/setup/g.login.csh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are running &#039;&#039;&#039;bash&#039;&#039;&#039; then instead edit &#039;&#039;&#039;$HOME/.bashrc&#039;&#039;&#039; and add this line at the end:&lt;br /&gt;
&lt;br /&gt;
 source  /research/graphics/tools/linux/install_linux/bin/setup/g.login.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can check your results by logging out and then logging in again.  This command will list your environment variables.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; printenv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It will list all your variables, but you should see that these variables are set:&amp;lt;br&amp;gt;&lt;br /&gt;
 CVSROOT   GARCH   G   GTO   GROOT   G_IMPORT   G_COMPILER&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Check_out_projects&amp;diff=4855</id>
		<title>Check out projects</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Check_out_projects&amp;diff=4855"/>
		<updated>2011-06-22T17:37:53Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Building a Project on Windows */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Checking out a project ==&lt;br /&gt;
&lt;br /&gt;
Before checking out a project, be sure that your development environment is [[$G in practice|set up for $G]].&lt;br /&gt;
&lt;br /&gt;
$G uses CVS for source control and you can read more about it [http://www.nongnu.org/cvs/ on its official site] or [[w:Concurrent Versions System|on Wikipedia]].&lt;br /&gt;
&lt;br /&gt;
After you have your Sandbox set up you can checkout a project.  Even if you are working on Windows you should use Linux to perform CVS operations.  Many projects will only build on certain platforms.&lt;br /&gt;
&lt;br /&gt;
Project code will either be in the &#039;&#039;&#039;common/&#039;&#039;&#039; or &#039;&#039;&#039;project/&#039;&#039;&#039; top level CVS directories.  The &#039;&#039;&#039;common/&#039;&#039;&#039; directory has code that is shared by multiple projects in the &#039;&#039;&#039;project/&#039;&#039;&#039; directory.&lt;br /&gt;
&lt;br /&gt;
If you wanted to check out the &#039;&#039;&#039;&amp;quot;wrist&amp;quot;&#039;&#039;&#039; project, you would type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;gt; cd   /research/graphics/users/$USER    # Go into your Sandbox.&lt;br /&gt;
   &amp;gt; cvs  co  project/wrist        # Creates:  /research/graphics/users/goo/project/wrist/...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CVS requires that check outs be performed from the top level directory of your sandbox.&lt;br /&gt;
&lt;br /&gt;
Please do not waste space in your sandbox and retain only the files you need.  When you are done with your account please be sure to delete it.&lt;br /&gt;
&lt;br /&gt;
== Building a Project on Linux ==&lt;br /&gt;
&lt;br /&gt;
Before a project can be built any dependent packages need to be in the &#039;&#039;&#039;import/&#039;&#039;&#039; directory.  The wrist project depends on Blitz.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cp -R /research/graphics/tools/linux/import/blitz/  /research/graphics/users/$USER/import/blitz/&lt;br /&gt;
&lt;br /&gt;
The wrist project is a large project composed of several programs and libraries.  It follows the convention of using a &#039;&#039;&#039;Makefile&#039;&#039;&#039; in the top level directory to build the entire project.  Each project developer decides how their projects are organized and how they are built.  You&#039;ll need to look at documentation for a project to determine how to build it.&lt;br /&gt;
&lt;br /&gt;
Continuing the wrist project example from above, you would type:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER/project/wrist&lt;br /&gt;
 &amp;gt; make  all&lt;br /&gt;
&lt;br /&gt;
== Building a Project on Windows ==&lt;br /&gt;
&lt;br /&gt;
The wrist project does not build on Windows.  Instead we&#039;ll show how to build some of the common libraries.  Your sandbox should be set up with the contents of the &#039;&#039;&#039;common/&#039;&#039;&#039; directory so you will not need to check anything else out.  The following examples use the native Windows command shell &#039;&#039;&#039;&amp;quot;cmd.exe&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/utility/&#039;&#039;&#039; directory has some utilities used in several projects.  Libraries are often configured to build on all available compilers.  This way when you go to use a library a version is available for whatever compiler you choose.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\research\graphics\users\&amp;lt;User Id&amp;gt;\common\utility&lt;br /&gt;
 &amp;gt; make  all&lt;br /&gt;
 &amp;gt; make  install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/gg/&#039;&#039;&#039; directory has several libraries that are useful for writing C/C++ applications.  It depends on the utilities so it needs to be built after them.  Only a portion of these libraries have been rewritten to build on Windows.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\research\graphics\users\&amp;lt;User Id&amp;gt;\common\gg&lt;br /&gt;
 &amp;gt; make  all&lt;br /&gt;
 &amp;gt; make  install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/mri/libmri/&#039;&#039;&#039; directory is a library for processing MRI datasets.  It depends on having the &#039;&#039;&#039;gg&#039;&#039;&#039; libraries installed.  Note that the other directories under &#039;&#039;&#039;common\mri\&#039;&#039;&#039; will not build on Windows.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\research\graphics\users\&amp;lt;User Id&amp;gt;\common\mri\libmri&lt;br /&gt;
 &amp;gt; make  all&lt;br /&gt;
 &amp;gt; make  install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/is3d/&#039;&#039;&#039; directory has a library used by some  for processing MRI datasets.  It uses the &#039;&#039;&#039;g3d&#039;&#039;&#039; libraries; which is imported.  If it has not been set up then you will need to do so.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\research\graphics\users\&amp;lt;User Id&amp;gt;\import&lt;br /&gt;
 &amp;gt; mkdir  g3d&lt;br /&gt;
 &amp;gt; xcopy/e  Y:\research\graphics\tools\linux\import\g3d\g3d_8_cl9  g3d\g3d_8_cl9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only the &#039;&#039;&#039;is3d/src/&#039;&#039;&#039; directory has been rewritten for Windows.  Since &#039;&#039;&#039;g3d&#039;&#039;&#039; only links with the &#039;&#039;&#039;cl9&#039;&#039;&#039; compiler, this directory must be built using &#039;&#039;&#039;cl9&#039;&#039;&#039;.  If you have set &#039;&#039;&#039;G_COMPILER&#039;&#039;&#039; to a different compiler you will need to reset it.&lt;br /&gt;
&lt;br /&gt;
   &amp;gt; cd/d  Y:\research\graphics\users\&amp;lt;User Id&amp;gt;\common\is3d\src&lt;br /&gt;
   &amp;gt; make  all&lt;br /&gt;
   &amp;gt; make  install&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Check_out_projects&amp;diff=4854</id>
		<title>Check out projects</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Check_out_projects&amp;diff=4854"/>
		<updated>2011-06-22T17:36:38Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Building a Project on Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Checking out a project ==&lt;br /&gt;
&lt;br /&gt;
Before checking out a project, be sure that your development environment is [[$G in practice|set up for $G]].&lt;br /&gt;
&lt;br /&gt;
$G uses CVS for source control and you can read more about it [http://www.nongnu.org/cvs/ on its official site] or [[w:Concurrent Versions System|on Wikipedia]].&lt;br /&gt;
&lt;br /&gt;
After you have your Sandbox set up you can checkout a project.  Even if you are working on Windows you should use Linux to perform CVS operations.  Many projects will only build on certain platforms.&lt;br /&gt;
&lt;br /&gt;
Project code will either be in the &#039;&#039;&#039;common/&#039;&#039;&#039; or &#039;&#039;&#039;project/&#039;&#039;&#039; top level CVS directories.  The &#039;&#039;&#039;common/&#039;&#039;&#039; directory has code that is shared by multiple projects in the &#039;&#039;&#039;project/&#039;&#039;&#039; directory.&lt;br /&gt;
&lt;br /&gt;
If you wanted to check out the &#039;&#039;&#039;&amp;quot;wrist&amp;quot;&#039;&#039;&#039; project, you would type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;gt; cd   /research/graphics/users/$USER    # Go into your Sandbox.&lt;br /&gt;
   &amp;gt; cvs  co  project/wrist        # Creates:  /research/graphics/users/goo/project/wrist/...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CVS requires that check outs be performed from the top level directory of your sandbox.&lt;br /&gt;
&lt;br /&gt;
Please do not waste space in your sandbox and retain only the files you need.  When you are done with your account please be sure to delete it.&lt;br /&gt;
&lt;br /&gt;
== Building a Project on Linux ==&lt;br /&gt;
&lt;br /&gt;
Before a project can be built any dependent packages need to be in the &#039;&#039;&#039;import/&#039;&#039;&#039; directory.  The wrist project depends on Blitz.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cp -R /research/graphics/tools/linux/import/blitz/  /research/graphics/users/$USER/import/blitz/&lt;br /&gt;
&lt;br /&gt;
The wrist project is a large project composed of several programs and libraries.  It follows the convention of using a &#039;&#039;&#039;Makefile&#039;&#039;&#039; in the top level directory to build the entire project.  Each project developer decides how their projects are organized and how they are built.  You&#039;ll need to look at documentation for a project to determine how to build it.&lt;br /&gt;
&lt;br /&gt;
Continuing the wrist project example from above, you would type:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /research/graphics/users/$USER/project/wrist&lt;br /&gt;
 &amp;gt; make  all&lt;br /&gt;
&lt;br /&gt;
== Building a Project on Windows ==&lt;br /&gt;
&lt;br /&gt;
The wrist project does not build on Windows.  Instead we&#039;ll show how to build some of the common libraries.  Your sandbox should be set up with the contents of the &#039;&#039;&#039;common/&#039;&#039;&#039; directory so you will not need to check anything else out.  The following examples use the native Windows command shell &#039;&#039;&#039;&amp;quot;cmd.exe&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/utility/&#039;&#039;&#039; directory has some utilities used in several projects.  Libraries are often configured to build on all available compilers.  This way when you go to use a library a version is available for whatever compiler you choose.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\map\gfx0\users\&amp;lt;User Id&amp;gt;\common\utility&lt;br /&gt;
 &amp;gt; make  all&lt;br /&gt;
 &amp;gt; make  install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/gg/&#039;&#039;&#039; directory has several libraries that are useful for writing C/C++ applications.  It depends on the utilities so it needs to be built after them.  Only a portion of these libraries have been rewritten to build on Windows.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\map\gfx0\users\&amp;lt;User Id&amp;gt;\common\gg&lt;br /&gt;
 &amp;gt; make  all&lt;br /&gt;
 &amp;gt; make  install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/mri/libmri/&#039;&#039;&#039; directory is a library for processing MRI datasets.  It depends on having the &#039;&#039;&#039;gg&#039;&#039;&#039; libraries installed.  Note that the other directories under &#039;&#039;&#039;common\mri\&#039;&#039;&#039; will not build on Windows.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\map\gfx0\users\&amp;lt;User Id&amp;gt;\common\mri\libmri&lt;br /&gt;
 &amp;gt; make  all&lt;br /&gt;
 &amp;gt; make  install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/is3d/&#039;&#039;&#039; directory has a library used by some  for processing MRI datasets.  It uses the &#039;&#039;&#039;g3d&#039;&#039;&#039; libraries; which is imported.  If it has not been set up then you will need to do so.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\map\gfx0\users\&amp;lt;User Id&amp;gt;\import&lt;br /&gt;
 &amp;gt; mkdir  g3d&lt;br /&gt;
 &amp;gt; xcopy/e  Y:\map\gfx0\tools\linux\import\g3d\g3d_8_cl9  g3d\g3d_8_cl9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only the &#039;&#039;&#039;is3d/src/&#039;&#039;&#039; directory has been rewritten for Windows.  Since &#039;&#039;&#039;g3d&#039;&#039;&#039; only links with the &#039;&#039;&#039;cl9&#039;&#039;&#039; compiler, this directory must be built using &#039;&#039;&#039;cl9&#039;&#039;&#039;.  If you have set &#039;&#039;&#039;G_COMPILER&#039;&#039;&#039; to a different compiler you will need to reset it.&lt;br /&gt;
&lt;br /&gt;
   &amp;gt; cd/d  Y:\map\gfx0\users\&amp;lt;User Id&amp;gt;\common\is3d\src&lt;br /&gt;
   &amp;gt; make  all&lt;br /&gt;
   &amp;gt; make  install&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Check_out_projects&amp;diff=4853</id>
		<title>Check out projects</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Check_out_projects&amp;diff=4853"/>
		<updated>2011-06-22T17:35:38Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Checking out a project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Checking out a project ==&lt;br /&gt;
&lt;br /&gt;
Before checking out a project, be sure that your development environment is [[$G in practice|set up for $G]].&lt;br /&gt;
&lt;br /&gt;
$G uses CVS for source control and you can read more about it [http://www.nongnu.org/cvs/ on its official site] or [[w:Concurrent Versions System|on Wikipedia]].&lt;br /&gt;
&lt;br /&gt;
After you have your Sandbox set up you can checkout a project.  Even if you are working on Windows you should use Linux to perform CVS operations.  Many projects will only build on certain platforms.&lt;br /&gt;
&lt;br /&gt;
Project code will either be in the &#039;&#039;&#039;common/&#039;&#039;&#039; or &#039;&#039;&#039;project/&#039;&#039;&#039; top level CVS directories.  The &#039;&#039;&#039;common/&#039;&#039;&#039; directory has code that is shared by multiple projects in the &#039;&#039;&#039;project/&#039;&#039;&#039; directory.&lt;br /&gt;
&lt;br /&gt;
If you wanted to check out the &#039;&#039;&#039;&amp;quot;wrist&amp;quot;&#039;&#039;&#039; project, you would type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   &amp;gt; cd   /research/graphics/users/$USER    # Go into your Sandbox.&lt;br /&gt;
   &amp;gt; cvs  co  project/wrist        # Creates:  /research/graphics/users/goo/project/wrist/...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CVS requires that check outs be performed from the top level directory of your sandbox.&lt;br /&gt;
&lt;br /&gt;
Please do not waste space in your sandbox and retain only the files you need.  When you are done with your account please be sure to delete it.&lt;br /&gt;
&lt;br /&gt;
== Building a Project on Linux ==&lt;br /&gt;
&lt;br /&gt;
Before a project can be built any dependent packages need to be in the &#039;&#039;&#039;import/&#039;&#039;&#039; directory.  The wrist project depends on Blitz.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cp -R /map/gfx0/tools/linux/import/blitz/  /map/gfx0/users/$USER/import/blitz/&lt;br /&gt;
&lt;br /&gt;
The wrist project is a large project composed of several programs and libraries.  It follows the convention of using a &#039;&#039;&#039;Makefile&#039;&#039;&#039; in the top level directory to build the entire project.  Each project developer decides how their projects are organized and how they are built.  You&#039;ll need to look at documentation for a project to determine how to build it.&lt;br /&gt;
&lt;br /&gt;
Continuing the wrist project example from above, you would type:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd  /map/gfx0/users/$USER/project/wrist&lt;br /&gt;
 &amp;gt; make  all&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Building a Project on Windows ==&lt;br /&gt;
&lt;br /&gt;
The wrist project does not build on Windows.  Instead we&#039;ll show how to build some of the common libraries.  Your sandbox should be set up with the contents of the &#039;&#039;&#039;common/&#039;&#039;&#039; directory so you will not need to check anything else out.  The following examples use the native Windows command shell &#039;&#039;&#039;&amp;quot;cmd.exe&amp;quot;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/utility/&#039;&#039;&#039; directory has some utilities used in several projects.  Libraries are often configured to build on all available compilers.  This way when you go to use a library a version is available for whatever compiler you choose.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\map\gfx0\users\&amp;lt;User Id&amp;gt;\common\utility&lt;br /&gt;
 &amp;gt; make  all&lt;br /&gt;
 &amp;gt; make  install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/gg/&#039;&#039;&#039; directory has several libraries that are useful for writing C/C++ applications.  It depends on the utilities so it needs to be built after them.  Only a portion of these libraries have been rewritten to build on Windows.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\map\gfx0\users\&amp;lt;User Id&amp;gt;\common\gg&lt;br /&gt;
 &amp;gt; make  all&lt;br /&gt;
 &amp;gt; make  install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/mri/libmri/&#039;&#039;&#039; directory is a library for processing MRI datasets.  It depends on having the &#039;&#039;&#039;gg&#039;&#039;&#039; libraries installed.  Note that the other directories under &#039;&#039;&#039;common\mri\&#039;&#039;&#039; will not build on Windows.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\map\gfx0\users\&amp;lt;User Id&amp;gt;\common\mri\libmri&lt;br /&gt;
 &amp;gt; make  all&lt;br /&gt;
 &amp;gt; make  install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;common/is3d/&#039;&#039;&#039; directory has a library used by some  for processing MRI datasets.  It uses the &#039;&#039;&#039;g3d&#039;&#039;&#039; libraries; which is imported.  If it has not been set up then you will need to do so.&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; cd/d  Y:\map\gfx0\users\&amp;lt;User Id&amp;gt;\import&lt;br /&gt;
 &amp;gt; mkdir  g3d&lt;br /&gt;
 &amp;gt; xcopy/e  Y:\map\gfx0\tools\linux\import\g3d\g3d_8_cl9  g3d\g3d_8_cl9&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only the &#039;&#039;&#039;is3d/src/&#039;&#039;&#039; directory has been rewritten for Windows.  Since &#039;&#039;&#039;g3d&#039;&#039;&#039; only links with the &#039;&#039;&#039;cl9&#039;&#039;&#039; compiler, this directory must be built using &#039;&#039;&#039;cl9&#039;&#039;&#039;.  If you have set &#039;&#039;&#039;G_COMPILER&#039;&#039;&#039; to a different compiler you will need to reset it.&lt;br /&gt;
&lt;br /&gt;
   &amp;gt; cd/d  Y:\map\gfx0\users\&amp;lt;User Id&amp;gt;\common\is3d\src&lt;br /&gt;
   &amp;gt; make  all&lt;br /&gt;
   &amp;gt; make  install&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Plans_and_Goals&amp;diff=4817</id>
		<title>Plans and Goals</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Plans_and_Goals&amp;diff=4817"/>
		<updated>2011-05-13T18:37:35Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page the members of the [[VRL]] record and refine their goals for the current semester.  This is a living document in which [[dhl]] will provide feedback.  See the bottom of the page for links to past plans &amp;amp; goals documents.&lt;br /&gt;
&lt;br /&gt;
== Current Schedule ==&lt;br /&gt;
Meetings are on Tuesdays.  The authoritative list is in dhl&#039;s calendar. (updated here 9/24/10)&lt;br /&gt;
&lt;br /&gt;
* 2:30 - Dawn&lt;br /&gt;
* 2:50 - Brad&lt;br /&gt;
* 3:00 - Radu&lt;br /&gt;
* 3:10 - Steve G&lt;br /&gt;
* 3:20 - Nathan&lt;br /&gt;
* 3:30 - Jadrian&lt;br /&gt;
* 3:40 - Caroline&lt;br /&gt;
* 3:50 - Ryan&lt;br /&gt;
* 4:00 - Wenjin&lt;br /&gt;
&lt;br /&gt;
== Current Plans and Goals (Summer-Fall &#039;11) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [[User:Brad Berg|Brad]] ===&lt;br /&gt;
&lt;br /&gt;
Projects&lt;br /&gt;
&lt;br /&gt;
* Support the ongoing VRL Group projects:&lt;br /&gt;
** Jadrian&#039;s brain research.&lt;br /&gt;
** Wenjin&#039;s Axon estimation project.&lt;br /&gt;
** Radu&#039;s Protein project:&amp;lt;br&amp;gt;&lt;br /&gt;
::Assist Radu to integrate a test and any recent code.&lt;br /&gt;
&lt;br /&gt;
* Support collaborative projects.&lt;br /&gt;
** Revised wrist registration.&lt;br /&gt;
&lt;br /&gt;
* Contribute to the design and development of the new cave.  Integrate changes to vrg3d. Develop an API for new devices.  Test and support vrg3d in the new cave.&lt;br /&gt;
&lt;br /&gt;
* Add to the public distribution of diffusion imaging data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Infrastructure&lt;br /&gt;
&lt;br /&gt;
* Continue to write Wiki entries as needed.&lt;br /&gt;
&lt;br /&gt;
* Continue setting up third party software for students to use. &lt;br /&gt;
&lt;br /&gt;
* Extend the build system to make kits for public source and binary distributions.&lt;br /&gt;
&lt;br /&gt;
* Continue extend the make files to support new features such as additional third party packages.&lt;br /&gt;
&lt;br /&gt;
* Continue to integrate any new tests written by students into nightly test runs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Cagatay Demiralp|Çağatay]] === &lt;br /&gt;
&lt;br /&gt;
# Give a good proposal talk. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Caroline Ziemkiewicz|Caroline]] ===&lt;br /&gt;
&lt;br /&gt;
Research: Observe and analyze users for multi-view task modeling&lt;br /&gt;
* Set up systems for interaction logging, video capturing, eye-tracking, etc.&lt;br /&gt;
* Design a general data-gathering plan &lt;br /&gt;
* Arrange observation sessions with the scientific labs&lt;br /&gt;
* Analyze the data, do task sequence analysis&lt;br /&gt;
* Aim for VisWeek publication of initial results&lt;br /&gt;
&lt;br /&gt;
Identify long-term funding opportunities for modeling project&lt;br /&gt;
&lt;br /&gt;
Help mentor students on usability design independent study&lt;br /&gt;
&lt;br /&gt;
Service/community activities&lt;br /&gt;
* Program committee for VisWeek &lt;br /&gt;
* Contribute to VisWeek planning&lt;br /&gt;
* General reviewing - EuroVis, PacificVis&lt;br /&gt;
* Attend conferences - EuroVis, CHI?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== David ===&lt;br /&gt;
#get diffusion normals, one library, and one executable distributed (late...)&lt;br /&gt;
#get one diffusion analysis completed and out (Paul? Cohen? hire?)&lt;br /&gt;
#visweek papers&lt;br /&gt;
#*Steve: comps (need title, brain diagrams and events expanded?)&lt;br /&gt;
#*Cagatay: coloring manifesto&lt;br /&gt;
#*Cagatay: metric learning via interaction (?)&lt;br /&gt;
#*Cagatay: cycles of brains (?)&lt;br /&gt;
#*Radu: Analysis nudges: guiding scientists towards improved analytic practices&lt;br /&gt;
#*Caroline: A Task Analysis of Reasoning with Multi-View Visualization (is vis appropriate?)&lt;br /&gt;
#*Ryan: get involved with Cagatay&#039;s?  Cohen analysis (maybe not vis)?&lt;br /&gt;
#*Wenjin: too far from Vis?&lt;br /&gt;
#*Jadrian: modeling curve bundles? small problem results?&lt;br /&gt;
#support 7 phd students&#039;  progress toward graduation and careers&lt;br /&gt;
#new Cave creation on track&lt;br /&gt;
#more dissemination: talks/slides?, datasets (animals?)?, more/better images (&amp;gt;2004..., analytics)?&lt;br /&gt;
#funded grants happy: nih (ext?), immgen, nmrkrs, sa, aptima, jian&lt;br /&gt;
#si^2 and expedition proposal followthrough?&lt;br /&gt;
#teach a good CS16&lt;br /&gt;
#keep Vis &#039;11 on track&lt;br /&gt;
#cs facilities vision document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Eni ===&lt;br /&gt;
&lt;br /&gt;
* Make progress in the surface analysis/congruency problem &lt;br /&gt;
* Draft a proposal for my work &lt;br /&gt;
* Read more literature that’s related to my work&lt;br /&gt;
* Submit a paper to MRM on tracts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Jadrian Miles|Jadrian]] ===&lt;br /&gt;
&lt;br /&gt;
* [[:Image:Jadrian Miles PhD Proposal original 2009-06-22.pdf‎|Initial thesis proposal, submitted 2009-06-22]]&lt;br /&gt;
* [[:Image:Jadrian Miles PhD Proposal rev2 2009-10-15.pdf|Proposal second revision, prepared 2009-10-15]]&lt;br /&gt;
&lt;br /&gt;
# Write up dissertation table of contents, outline, and some hole-filled chapters by July 31st&lt;br /&gt;
#* Done.&lt;br /&gt;
# Write up departmental proposal document by September 1st&lt;br /&gt;
#* Initial submission on September 10th.&lt;br /&gt;
# Present the proposal formally to the department in October&lt;br /&gt;
#* Proposal presentation on October 7th.&lt;br /&gt;
# Define a macrostructure model and cost function&lt;br /&gt;
#* The committee has been very involved in refining the idea of the &amp;quot;cost functions&amp;quot; for various fitting steps.  The macrostructure model has gone through several revisions and is almost done.&lt;br /&gt;
# Implement curve clustering using the macrostructure model; write up for ISMRM&lt;br /&gt;
#* {{red|Not done.}}  Intended ISMRM submission on Rician noise correction turned out not to be novel, though I did learn about a ton of related work that has been quite successful.&lt;br /&gt;
# Extend the macrostructure cost function to include DWI values&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Implement macrostructure adjustment from DWIs; write up for an MRM paper&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Get preliminary histological data of some kind, either by doing it in-house, working with collaborators, or outsourcing&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Derive a minimal set of microstructure measurements from histological data&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Copy South Africa data from DVDs and work with Amanda to import and process it&lt;br /&gt;
#* All data are organized on the data server but not processed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nathan Malkin|Nathan]] ===&lt;br /&gt;
* [[Diffusion Processing Pipeline|Diffusion pipeline]] work&lt;br /&gt;
** Medical Image library&lt;br /&gt;
** Possible further work, including:&lt;br /&gt;
*** Tubegen replacement&lt;br /&gt;
*** New (or updated) dfit utility&lt;br /&gt;
*** Others &lt;br /&gt;
* Independent research&lt;br /&gt;
*# Develop interesting research question&lt;br /&gt;
*#* Related to my interests in human-computer interaction, behavioral economics/cognitive biases, etc.&lt;br /&gt;
*# Come up with a project based on it&lt;br /&gt;
*# Apply for UTRA for this project (deadline: &#039;&#039;&#039;February 9&#039;&#039;&#039;)&lt;br /&gt;
*# Apply for NSF REU (Research Experience for Undergraduates) grant (deadline: &#039;&#039;&#039;February 15&#039;&#039;&#039;)&lt;br /&gt;
*# Begin work on the project&lt;br /&gt;
* Help with data processing for our [[Diffusion MRI#Neuroscience_Collaborations|collaborators]]&lt;br /&gt;
** Including, possibly, new tools that may be required&lt;br /&gt;
* (Ongoing) Provide support and documentation for previously-written tools&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Radu === &lt;br /&gt;
&lt;br /&gt;
# Learning distance metrics from users (with Cagatay)&lt;br /&gt;
# Revise/submit neural maps paper&lt;br /&gt;
# Revise/resubmit google maps paper&lt;br /&gt;
# Run analysis nudges study and submit Vis paper&lt;br /&gt;
# Deploy at least one more Immgen map on the Immgen website&lt;br /&gt;
# Create the deployment infrastructure for the existing maps&lt;br /&gt;
# Make my PhD code reusable (installable, automatic testing, partially commented) &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Wenjin ===&lt;br /&gt;
&lt;br /&gt;
* MICCAI paper submission? due 3/9/2011&lt;br /&gt;
* NeuroImage journal submission&lt;br /&gt;
* Get real brain data on double-PGSE acquisition (work with Ed)&lt;br /&gt;
* good CONNECT meeting ( MRI of brain microstructure and connectivity) talk in Feb&lt;br /&gt;
* Ponder on disease applications&lt;br /&gt;
* Long-term research goals and plans: research plan, statement of interest, teaching statement, etc.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Steven Gomez|Steve]] ===&lt;br /&gt;
&lt;br /&gt;
Comps progress&lt;br /&gt;
* Finish development and study for history/modeling project + w/ brain diagram&lt;br /&gt;
* Successful comps write-up (full draft by 2/7) and defense (must finish by 3/15)&lt;br /&gt;
* (Info?)Vis submission from comps report&lt;br /&gt;
* Check other venues that might be appropriate: e.g. ACM [http://dilab.gatech.edu/ccc/index.html creativity &amp;amp; cognition], ...?&lt;br /&gt;
 &lt;br /&gt;
Brain Diagrams&lt;br /&gt;
* Revise demo for Jeff (1/20) &amp;lt;span style=&amp;quot;color:#00ff00&amp;quot;&amp;gt;[complete]&amp;lt;/span&amp;gt;&lt;br /&gt;
* Iterate with Schnitzer group over brain diagram ideas&lt;br /&gt;
* Prepare vis poster&lt;br /&gt;
* Write-up ideas for eye-tracking integration/experiments (mid Feb)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
* Finish final course req for candidacy&lt;br /&gt;
* Complete NSF BEARCORE training (1/25) &amp;lt;span style=&amp;quot;color:#00ff00&amp;quot;&amp;gt;[complete]&amp;lt;/span&amp;gt;&lt;br /&gt;
* Search fellowship opportunities, list (with deadlines) by 4/1&lt;br /&gt;
* Poster sketch with braphael on explanatory path vis (after comps)&lt;br /&gt;
* Whatever needed for grant that&#039;s funding me&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ryan ===&lt;br /&gt;
&lt;br /&gt;
* Complete programming comps successfully&lt;br /&gt;
* Become familiar with group&#039;s DTI tools and projects&lt;br /&gt;
* Follow up on David&#039;s vis conf suggestions&lt;br /&gt;
* Expand paper with Shantanu to journal submission&lt;br /&gt;
* Investigate research opportunities for surface based methods with DTI&lt;br /&gt;
* Choose and propose research comps project&lt;br /&gt;
* Coursework&lt;br /&gt;
&lt;br /&gt;
== Past Plans and Goals ==&lt;br /&gt;
* [[/Spring 2011|Spring &#039;11]]&lt;br /&gt;
* [[/Summer-Fall 2010|Summer-Fall &#039;10]]&lt;br /&gt;
* [[/Spring 2010|Spring &#039;10]]&lt;br /&gt;
* [[/Fall 2009|Fall &#039;09]]&lt;br /&gt;
* [[/Summer 2009|Summer &#039;09]]&lt;br /&gt;
* [[/Spring 2009|Spring &#039;09]]&lt;br /&gt;
* [[/Fall 2008|Fall &#039;08]]&lt;br /&gt;
* [http://sites.google.com/a/vis.cs.brown.edu/collaboravis/Home/summer-08-group-goals Summer &#039;08]&lt;br /&gt;
&lt;br /&gt;
[[Category:VRL]]&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Plans_and_Goals&amp;diff=4816</id>
		<title>Plans and Goals</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Plans_and_Goals&amp;diff=4816"/>
		<updated>2011-05-13T18:35:42Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Brad */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page the members of the [[VRL]] record and refine their goals for the current semester.  This is a living document in which [[dhl]] will provide feedback.  See the bottom of the page for links to past plans &amp;amp; goals documents.&lt;br /&gt;
&lt;br /&gt;
== Current Schedule ==&lt;br /&gt;
Meetings are on Tuesdays.  The authoritative list is in dhl&#039;s calendar. (updated here 9/24/10)&lt;br /&gt;
&lt;br /&gt;
* 2:30 - Dawn&lt;br /&gt;
* 2:50 - Brad&lt;br /&gt;
* 3:00 - Radu&lt;br /&gt;
* 3:10 - Steve G&lt;br /&gt;
* 3:20 - Nathan&lt;br /&gt;
* 3:30 - Jadrian&lt;br /&gt;
* 3:40 - Caroline&lt;br /&gt;
* 3:50 - Ryan&lt;br /&gt;
* 4:00 - Wenjin&lt;br /&gt;
&lt;br /&gt;
== Current Plans and Goals (Summer-Fall &#039;11) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [[User:Brad Berg|Brad]] ===&lt;br /&gt;
&lt;br /&gt;
Projects&lt;br /&gt;
&lt;br /&gt;
* Support the ongoing VRL Group projects:&lt;br /&gt;
** Jadrian&#039;s brain research.&lt;br /&gt;
** Radu&#039;s Protein project:&amp;lt;br&amp;gt;&lt;br /&gt;
::Assist Radu to integrate a test and any recent code.&lt;br /&gt;
** Wenjin&#039;s Axon estimation project.&lt;br /&gt;
* Support collaborative projects.&lt;br /&gt;
** Revised wrist registration.&lt;br /&gt;
&lt;br /&gt;
* Contribute to the design and development of the new cave.  Integrate changes to vrg3d. Develop an API for new devices.  Test and support vrg3d in the new cave.&lt;br /&gt;
&lt;br /&gt;
* Add to the public distribution of diffusion imaging data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Infrastructure&lt;br /&gt;
&lt;br /&gt;
* Continue to write Wiki entries as needed.&lt;br /&gt;
&lt;br /&gt;
* Continue setting up third party software for students to use. &lt;br /&gt;
&lt;br /&gt;
* Extend the build system to make kits for public source and binary distributions.&lt;br /&gt;
&lt;br /&gt;
* Continue extend the make files to support new features such as additional third party packages.&lt;br /&gt;
&lt;br /&gt;
* Continue to integrate any new tests written by students into nightly test runs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Cagatay Demiralp|Çağatay]] === &lt;br /&gt;
&lt;br /&gt;
# Give a good proposal talk. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Caroline Ziemkiewicz|Caroline]] ===&lt;br /&gt;
&lt;br /&gt;
Research: Observe and analyze users for multi-view task modeling&lt;br /&gt;
* Set up systems for interaction logging, video capturing, eye-tracking, etc.&lt;br /&gt;
* Design a general data-gathering plan &lt;br /&gt;
* Arrange observation sessions with the scientific labs&lt;br /&gt;
* Analyze the data, do task sequence analysis&lt;br /&gt;
* Aim for VisWeek publication of initial results&lt;br /&gt;
&lt;br /&gt;
Identify long-term funding opportunities for modeling project&lt;br /&gt;
&lt;br /&gt;
Help mentor students on usability design independent study&lt;br /&gt;
&lt;br /&gt;
Service/community activities&lt;br /&gt;
* Program committee for VisWeek &lt;br /&gt;
* Contribute to VisWeek planning&lt;br /&gt;
* General reviewing - EuroVis, PacificVis&lt;br /&gt;
* Attend conferences - EuroVis, CHI?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== David ===&lt;br /&gt;
#get diffusion normals, one library, and one executable distributed (late...)&lt;br /&gt;
#get one diffusion analysis completed and out (Paul? Cohen? hire?)&lt;br /&gt;
#visweek papers&lt;br /&gt;
#*Steve: comps (need title, brain diagrams and events expanded?)&lt;br /&gt;
#*Cagatay: coloring manifesto&lt;br /&gt;
#*Cagatay: metric learning via interaction (?)&lt;br /&gt;
#*Cagatay: cycles of brains (?)&lt;br /&gt;
#*Radu: Analysis nudges: guiding scientists towards improved analytic practices&lt;br /&gt;
#*Caroline: A Task Analysis of Reasoning with Multi-View Visualization (is vis appropriate?)&lt;br /&gt;
#*Ryan: get involved with Cagatay&#039;s?  Cohen analysis (maybe not vis)?&lt;br /&gt;
#*Wenjin: too far from Vis?&lt;br /&gt;
#*Jadrian: modeling curve bundles? small problem results?&lt;br /&gt;
#support 7 phd students&#039;  progress toward graduation and careers&lt;br /&gt;
#new Cave creation on track&lt;br /&gt;
#more dissemination: talks/slides?, datasets (animals?)?, more/better images (&amp;gt;2004..., analytics)?&lt;br /&gt;
#funded grants happy: nih (ext?), immgen, nmrkrs, sa, aptima, jian&lt;br /&gt;
#si^2 and expedition proposal followthrough?&lt;br /&gt;
#teach a good CS16&lt;br /&gt;
#keep Vis &#039;11 on track&lt;br /&gt;
#cs facilities vision document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Eni ===&lt;br /&gt;
&lt;br /&gt;
* Make progress in the surface analysis/congruency problem &lt;br /&gt;
* Draft a proposal for my work &lt;br /&gt;
* Read more literature that’s related to my work&lt;br /&gt;
* Submit a paper to MRM on tracts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Jadrian Miles|Jadrian]] ===&lt;br /&gt;
&lt;br /&gt;
* [[:Image:Jadrian Miles PhD Proposal original 2009-06-22.pdf‎|Initial thesis proposal, submitted 2009-06-22]]&lt;br /&gt;
* [[:Image:Jadrian Miles PhD Proposal rev2 2009-10-15.pdf|Proposal second revision, prepared 2009-10-15]]&lt;br /&gt;
&lt;br /&gt;
# Write up dissertation table of contents, outline, and some hole-filled chapters by July 31st&lt;br /&gt;
#* Done.&lt;br /&gt;
# Write up departmental proposal document by September 1st&lt;br /&gt;
#* Initial submission on September 10th.&lt;br /&gt;
# Present the proposal formally to the department in October&lt;br /&gt;
#* Proposal presentation on October 7th.&lt;br /&gt;
# Define a macrostructure model and cost function&lt;br /&gt;
#* The committee has been very involved in refining the idea of the &amp;quot;cost functions&amp;quot; for various fitting steps.  The macrostructure model has gone through several revisions and is almost done.&lt;br /&gt;
# Implement curve clustering using the macrostructure model; write up for ISMRM&lt;br /&gt;
#* {{red|Not done.}}  Intended ISMRM submission on Rician noise correction turned out not to be novel, though I did learn about a ton of related work that has been quite successful.&lt;br /&gt;
# Extend the macrostructure cost function to include DWI values&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Implement macrostructure adjustment from DWIs; write up for an MRM paper&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Get preliminary histological data of some kind, either by doing it in-house, working with collaborators, or outsourcing&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Derive a minimal set of microstructure measurements from histological data&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Copy South Africa data from DVDs and work with Amanda to import and process it&lt;br /&gt;
#* All data are organized on the data server but not processed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nathan Malkin|Nathan]] ===&lt;br /&gt;
* [[Diffusion Processing Pipeline|Diffusion pipeline]] work&lt;br /&gt;
** Medical Image library&lt;br /&gt;
** Possible further work, including:&lt;br /&gt;
*** Tubegen replacement&lt;br /&gt;
*** New (or updated) dfit utility&lt;br /&gt;
*** Others &lt;br /&gt;
* Independent research&lt;br /&gt;
*# Develop interesting research question&lt;br /&gt;
*#* Related to my interests in human-computer interaction, behavioral economics/cognitive biases, etc.&lt;br /&gt;
*# Come up with a project based on it&lt;br /&gt;
*# Apply for UTRA for this project (deadline: &#039;&#039;&#039;February 9&#039;&#039;&#039;)&lt;br /&gt;
*# Apply for NSF REU (Research Experience for Undergraduates) grant (deadline: &#039;&#039;&#039;February 15&#039;&#039;&#039;)&lt;br /&gt;
*# Begin work on the project&lt;br /&gt;
* Help with data processing for our [[Diffusion MRI#Neuroscience_Collaborations|collaborators]]&lt;br /&gt;
** Including, possibly, new tools that may be required&lt;br /&gt;
* (Ongoing) Provide support and documentation for previously-written tools&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Radu === &lt;br /&gt;
&lt;br /&gt;
# Learning distance metrics from users (with Cagatay)&lt;br /&gt;
# Revise/submit neural maps paper&lt;br /&gt;
# Revise/resubmit google maps paper&lt;br /&gt;
# Run analysis nudges study and submit Vis paper&lt;br /&gt;
# Deploy at least one more Immgen map on the Immgen website&lt;br /&gt;
# Create the deployment infrastructure for the existing maps&lt;br /&gt;
# Make my PhD code reusable (installable, automatic testing, partially commented) &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Wenjin ===&lt;br /&gt;
&lt;br /&gt;
* MICCAI paper submission? due 3/9/2011&lt;br /&gt;
* NeuroImage journal submission&lt;br /&gt;
* Get real brain data on double-PGSE acquisition (work with Ed)&lt;br /&gt;
* good CONNECT meeting ( MRI of brain microstructure and connectivity) talk in Feb&lt;br /&gt;
* Ponder on disease applications&lt;br /&gt;
* Long-term research goals and plans: research plan, statement of interest, teaching statement, etc.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Steven Gomez|Steve]] ===&lt;br /&gt;
&lt;br /&gt;
Comps progress&lt;br /&gt;
* Finish development and study for history/modeling project + w/ brain diagram&lt;br /&gt;
* Successful comps write-up (full draft by 2/7) and defense (must finish by 3/15)&lt;br /&gt;
* (Info?)Vis submission from comps report&lt;br /&gt;
* Check other venues that might be appropriate: e.g. ACM [http://dilab.gatech.edu/ccc/index.html creativity &amp;amp; cognition], ...?&lt;br /&gt;
 &lt;br /&gt;
Brain Diagrams&lt;br /&gt;
* Revise demo for Jeff (1/20) &amp;lt;span style=&amp;quot;color:#00ff00&amp;quot;&amp;gt;[complete]&amp;lt;/span&amp;gt;&lt;br /&gt;
* Iterate with Schnitzer group over brain diagram ideas&lt;br /&gt;
* Prepare vis poster&lt;br /&gt;
* Write-up ideas for eye-tracking integration/experiments (mid Feb)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
* Finish final course req for candidacy&lt;br /&gt;
* Complete NSF BEARCORE training (1/25) &amp;lt;span style=&amp;quot;color:#00ff00&amp;quot;&amp;gt;[complete]&amp;lt;/span&amp;gt;&lt;br /&gt;
* Search fellowship opportunities, list (with deadlines) by 4/1&lt;br /&gt;
* Poster sketch with braphael on explanatory path vis (after comps)&lt;br /&gt;
* Whatever needed for grant that&#039;s funding me&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ryan ===&lt;br /&gt;
&lt;br /&gt;
* Complete programming comps successfully&lt;br /&gt;
* Become familiar with group&#039;s DTI tools and projects&lt;br /&gt;
* Follow up on David&#039;s vis conf suggestions&lt;br /&gt;
* Expand paper with Shantanu to journal submission&lt;br /&gt;
* Investigate research opportunities for surface based methods with DTI&lt;br /&gt;
* Choose and propose research comps project&lt;br /&gt;
* Coursework&lt;br /&gt;
&lt;br /&gt;
== Past Plans and Goals ==&lt;br /&gt;
* [[/Spring 2011|Spring &#039;11]]&lt;br /&gt;
* [[/Summer-Fall 2010|Summer-Fall &#039;10]]&lt;br /&gt;
* [[/Spring 2010|Spring &#039;10]]&lt;br /&gt;
* [[/Fall 2009|Fall &#039;09]]&lt;br /&gt;
* [[/Summer 2009|Summer &#039;09]]&lt;br /&gt;
* [[/Spring 2009|Spring &#039;09]]&lt;br /&gt;
* [[/Fall 2008|Fall &#039;08]]&lt;br /&gt;
* [http://sites.google.com/a/vis.cs.brown.edu/collaboravis/Home/summer-08-group-goals Summer &#039;08]&lt;br /&gt;
&lt;br /&gt;
[[Category:VRL]]&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Plans_and_Goals&amp;diff=4815</id>
		<title>Plans and Goals</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Plans_and_Goals&amp;diff=4815"/>
		<updated>2011-05-13T18:27:56Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page the members of the [[VRL]] record and refine their goals for the current semester.  This is a living document in which [[dhl]] will provide feedback.  See the bottom of the page for links to past plans &amp;amp; goals documents.&lt;br /&gt;
&lt;br /&gt;
== Current Schedule ==&lt;br /&gt;
Meetings are on Tuesdays.  The authoritative list is in dhl&#039;s calendar. (updated here 9/24/10)&lt;br /&gt;
&lt;br /&gt;
* 2:30 - Dawn&lt;br /&gt;
* 2:50 - Brad&lt;br /&gt;
* 3:00 - Radu&lt;br /&gt;
* 3:10 - Steve G&lt;br /&gt;
* 3:20 - Nathan&lt;br /&gt;
* 3:30 - Jadrian&lt;br /&gt;
* 3:40 - Caroline&lt;br /&gt;
* 3:50 - Ryan&lt;br /&gt;
* 4:00 - Wenjin&lt;br /&gt;
&lt;br /&gt;
== Current Plans and Goals (Summer-Fall &#039;11) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [[User:Brad Berg|Brad]] ===&lt;br /&gt;
&lt;br /&gt;
Projects&lt;br /&gt;
&lt;br /&gt;
* Support the ongoing VRL Group projects:&lt;br /&gt;
** Jadrian&#039;s brain research.&lt;br /&gt;
** Radu&#039;s Protein project:&amp;lt;br&amp;gt;&lt;br /&gt;
::Assist Radu to integrate a test and any recent code.&lt;br /&gt;
&lt;br /&gt;
* Support collaborative projects.&lt;br /&gt;
** Wrist cartilage support for Eni and Michael.&lt;br /&gt;
** Migrate Win&#039;s mri pipeline to run in CIT.&lt;br /&gt;
** Andy Loomis and Andy Forsberg&#039;s Adviser program.&lt;br /&gt;
&lt;br /&gt;
* Contribute to the design and development of the new cave.  Integrate changes to vrg3d.  Simplify the configuration and provide a quick start path for student projects.&lt;br /&gt;
&lt;br /&gt;
* Set up public distribution of diffusion imaging data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Infrastructure&lt;br /&gt;
&lt;br /&gt;
* Manage the migration to the new file system.&lt;br /&gt;
&lt;br /&gt;
* Continue to write Wiki entries as needed.&lt;br /&gt;
&lt;br /&gt;
* Continue setting up third party software for students to use. Current imported packages are:  blitz, cg, g3d, qt, camino, dtk, afni, nifti, vivro, vrpn, glut, and sdl.&lt;br /&gt;
&lt;br /&gt;
* Extend the build system to make kits for public source and binary distributions.&lt;br /&gt;
&lt;br /&gt;
* Improve support for remote development.&lt;br /&gt;
&lt;br /&gt;
* Launch the Windows test system.&lt;br /&gt;
&lt;br /&gt;
* Continue extend the make files to support new features such as additional third party packages.&lt;br /&gt;
&lt;br /&gt;
* Upgrade migrated Linux code to work with gcc 4.3 in conjunction with the summer Debian upgrade.&lt;br /&gt;
&lt;br /&gt;
* Continue to integrate any new tests written by students into nightly test runs.&lt;br /&gt;
&lt;br /&gt;
* Finish integrating the new version of the Nag libraries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Knowledge&lt;br /&gt;
&lt;br /&gt;
* Learn more about the cave; particularly vrg3d software development.&lt;br /&gt;
&lt;br /&gt;
* Meet (SciVis talk) with students to address any integration issues.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Cagatay Demiralp|Çağatay]] === &lt;br /&gt;
&lt;br /&gt;
# Give a good proposal talk. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Caroline Ziemkiewicz|Caroline]] ===&lt;br /&gt;
&lt;br /&gt;
Research: Observe and analyze users for multi-view task modeling&lt;br /&gt;
* Set up systems for interaction logging, video capturing, eye-tracking, etc.&lt;br /&gt;
* Design a general data-gathering plan &lt;br /&gt;
* Arrange observation sessions with the scientific labs&lt;br /&gt;
* Analyze the data, do task sequence analysis&lt;br /&gt;
* Aim for VisWeek publication of initial results&lt;br /&gt;
&lt;br /&gt;
Identify long-term funding opportunities for modeling project&lt;br /&gt;
&lt;br /&gt;
Help mentor students on usability design independent study&lt;br /&gt;
&lt;br /&gt;
Service/community activities&lt;br /&gt;
* Program committee for VisWeek &lt;br /&gt;
* Contribute to VisWeek planning&lt;br /&gt;
* General reviewing - EuroVis, PacificVis&lt;br /&gt;
* Attend conferences - EuroVis, CHI?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== David ===&lt;br /&gt;
#get diffusion normals, one library, and one executable distributed (late...)&lt;br /&gt;
#get one diffusion analysis completed and out (Paul? Cohen? hire?)&lt;br /&gt;
#visweek papers&lt;br /&gt;
#*Steve: comps (need title, brain diagrams and events expanded?)&lt;br /&gt;
#*Cagatay: coloring manifesto&lt;br /&gt;
#*Cagatay: metric learning via interaction (?)&lt;br /&gt;
#*Cagatay: cycles of brains (?)&lt;br /&gt;
#*Radu: Analysis nudges: guiding scientists towards improved analytic practices&lt;br /&gt;
#*Caroline: A Task Analysis of Reasoning with Multi-View Visualization (is vis appropriate?)&lt;br /&gt;
#*Ryan: get involved with Cagatay&#039;s?  Cohen analysis (maybe not vis)?&lt;br /&gt;
#*Wenjin: too far from Vis?&lt;br /&gt;
#*Jadrian: modeling curve bundles? small problem results?&lt;br /&gt;
#support 7 phd students&#039;  progress toward graduation and careers&lt;br /&gt;
#new Cave creation on track&lt;br /&gt;
#more dissemination: talks/slides?, datasets (animals?)?, more/better images (&amp;gt;2004..., analytics)?&lt;br /&gt;
#funded grants happy: nih (ext?), immgen, nmrkrs, sa, aptima, jian&lt;br /&gt;
#si^2 and expedition proposal followthrough?&lt;br /&gt;
#teach a good CS16&lt;br /&gt;
#keep Vis &#039;11 on track&lt;br /&gt;
#cs facilities vision document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Eni ===&lt;br /&gt;
&lt;br /&gt;
* Make progress in the surface analysis/congruency problem &lt;br /&gt;
* Draft a proposal for my work &lt;br /&gt;
* Read more literature that’s related to my work&lt;br /&gt;
* Submit a paper to MRM on tracts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Jadrian Miles|Jadrian]] ===&lt;br /&gt;
&lt;br /&gt;
* [[:Image:Jadrian Miles PhD Proposal original 2009-06-22.pdf‎|Initial thesis proposal, submitted 2009-06-22]]&lt;br /&gt;
* [[:Image:Jadrian Miles PhD Proposal rev2 2009-10-15.pdf|Proposal second revision, prepared 2009-10-15]]&lt;br /&gt;
&lt;br /&gt;
# Write up dissertation table of contents, outline, and some hole-filled chapters by July 31st&lt;br /&gt;
#* Done.&lt;br /&gt;
# Write up departmental proposal document by September 1st&lt;br /&gt;
#* Initial submission on September 10th.&lt;br /&gt;
# Present the proposal formally to the department in October&lt;br /&gt;
#* Proposal presentation on October 7th.&lt;br /&gt;
# Define a macrostructure model and cost function&lt;br /&gt;
#* The committee has been very involved in refining the idea of the &amp;quot;cost functions&amp;quot; for various fitting steps.  The macrostructure model has gone through several revisions and is almost done.&lt;br /&gt;
# Implement curve clustering using the macrostructure model; write up for ISMRM&lt;br /&gt;
#* {{red|Not done.}}  Intended ISMRM submission on Rician noise correction turned out not to be novel, though I did learn about a ton of related work that has been quite successful.&lt;br /&gt;
# Extend the macrostructure cost function to include DWI values&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Implement macrostructure adjustment from DWIs; write up for an MRM paper&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Get preliminary histological data of some kind, either by doing it in-house, working with collaborators, or outsourcing&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Derive a minimal set of microstructure measurements from histological data&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Copy South Africa data from DVDs and work with Amanda to import and process it&lt;br /&gt;
#* All data are organized on the data server but not processed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nathan Malkin|Nathan]] ===&lt;br /&gt;
* [[Diffusion Processing Pipeline|Diffusion pipeline]] work&lt;br /&gt;
** Medical Image library&lt;br /&gt;
** Possible further work, including:&lt;br /&gt;
*** Tubegen replacement&lt;br /&gt;
*** New (or updated) dfit utility&lt;br /&gt;
*** Others &lt;br /&gt;
* Independent research&lt;br /&gt;
*# Develop interesting research question&lt;br /&gt;
*#* Related to my interests in human-computer interaction, behavioral economics/cognitive biases, etc.&lt;br /&gt;
*# Come up with a project based on it&lt;br /&gt;
*# Apply for UTRA for this project (deadline: &#039;&#039;&#039;February 9&#039;&#039;&#039;)&lt;br /&gt;
*# Apply for NSF REU (Research Experience for Undergraduates) grant (deadline: &#039;&#039;&#039;February 15&#039;&#039;&#039;)&lt;br /&gt;
*# Begin work on the project&lt;br /&gt;
* Help with data processing for our [[Diffusion MRI#Neuroscience_Collaborations|collaborators]]&lt;br /&gt;
** Including, possibly, new tools that may be required&lt;br /&gt;
* (Ongoing) Provide support and documentation for previously-written tools&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Radu === &lt;br /&gt;
&lt;br /&gt;
# Learning distance metrics from users (with Cagatay)&lt;br /&gt;
# Revise/submit neural maps paper&lt;br /&gt;
# Revise/resubmit google maps paper&lt;br /&gt;
# Run analysis nudges study and submit Vis paper&lt;br /&gt;
# Deploy at least one more Immgen map on the Immgen website&lt;br /&gt;
# Create the deployment infrastructure for the existing maps&lt;br /&gt;
# Make my PhD code reusable (installable, automatic testing, partially commented) &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Wenjin ===&lt;br /&gt;
&lt;br /&gt;
* MICCAI paper submission? due 3/9/2011&lt;br /&gt;
* NeuroImage journal submission&lt;br /&gt;
* Get real brain data on double-PGSE acquisition (work with Ed)&lt;br /&gt;
* good CONNECT meeting ( MRI of brain microstructure and connectivity) talk in Feb&lt;br /&gt;
* Ponder on disease applications&lt;br /&gt;
* Long-term research goals and plans: research plan, statement of interest, teaching statement, etc.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Steven Gomez|Steve]] ===&lt;br /&gt;
&lt;br /&gt;
Comps progress&lt;br /&gt;
* Finish development and study for history/modeling project + w/ brain diagram&lt;br /&gt;
* Successful comps write-up (full draft by 2/7) and defense (must finish by 3/15)&lt;br /&gt;
* (Info?)Vis submission from comps report&lt;br /&gt;
* Check other venues that might be appropriate: e.g. ACM [http://dilab.gatech.edu/ccc/index.html creativity &amp;amp; cognition], ...?&lt;br /&gt;
 &lt;br /&gt;
Brain Diagrams&lt;br /&gt;
* Revise demo for Jeff (1/20) &amp;lt;span style=&amp;quot;color:#00ff00&amp;quot;&amp;gt;[complete]&amp;lt;/span&amp;gt;&lt;br /&gt;
* Iterate with Schnitzer group over brain diagram ideas&lt;br /&gt;
* Prepare vis poster&lt;br /&gt;
* Write-up ideas for eye-tracking integration/experiments (mid Feb)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
* Finish final course req for candidacy&lt;br /&gt;
* Complete NSF BEARCORE training (1/25) &amp;lt;span style=&amp;quot;color:#00ff00&amp;quot;&amp;gt;[complete]&amp;lt;/span&amp;gt;&lt;br /&gt;
* Search fellowship opportunities, list (with deadlines) by 4/1&lt;br /&gt;
* Poster sketch with braphael on explanatory path vis (after comps)&lt;br /&gt;
* Whatever needed for grant that&#039;s funding me&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ryan ===&lt;br /&gt;
&lt;br /&gt;
* Complete programming comps successfully&lt;br /&gt;
* Become familiar with group&#039;s DTI tools and projects&lt;br /&gt;
* Follow up on David&#039;s vis conf suggestions&lt;br /&gt;
* Expand paper with Shantanu to journal submission&lt;br /&gt;
* Investigate research opportunities for surface based methods with DTI&lt;br /&gt;
* Choose and propose research comps project&lt;br /&gt;
* Coursework&lt;br /&gt;
&lt;br /&gt;
== Past Plans and Goals ==&lt;br /&gt;
* [[/Spring 2011|Spring &#039;11]]&lt;br /&gt;
* [[/Summer-Fall 2010|Summer-Fall &#039;10]]&lt;br /&gt;
* [[/Spring 2010|Spring &#039;10]]&lt;br /&gt;
* [[/Fall 2009|Fall &#039;09]]&lt;br /&gt;
* [[/Summer 2009|Summer &#039;09]]&lt;br /&gt;
* [[/Spring 2009|Spring &#039;09]]&lt;br /&gt;
* [[/Fall 2008|Fall &#039;08]]&lt;br /&gt;
* [http://sites.google.com/a/vis.cs.brown.edu/collaboravis/Home/summer-08-group-goals Summer &#039;08]&lt;br /&gt;
&lt;br /&gt;
[[Category:VRL]]&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Plans_and_Goals/Spring_2011&amp;diff=4814</id>
		<title>Plans and Goals/Spring 2011</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Plans_and_Goals/Spring_2011&amp;diff=4814"/>
		<updated>2011-05-13T18:26:45Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: New page: == Plans and Goals Spring &amp;#039;11 ==   === Brad ===  Projects  * Support the ongoing VRL Group projects: ** Jadrian&amp;#039;s brain research. ** Radu&amp;#039;s Protein project:&amp;lt;br&amp;gt; ::Assist...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Plans and Goals Spring &#039;11 ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [[User:Brad Berg|Brad]] ===&lt;br /&gt;
&lt;br /&gt;
Projects&lt;br /&gt;
&lt;br /&gt;
* Support the ongoing VRL Group projects:&lt;br /&gt;
** Jadrian&#039;s brain research.&lt;br /&gt;
** Radu&#039;s Protein project:&amp;lt;br&amp;gt;&lt;br /&gt;
::Assist Radu to integrate a test and any recent code.&lt;br /&gt;
&lt;br /&gt;
* Support collaborative projects.&lt;br /&gt;
** Wrist cartilage support for Eni and Michael.&lt;br /&gt;
** Migrate Win&#039;s mri pipeline to run in CIT.&lt;br /&gt;
** Andy Loomis and Andy Forsberg&#039;s Adviser program.&lt;br /&gt;
&lt;br /&gt;
* Contribute to the design and development of the new cave.  Integrate changes to vrg3d.  Simplify the configuration and provide a quick start path for student projects.&lt;br /&gt;
&lt;br /&gt;
* Set up public distribution of diffusion imaging data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Infrastructure&lt;br /&gt;
&lt;br /&gt;
* Manage the migration to the new file system.&lt;br /&gt;
&lt;br /&gt;
* Continue to write Wiki entries as needed.&lt;br /&gt;
&lt;br /&gt;
* Continue setting up third party software for students to use. Current imported packages are:  blitz, cg, g3d, qt, camino, dtk, afni, nifti, vivro, vrpn, glut, and sdl.&lt;br /&gt;
&lt;br /&gt;
* Extend the build system to make kits for public source and binary distributions.&lt;br /&gt;
&lt;br /&gt;
* Improve support for remote development.&lt;br /&gt;
&lt;br /&gt;
* Launch the Windows test system.&lt;br /&gt;
&lt;br /&gt;
* Continue extend the make files to support new features such as additional third party packages.&lt;br /&gt;
&lt;br /&gt;
* Upgrade migrated Linux code to work with gcc 4.3 in conjunction with the summer Debian upgrade.&lt;br /&gt;
&lt;br /&gt;
* Continue to integrate any new tests written by students into nightly test runs.&lt;br /&gt;
&lt;br /&gt;
* Finish integrating the new version of the Nag libraries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Knowledge&lt;br /&gt;
&lt;br /&gt;
* Learn more about the cave; particularly vrg3d software development.&lt;br /&gt;
&lt;br /&gt;
* Meet (SciVis talk) with students to address any integration issues.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Cagatay Demiralp|Çağatay]] === &lt;br /&gt;
&lt;br /&gt;
# Give a good proposal talk. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Caroline Ziemkiewicz|Caroline]] ===&lt;br /&gt;
&lt;br /&gt;
Research: Observe and analyze users for multi-view task modeling&lt;br /&gt;
* Set up systems for interaction logging, video capturing, eye-tracking, etc.&lt;br /&gt;
* Design a general data-gathering plan &lt;br /&gt;
* Arrange observation sessions with the scientific labs&lt;br /&gt;
* Analyze the data, do task sequence analysis&lt;br /&gt;
* Aim for VisWeek publication of initial results&lt;br /&gt;
&lt;br /&gt;
Identify long-term funding opportunities for modeling project&lt;br /&gt;
&lt;br /&gt;
Help mentor students on usability design independent study&lt;br /&gt;
&lt;br /&gt;
Service/community activities&lt;br /&gt;
* Program committee for VisWeek &lt;br /&gt;
* Contribute to VisWeek planning&lt;br /&gt;
* General reviewing - EuroVis, PacificVis&lt;br /&gt;
* Attend conferences - EuroVis, CHI?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== David ===&lt;br /&gt;
#get diffusion normals, one library, and one executable distributed (late...)&lt;br /&gt;
#get one diffusion analysis completed and out (Paul? Cohen? hire?)&lt;br /&gt;
#visweek papers&lt;br /&gt;
#*Steve: comps (need title, brain diagrams and events expanded?)&lt;br /&gt;
#*Cagatay: coloring manifesto&lt;br /&gt;
#*Cagatay: metric learning via interaction (?)&lt;br /&gt;
#*Cagatay: cycles of brains (?)&lt;br /&gt;
#*Radu: Analysis nudges: guiding scientists towards improved analytic practices&lt;br /&gt;
#*Caroline: A Task Analysis of Reasoning with Multi-View Visualization (is vis appropriate?)&lt;br /&gt;
#*Ryan: get involved with Cagatay&#039;s?  Cohen analysis (maybe not vis)?&lt;br /&gt;
#*Wenjin: too far from Vis?&lt;br /&gt;
#*Jadrian: modeling curve bundles? small problem results?&lt;br /&gt;
#support 7 phd students&#039;  progress toward graduation and careers&lt;br /&gt;
#new Cave creation on track&lt;br /&gt;
#more dissemination: talks/slides?, datasets (animals?)?, more/better images (&amp;gt;2004..., analytics)?&lt;br /&gt;
#funded grants happy: nih (ext?), immgen, nmrkrs, sa, aptima, jian&lt;br /&gt;
#si^2 and expedition proposal followthrough?&lt;br /&gt;
#teach a good CS16&lt;br /&gt;
#keep Vis &#039;11 on track&lt;br /&gt;
#cs facilities vision document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Eni ===&lt;br /&gt;
&lt;br /&gt;
* Make progress in the surface analysis/congruency problem &lt;br /&gt;
* Draft a proposal for my work &lt;br /&gt;
* Read more literature that’s related to my work&lt;br /&gt;
* Submit a paper to MRM on tracts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Jadrian Miles|Jadrian]] ===&lt;br /&gt;
&lt;br /&gt;
* [[:Image:Jadrian Miles PhD Proposal original 2009-06-22.pdf‎|Initial thesis proposal, submitted 2009-06-22]]&lt;br /&gt;
* [[:Image:Jadrian Miles PhD Proposal rev2 2009-10-15.pdf|Proposal second revision, prepared 2009-10-15]]&lt;br /&gt;
&lt;br /&gt;
# Write up dissertation table of contents, outline, and some hole-filled chapters by July 31st&lt;br /&gt;
#* Done.&lt;br /&gt;
# Write up departmental proposal document by September 1st&lt;br /&gt;
#* Initial submission on September 10th.&lt;br /&gt;
# Present the proposal formally to the department in October&lt;br /&gt;
#* Proposal presentation on October 7th.&lt;br /&gt;
# Define a macrostructure model and cost function&lt;br /&gt;
#* The committee has been very involved in refining the idea of the &amp;quot;cost functions&amp;quot; for various fitting steps.  The macrostructure model has gone through several revisions and is almost done.&lt;br /&gt;
# Implement curve clustering using the macrostructure model; write up for ISMRM&lt;br /&gt;
#* {{red|Not done.}}  Intended ISMRM submission on Rician noise correction turned out not to be novel, though I did learn about a ton of related work that has been quite successful.&lt;br /&gt;
# Extend the macrostructure cost function to include DWI values&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Implement macrostructure adjustment from DWIs; write up for an MRM paper&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Get preliminary histological data of some kind, either by doing it in-house, working with collaborators, or outsourcing&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Derive a minimal set of microstructure measurements from histological data&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Copy South Africa data from DVDs and work with Amanda to import and process it&lt;br /&gt;
#* All data are organized on the data server but not processed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nathan Malkin|Nathan]] ===&lt;br /&gt;
* [[Diffusion Processing Pipeline|Diffusion pipeline]] work&lt;br /&gt;
** Medical Image library&lt;br /&gt;
** Possible further work, including:&lt;br /&gt;
*** Tubegen replacement&lt;br /&gt;
*** New (or updated) dfit utility&lt;br /&gt;
*** Others &lt;br /&gt;
* Independent research&lt;br /&gt;
*# Develop interesting research question&lt;br /&gt;
*#* Related to my interests in human-computer interaction, behavioral economics/cognitive biases, etc.&lt;br /&gt;
*# Come up with a project based on it&lt;br /&gt;
*# Apply for UTRA for this project (deadline: &#039;&#039;&#039;February 9&#039;&#039;&#039;)&lt;br /&gt;
*# Apply for NSF REU (Research Experience for Undergraduates) grant (deadline: &#039;&#039;&#039;February 15&#039;&#039;&#039;)&lt;br /&gt;
*# Begin work on the project&lt;br /&gt;
* Help with data processing for our [[Diffusion MRI#Neuroscience_Collaborations|collaborators]]&lt;br /&gt;
** Including, possibly, new tools that may be required&lt;br /&gt;
* (Ongoing) Provide support and documentation for previously-written tools&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Radu === &lt;br /&gt;
&lt;br /&gt;
# Learning distance metrics from users (with Cagatay)&lt;br /&gt;
# Revise/submit neural maps paper&lt;br /&gt;
# Revise/resubmit google maps paper&lt;br /&gt;
# Run analysis nudges study and submit Vis paper&lt;br /&gt;
# Deploy at least one more Immgen map on the Immgen website&lt;br /&gt;
# Create the deployment infrastructure for the existing maps&lt;br /&gt;
# Make my PhD code reusable (installable, automatic testing, partially commented) &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Wenjin ===&lt;br /&gt;
&lt;br /&gt;
* MICCAI paper submission? due 3/9/2011&lt;br /&gt;
* NeuroImage journal submission&lt;br /&gt;
* Get real brain data on double-PGSE acquisition (work with Ed)&lt;br /&gt;
* good CONNECT meeting ( MRI of brain microstructure and connectivity) talk in Feb&lt;br /&gt;
* Ponder on disease applications&lt;br /&gt;
* Long-term research goals and plans: research plan, statement of interest, teaching statement, etc.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Steven Gomez|Steve]] ===&lt;br /&gt;
&lt;br /&gt;
Comps progress&lt;br /&gt;
* Finish development and study for history/modeling project + w/ brain diagram&lt;br /&gt;
* Successful comps write-up (full draft by 2/7) and defense (must finish by 3/15)&lt;br /&gt;
* (Info?)Vis submission from comps report&lt;br /&gt;
* Check other venues that might be appropriate: e.g. ACM [http://dilab.gatech.edu/ccc/index.html creativity &amp;amp; cognition], ...?&lt;br /&gt;
 &lt;br /&gt;
Brain Diagrams&lt;br /&gt;
* Revise demo for Jeff (1/20) &amp;lt;span style=&amp;quot;color:#00ff00&amp;quot;&amp;gt;[complete]&amp;lt;/span&amp;gt;&lt;br /&gt;
* Iterate with Schnitzer group over brain diagram ideas&lt;br /&gt;
* Prepare vis poster&lt;br /&gt;
* Write-up ideas for eye-tracking integration/experiments (mid Feb)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
* Finish final course req for candidacy&lt;br /&gt;
* Complete NSF BEARCORE training (1/25) &amp;lt;span style=&amp;quot;color:#00ff00&amp;quot;&amp;gt;[complete]&amp;lt;/span&amp;gt;&lt;br /&gt;
* Search fellowship opportunities, list (with deadlines) by 4/1&lt;br /&gt;
* Poster sketch with braphael on explanatory path vis (after comps)&lt;br /&gt;
* Whatever needed for grant that&#039;s funding me&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ryan ===&lt;br /&gt;
&lt;br /&gt;
* Complete programming comps successfully&lt;br /&gt;
* Become familiar with group&#039;s DTI tools and projects&lt;br /&gt;
* Follow up on David&#039;s vis conf suggestions&lt;br /&gt;
* Expand paper with Shantanu to journal submission&lt;br /&gt;
* Investigate research opportunities for surface based methods with DTI&lt;br /&gt;
* Choose and propose research comps project&lt;br /&gt;
* Coursework&lt;br /&gt;
&lt;br /&gt;
[[Category:VRL]]&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Plans_and_Goals&amp;diff=4813</id>
		<title>Plans and Goals</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Plans_and_Goals&amp;diff=4813"/>
		<updated>2011-05-13T18:25:42Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Past Plans and Goals */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;On this page the members of the [[VRL]] record and refine their goals for the current semester.  This is a living document in which [[dhl]] will provide feedback.  See the bottom of the page for links to past plans &amp;amp; goals documents.&lt;br /&gt;
&lt;br /&gt;
== Current Schedule ==&lt;br /&gt;
Meetings are on Tuesdays.  The authoritative list is in dhl&#039;s calendar. (updated here 9/24/10)&lt;br /&gt;
&lt;br /&gt;
* 2:30 - Dawn&lt;br /&gt;
* 2:50 - Brad&lt;br /&gt;
* 3:00 - Radu&lt;br /&gt;
* 3:10 - Steve G&lt;br /&gt;
* 3:20 - Nathan&lt;br /&gt;
* 3:30 - Jadrian&lt;br /&gt;
* 3:40 - Caroline&lt;br /&gt;
* 3:50 - Ryan&lt;br /&gt;
* 4:00 - Wenjin&lt;br /&gt;
&lt;br /&gt;
== Current Plans and Goals (Spring &#039;11) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== [[User:Brad Berg|Brad]] ===&lt;br /&gt;
&lt;br /&gt;
Projects&lt;br /&gt;
&lt;br /&gt;
* Support the ongoing VRL Group projects:&lt;br /&gt;
** Jadrian&#039;s brain research.&lt;br /&gt;
** Radu&#039;s Protein project:&amp;lt;br&amp;gt;&lt;br /&gt;
::Assist Radu to integrate a test and any recent code.&lt;br /&gt;
&lt;br /&gt;
* Support collaborative projects.&lt;br /&gt;
** Wrist cartilage support for Eni and Michael.&lt;br /&gt;
** Migrate Win&#039;s mri pipeline to run in CIT.&lt;br /&gt;
** Andy Loomis and Andy Forsberg&#039;s Adviser program.&lt;br /&gt;
&lt;br /&gt;
* Contribute to the design and development of the new cave.  Integrate changes to vrg3d.  Simplify the configuration and provide a quick start path for student projects.&lt;br /&gt;
&lt;br /&gt;
* Set up public distribution of diffusion imaging data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Infrastructure&lt;br /&gt;
&lt;br /&gt;
* Manage the migration to the new file system.&lt;br /&gt;
&lt;br /&gt;
* Continue to write Wiki entries as needed.&lt;br /&gt;
&lt;br /&gt;
* Continue setting up third party software for students to use. Current imported packages are:  blitz, cg, g3d, qt, camino, dtk, afni, nifti, vivro, vrpn, glut, and sdl.&lt;br /&gt;
&lt;br /&gt;
* Extend the build system to make kits for public source and binary distributions.&lt;br /&gt;
&lt;br /&gt;
* Improve support for remote development.&lt;br /&gt;
&lt;br /&gt;
* Launch the Windows test system.&lt;br /&gt;
&lt;br /&gt;
* Continue extend the make files to support new features such as additional third party packages.&lt;br /&gt;
&lt;br /&gt;
* Upgrade migrated Linux code to work with gcc 4.3 in conjunction with the summer Debian upgrade.&lt;br /&gt;
&lt;br /&gt;
* Continue to integrate any new tests written by students into nightly test runs.&lt;br /&gt;
&lt;br /&gt;
* Finish integrating the new version of the Nag libraries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Knowledge&lt;br /&gt;
&lt;br /&gt;
* Learn more about the cave; particularly vrg3d software development.&lt;br /&gt;
&lt;br /&gt;
* Meet (SciVis talk) with students to address any integration issues.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Cagatay Demiralp|Çağatay]] === &lt;br /&gt;
&lt;br /&gt;
# Give a good proposal talk. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Caroline Ziemkiewicz|Caroline]] ===&lt;br /&gt;
&lt;br /&gt;
Research: Observe and analyze users for multi-view task modeling&lt;br /&gt;
* Set up systems for interaction logging, video capturing, eye-tracking, etc.&lt;br /&gt;
* Design a general data-gathering plan &lt;br /&gt;
* Arrange observation sessions with the scientific labs&lt;br /&gt;
* Analyze the data, do task sequence analysis&lt;br /&gt;
* Aim for VisWeek publication of initial results&lt;br /&gt;
&lt;br /&gt;
Identify long-term funding opportunities for modeling project&lt;br /&gt;
&lt;br /&gt;
Help mentor students on usability design independent study&lt;br /&gt;
&lt;br /&gt;
Service/community activities&lt;br /&gt;
* Program committee for VisWeek &lt;br /&gt;
* Contribute to VisWeek planning&lt;br /&gt;
* General reviewing - EuroVis, PacificVis&lt;br /&gt;
* Attend conferences - EuroVis, CHI?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== David ===&lt;br /&gt;
#get diffusion normals, one library, and one executable distributed (late...)&lt;br /&gt;
#get one diffusion analysis completed and out (Paul? Cohen? hire?)&lt;br /&gt;
#visweek papers&lt;br /&gt;
#*Steve: comps (need title, brain diagrams and events expanded?)&lt;br /&gt;
#*Cagatay: coloring manifesto&lt;br /&gt;
#*Cagatay: metric learning via interaction (?)&lt;br /&gt;
#*Cagatay: cycles of brains (?)&lt;br /&gt;
#*Radu: Analysis nudges: guiding scientists towards improved analytic practices&lt;br /&gt;
#*Caroline: A Task Analysis of Reasoning with Multi-View Visualization (is vis appropriate?)&lt;br /&gt;
#*Ryan: get involved with Cagatay&#039;s?  Cohen analysis (maybe not vis)?&lt;br /&gt;
#*Wenjin: too far from Vis?&lt;br /&gt;
#*Jadrian: modeling curve bundles? small problem results?&lt;br /&gt;
#support 7 phd students&#039;  progress toward graduation and careers&lt;br /&gt;
#new Cave creation on track&lt;br /&gt;
#more dissemination: talks/slides?, datasets (animals?)?, more/better images (&amp;gt;2004..., analytics)?&lt;br /&gt;
#funded grants happy: nih (ext?), immgen, nmrkrs, sa, aptima, jian&lt;br /&gt;
#si^2 and expedition proposal followthrough?&lt;br /&gt;
#teach a good CS16&lt;br /&gt;
#keep Vis &#039;11 on track&lt;br /&gt;
#cs facilities vision document&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Eni ===&lt;br /&gt;
&lt;br /&gt;
* Make progress in the surface analysis/congruency problem &lt;br /&gt;
* Draft a proposal for my work &lt;br /&gt;
* Read more literature that’s related to my work&lt;br /&gt;
* Submit a paper to MRM on tracts &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Jadrian Miles|Jadrian]] ===&lt;br /&gt;
&lt;br /&gt;
* [[:Image:Jadrian Miles PhD Proposal original 2009-06-22.pdf‎|Initial thesis proposal, submitted 2009-06-22]]&lt;br /&gt;
* [[:Image:Jadrian Miles PhD Proposal rev2 2009-10-15.pdf|Proposal second revision, prepared 2009-10-15]]&lt;br /&gt;
&lt;br /&gt;
# Write up dissertation table of contents, outline, and some hole-filled chapters by July 31st&lt;br /&gt;
#* Done.&lt;br /&gt;
# Write up departmental proposal document by September 1st&lt;br /&gt;
#* Initial submission on September 10th.&lt;br /&gt;
# Present the proposal formally to the department in October&lt;br /&gt;
#* Proposal presentation on October 7th.&lt;br /&gt;
# Define a macrostructure model and cost function&lt;br /&gt;
#* The committee has been very involved in refining the idea of the &amp;quot;cost functions&amp;quot; for various fitting steps.  The macrostructure model has gone through several revisions and is almost done.&lt;br /&gt;
# Implement curve clustering using the macrostructure model; write up for ISMRM&lt;br /&gt;
#* {{red|Not done.}}  Intended ISMRM submission on Rician noise correction turned out not to be novel, though I did learn about a ton of related work that has been quite successful.&lt;br /&gt;
# Extend the macrostructure cost function to include DWI values&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Implement macrostructure adjustment from DWIs; write up for an MRM paper&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Get preliminary histological data of some kind, either by doing it in-house, working with collaborators, or outsourcing&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Derive a minimal set of microstructure measurements from histological data&lt;br /&gt;
#* {{red|Not done.}}&lt;br /&gt;
# Copy South Africa data from DVDs and work with Amanda to import and process it&lt;br /&gt;
#* All data are organized on the data server but not processed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Nathan Malkin|Nathan]] ===&lt;br /&gt;
* [[Diffusion Processing Pipeline|Diffusion pipeline]] work&lt;br /&gt;
** Medical Image library&lt;br /&gt;
** Possible further work, including:&lt;br /&gt;
*** Tubegen replacement&lt;br /&gt;
*** New (or updated) dfit utility&lt;br /&gt;
*** Others &lt;br /&gt;
* Independent research&lt;br /&gt;
*# Develop interesting research question&lt;br /&gt;
*#* Related to my interests in human-computer interaction, behavioral economics/cognitive biases, etc.&lt;br /&gt;
*# Come up with a project based on it&lt;br /&gt;
*# Apply for UTRA for this project (deadline: &#039;&#039;&#039;February 9&#039;&#039;&#039;)&lt;br /&gt;
*# Apply for NSF REU (Research Experience for Undergraduates) grant (deadline: &#039;&#039;&#039;February 15&#039;&#039;&#039;)&lt;br /&gt;
*# Begin work on the project&lt;br /&gt;
* Help with data processing for our [[Diffusion MRI#Neuroscience_Collaborations|collaborators]]&lt;br /&gt;
** Including, possibly, new tools that may be required&lt;br /&gt;
* (Ongoing) Provide support and documentation for previously-written tools&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Radu === &lt;br /&gt;
&lt;br /&gt;
# Learning distance metrics from users (with Cagatay)&lt;br /&gt;
# Revise/submit neural maps paper&lt;br /&gt;
# Revise/resubmit google maps paper&lt;br /&gt;
# Run analysis nudges study and submit Vis paper&lt;br /&gt;
# Deploy at least one more Immgen map on the Immgen website&lt;br /&gt;
# Create the deployment infrastructure for the existing maps&lt;br /&gt;
# Make my PhD code reusable (installable, automatic testing, partially commented) &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Wenjin ===&lt;br /&gt;
&lt;br /&gt;
* MICCAI paper submission? due 3/9/2011&lt;br /&gt;
* NeuroImage journal submission&lt;br /&gt;
* Get real brain data on double-PGSE acquisition (work with Ed)&lt;br /&gt;
* good CONNECT meeting ( MRI of brain microstructure and connectivity) talk in Feb&lt;br /&gt;
* Ponder on disease applications&lt;br /&gt;
* Long-term research goals and plans: research plan, statement of interest, teaching statement, etc.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== [[User:Steven Gomez|Steve]] ===&lt;br /&gt;
&lt;br /&gt;
Comps progress&lt;br /&gt;
* Finish development and study for history/modeling project + w/ brain diagram&lt;br /&gt;
* Successful comps write-up (full draft by 2/7) and defense (must finish by 3/15)&lt;br /&gt;
* (Info?)Vis submission from comps report&lt;br /&gt;
* Check other venues that might be appropriate: e.g. ACM [http://dilab.gatech.edu/ccc/index.html creativity &amp;amp; cognition], ...?&lt;br /&gt;
 &lt;br /&gt;
Brain Diagrams&lt;br /&gt;
* Revise demo for Jeff (1/20) &amp;lt;span style=&amp;quot;color:#00ff00&amp;quot;&amp;gt;[complete]&amp;lt;/span&amp;gt;&lt;br /&gt;
* Iterate with Schnitzer group over brain diagram ideas&lt;br /&gt;
* Prepare vis poster&lt;br /&gt;
* Write-up ideas for eye-tracking integration/experiments (mid Feb)&lt;br /&gt;
&lt;br /&gt;
Misc&lt;br /&gt;
* Finish final course req for candidacy&lt;br /&gt;
* Complete NSF BEARCORE training (1/25) &amp;lt;span style=&amp;quot;color:#00ff00&amp;quot;&amp;gt;[complete]&amp;lt;/span&amp;gt;&lt;br /&gt;
* Search fellowship opportunities, list (with deadlines) by 4/1&lt;br /&gt;
* Poster sketch with braphael on explanatory path vis (after comps)&lt;br /&gt;
* Whatever needed for grant that&#039;s funding me&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Ryan ===&lt;br /&gt;
&lt;br /&gt;
* Complete programming comps successfully&lt;br /&gt;
* Become familiar with group&#039;s DTI tools and projects&lt;br /&gt;
* Follow up on David&#039;s vis conf suggestions&lt;br /&gt;
* Expand paper with Shantanu to journal submission&lt;br /&gt;
* Investigate research opportunities for surface based methods with DTI&lt;br /&gt;
* Choose and propose research comps project&lt;br /&gt;
* Coursework&lt;br /&gt;
&lt;br /&gt;
== Past Plans and Goals ==&lt;br /&gt;
* [[/Spring 2011|Spring &#039;11]]&lt;br /&gt;
* [[/Summer-Fall 2010|Summer-Fall &#039;10]]&lt;br /&gt;
* [[/Spring 2010|Spring &#039;10]]&lt;br /&gt;
* [[/Fall 2009|Fall &#039;09]]&lt;br /&gt;
* [[/Summer 2009|Summer &#039;09]]&lt;br /&gt;
* [[/Spring 2009|Spring &#039;09]]&lt;br /&gt;
* [[/Fall 2008|Fall &#039;08]]&lt;br /&gt;
* [http://sites.google.com/a/vis.cs.brown.edu/collaboravis/Home/summer-08-group-goals Summer &#039;08]&lt;br /&gt;
&lt;br /&gt;
[[Category:VRL]]&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=G_USE&amp;diff=4803</id>
		<title>G USE</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=G_USE&amp;diff=4803"/>
		<updated>2011-03-11T16:28:55Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; G_USE = { g3d | nifti | vrpn | vrg3d | qt | nag | mpi | medical_image }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Popular packages are predefined for use in applications.  This takes care of explicitly linking libraries and telling the compiler to include headers.&lt;br /&gt;
&lt;br /&gt;
For each setting there is a corresponding make file in the &#039;&#039;&#039;common/build/make/&#039;&#039;&#039; directory.  It has details about the library versions that are currently supported.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Minimal_Coding_Conventions&amp;diff=4802</id>
		<title>Minimal Coding Conventions</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Minimal_Coding_Conventions&amp;diff=4802"/>
		<updated>2011-03-11T15:27:27Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Coding Tips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just about everyone in the [[VRL]] ends up re-using code and programs that someone else wrote previously, and undoubtedly the code that they write will be used by someone else in the future.  Therefore the golden rule applies well to software development in our lab: do unto others as you would have them do unto you.  This page records best practices for getting started developing software in an environment where code lives on through many generations of researchers.&lt;br /&gt;
&lt;br /&gt;
The primary things to keep in mind are that:&lt;br /&gt;
* Future users of your code need read and write permission; and&lt;br /&gt;
* Future users of your code can&#039;t read your mind, so it must be organized and well-documented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Minimal Coding Conventions ===&lt;br /&gt;
&lt;br /&gt;
* Tabs are only meaningful in your edit session.&lt;br /&gt;
Do not use tabs (except in Makefiles as needed).&lt;br /&gt;
Indent 4 spaces, but 3 is okay if you prefer.&lt;br /&gt;
&lt;br /&gt;
* Name script files with suffixes.&lt;br /&gt;
Use Python for scripts (very portable).&lt;br /&gt;
Avoid reliance on Cygwin.&lt;br /&gt;
&lt;br /&gt;
* Commenting code does not slow progress.&lt;br /&gt;
If you make it a habit it speeds things up.&lt;br /&gt;
At a minimum write a method’s purpose and parameter usage.&lt;br /&gt;
&lt;br /&gt;
* Linux file system links are not portable.  Never use them.&lt;br /&gt;
&lt;br /&gt;
=== Coding in C++ ===&lt;br /&gt;
&lt;br /&gt;
* Use  .cpp  and  .h  suffixes for c++ source file names.  Not:   .C  and  .H&lt;br /&gt;
&lt;br /&gt;
* Avoid conditional compilation (#ifdef).&lt;br /&gt;
&lt;br /&gt;
* Use brackets around code bodies over multiple lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Evil:     if   (condition)&lt;br /&gt;
               action;&lt;br /&gt;
&lt;br /&gt;
Good:     if   (condition)   action;            if  (condition)  { action };&lt;br /&gt;
&lt;br /&gt;
          if   (condition)                      if  (condition)&lt;br /&gt;
          {     action;                         {&lt;br /&gt;
          }                                         action;&lt;br /&gt;
                                                }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Line up brackets so they are easier to match visually.&lt;br /&gt;
&lt;br /&gt;
* Do not #include .cpp files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Coding Tips ===&lt;br /&gt;
&lt;br /&gt;
* Order &amp;lt;code&amp;gt;#include&amp;lt;/code&amp;gt; statements from the most universal to the more specific.  The likelihood of interference between headers is diminish and the code is easier to read.  For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include  &amp;lt;unistd.h&amp;gt;           // Standard C headers.&lt;br /&gt;
#include  &amp;lt;fstream&amp;gt;            // Standard C++ headers&lt;br /&gt;
#include  &amp;lt;sys/types.h&amp;gt;        // Low level system headers.&lt;br /&gt;
&lt;br /&gt;
#include  &amp;lt;mri/image.h&amp;gt;        // Common Brown libraries.&lt;br /&gt;
#include  &amp;lt;utils/Utils_SVD.h&amp;gt;  // Internal project libraries.&lt;br /&gt;
&lt;br /&gt;
#include  &amp;quot;../setup/setup.h&amp;quot;   // Internal project headers.&lt;br /&gt;
#include  &amp;quot;Config.h&amp;quot;           // Headers in the same directory.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The order that libraries are linked to build a program is significant.&lt;br /&gt;
&lt;br /&gt;
In  some cases the link order has been established for you when you use the [[G_USE]] variable.  The [[LDLIB_VER]] and [[LDLIB_PROJECT]] variables are shorthand for linking the correct versions of libraries.&lt;br /&gt;
&lt;br /&gt;
Libraries are linked in the the order they are listed on the link step.  Libraries can contain different methods with the same names.  Conflicts are resolved by the link order.  Only methods that are referenced by the program or methods in other libraries are linked.  Consequently if a method in a library calls a method in a second library then the second library must be listed after the first.&lt;br /&gt;
&lt;br /&gt;
In the link step of a build you will know there is a library out of order or missing if you get error messages regarding undefined references.  To fix this locate the library containing the missing method or variable.  If the library is not being linked, add it.  Otherwise move it back in the link order.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:HOWTO]][[Category:$G HOWTO]][[Category:Software Development]]&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Software_Development&amp;diff=4801</id>
		<title>Software Development</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Software_Development&amp;diff=4801"/>
		<updated>2011-03-11T15:09:08Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* &#039;&#039;&#039;Essential Background Reading&#039;&#039;&#039;&lt;br /&gt;
** [[Shared Public Directory Structure]]&lt;br /&gt;
** [[Understanding File Permissions]]&lt;br /&gt;
** [[Setting Environment Variables]]&lt;br /&gt;
** [[Introduction to CVS]]&lt;br /&gt;
** [[Minimal Coding Conventions|Coding Conventions and Programming Tips]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Create a Linux Sandbox&#039;&#039;&#039;&lt;br /&gt;
** [[Get a Linux Account]]&lt;br /&gt;
** Set up Your Sandbox&lt;br /&gt;
*** [[Automated Quick Start|Automated Quick Start - Linux only]]&lt;br /&gt;
*** [[Quick Start for CIT Users|Manual Quick Start - Windows and Linux]]&lt;br /&gt;
** [[Merge Installed Programs Into One Directory]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Software Development Tasks&#039;&#039;&#039;&lt;br /&gt;
** Before you start, [[Building and Installing Common Components]]&lt;br /&gt;
** Work on Existing Projects&lt;br /&gt;
*** [[Check out projects|Check out and build existing projects]]&lt;br /&gt;
*** [[Contribute to projects|Contribute to existing projects]]&lt;br /&gt;
** Add a project&lt;br /&gt;
*** [[Add a new project]]&lt;br /&gt;
**** [[Build a Trivial Program]]&lt;br /&gt;
**** [[Build a Trivial Library]]&lt;br /&gt;
*** [[Port existing project|Port existing project to the new $G]]&lt;br /&gt;
**[[Writing Make Files]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Advanced Topics&#039;&#039;&#039;&lt;br /&gt;
** [[Create a Windows Sandbox|Create a Windows Sandbox (In or out of CIT)]]&lt;br /&gt;
** [[Software tests|Create and automate software tests]]&lt;br /&gt;
** [[Install 3rd party code|Install 3rd-party programs or libraries]]&lt;br /&gt;
** [[Using Public or Private Programs and Libraries]]&lt;br /&gt;
** [[Multiple Directories|Set up a project with multiple directories]]&lt;br /&gt;
** [[Working With Multiple Sandboxes]]&lt;br /&gt;
** [[Working With Legacy Software]]&lt;br /&gt;
** [[Software demos|Create and install software demos]]&lt;br /&gt;
** [[Distribute software|Distribute software and data]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software Development]]&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=G_USE&amp;diff=4800</id>
		<title>G USE</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=G_USE&amp;diff=4800"/>
		<updated>2011-03-11T15:06:42Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; G_USE = { g3d | nifti | vrpn | vrg3d | qt | nag | mpi }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Popular packages are predefined for use in applications.  This takes care of explicitly linking libraries and telling the compiler to include headers.&lt;br /&gt;
&lt;br /&gt;
For each setting there is a corresponding make file in the &#039;&#039;&#039;common/build/make/&#039;&#039;&#039; directory.  It has details about the library versions that are currently supported.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=G_USE&amp;diff=4799</id>
		<title>G USE</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=G_USE&amp;diff=4799"/>
		<updated>2011-03-11T14:56:35Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; G_USE = { g3d | nifti | vrpn | vrg3d | qt | nag | mpi }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Popular packages are predefined for use in applications.  This takes care of explicitly linking libraries and telling the compiler to include headers.&lt;br /&gt;
&lt;br /&gt;
* g3d - This setting accesses a G3D version 8 library installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$G/import/g3d/g3d_8_$(G_COMPILER)/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set &#039;&#039;&#039;IMPORT_G3D&#039;&#039;&#039; to override this default directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* vrpn - Build with the vrpn library installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$G/import/vrpn/vrpn_7.22_$(G_COMPILER)/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set &#039;&#039;&#039;IMPORT_VRPN&#039;&#039;&#039; to override this default directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* vrg3d - Build with  vrg3d and the dependent libraries for vrg3d; including g3d and vrpn.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* qt - Build with qt and it&#039;s dependent libraries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For each setting there is a corresponding make file in the &#039;&#039;&#039;common/build/make/&#039;&#039;&#039; directory.  It has details about the library versions that are currently supported.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=G_USE&amp;diff=4798</id>
		<title>G USE</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=G_USE&amp;diff=4798"/>
		<updated>2011-03-11T14:56:06Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; G_USE = { g3d | nifti | vrpn | vrg3d | qt | nag }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Popular packages are predefined for use in applications.  This takes care of explicitly linking libraries and telling the compiler to include headers.&lt;br /&gt;
&lt;br /&gt;
* g3d - This setting accesses a G3D version 8 library installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$G/import/g3d/g3d_8_$(G_COMPILER)/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set &#039;&#039;&#039;IMPORT_G3D&#039;&#039;&#039; to override this default directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* vrpn - Build with the vrpn library installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$G/import/vrpn/vrpn_7.22_$(G_COMPILER)/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set &#039;&#039;&#039;IMPORT_VRPN&#039;&#039;&#039; to override this default directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* vrg3d - Build with  vrg3d and the dependent libraries for vrg3d; including g3d and vrpn.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* qt - Build with qt and it&#039;s dependent libraries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For each setting there is a corresponding make file in the &#039;&#039;&#039;common/build/make/&#039;&#039;&#039; directory.  It has details about the library versions that are currently supported.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Minimal_Coding_Conventions&amp;diff=4797</id>
		<title>Minimal Coding Conventions</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Minimal_Coding_Conventions&amp;diff=4797"/>
		<updated>2011-03-11T14:55:07Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Coding Tips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just about everyone in the [[VRL]] ends up re-using code and programs that someone else wrote previously, and undoubtedly the code that they write will be used by someone else in the future.  Therefore the golden rule applies well to software development in our lab: do unto others as you would have them do unto you.  This page records best practices for getting started developing software in an environment where code lives on through many generations of researchers.&lt;br /&gt;
&lt;br /&gt;
The primary things to keep in mind are that:&lt;br /&gt;
* Future users of your code need read and write permission; and&lt;br /&gt;
* Future users of your code can&#039;t read your mind, so it must be organized and well-documented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Minimal Coding Conventions ===&lt;br /&gt;
&lt;br /&gt;
* Tabs are only meaningful in your edit session.&lt;br /&gt;
Do not use tabs (except in Makefiles as needed).&lt;br /&gt;
Indent 4 spaces, but 3 is okay if you prefer.&lt;br /&gt;
&lt;br /&gt;
* Name script files with suffixes.&lt;br /&gt;
Use Python for scripts (very portable).&lt;br /&gt;
Avoid reliance on Cygwin.&lt;br /&gt;
&lt;br /&gt;
* Commenting code does not slow progress.&lt;br /&gt;
If you make it a habit it speeds things up.&lt;br /&gt;
At a minimum write a method’s purpose and parameter usage.&lt;br /&gt;
&lt;br /&gt;
* Linux file system links are not portable.  Never use them.&lt;br /&gt;
&lt;br /&gt;
=== Coding in C++ ===&lt;br /&gt;
&lt;br /&gt;
* Use  .cpp  and  .h  suffixes for c++ source file names.  Not:   .C  and  .H&lt;br /&gt;
&lt;br /&gt;
* Avoid conditional compilation (#ifdef).&lt;br /&gt;
&lt;br /&gt;
* Use brackets around code bodies over multiple lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Evil:     if   (condition)&lt;br /&gt;
               action;&lt;br /&gt;
&lt;br /&gt;
Good:     if   (condition)   action;            if  (condition)  { action };&lt;br /&gt;
&lt;br /&gt;
          if   (condition)                      if  (condition)&lt;br /&gt;
          {     action;                         {&lt;br /&gt;
          }                                         action;&lt;br /&gt;
                                                }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Line up brackets so they are easier to match visually.&lt;br /&gt;
&lt;br /&gt;
* Do not #include .cpp files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Coding Tips ===&lt;br /&gt;
&lt;br /&gt;
* Order &amp;lt;code&amp;gt;#include&amp;lt;/code&amp;gt; statements from the most universal to the more specific.  The likelihood of interference between headers is diminish and the code is easier to read.  For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include  &amp;lt;unistd.h&amp;gt;           // Standard C headers.&lt;br /&gt;
#include  &amp;lt;fstream&amp;gt;            // Standard C++ headers&lt;br /&gt;
#include  &amp;lt;sys/types.h&amp;gt;        // Low level system headers.&lt;br /&gt;
&lt;br /&gt;
#include  &amp;lt;mri/image.h&amp;gt;        // Common Brown libraries.&lt;br /&gt;
#include  &amp;lt;utils/Utils_SVD.h&amp;gt;  // Internal project libraries.&lt;br /&gt;
&lt;br /&gt;
#include  &amp;quot;../setup/setup.h&amp;quot;   // Internal project headers.&lt;br /&gt;
#include  &amp;quot;Config.h&amp;quot;           // Headers in the same directory.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The order that libraries are linked to build a program is significant.&lt;br /&gt;
&lt;br /&gt;
In  some cases the link order has been established for you when you use the [[G_USE]] variable.  The [[LDLIB_VER]] and [[LDLIB_PROJECT]] variables are shorthand for referencing the correct versions of libraries.&lt;br /&gt;
&lt;br /&gt;
Libraries are linked in the the order they are listed on the link step.  Libraries can contain different methods with the same names.  Conflicts are resolved by the link order.  Only methods that are referenced by the program or methods in other libraries are linked.  Consequently if a method in a library calls a method in a second library then the second library must be listed after the first.&lt;br /&gt;
&lt;br /&gt;
In the link step of a build you will know there is a library out of order or missing if you get error messages regarding undefined references.  To fix this locate the library containing the missing method or variable.  If the library is not being linked, add it.  Otherwise move it back in the link order.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:HOWTO]][[Category:$G HOWTO]][[Category:Software Development]]&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Minimal_Coding_Conventions&amp;diff=4796</id>
		<title>Minimal Coding Conventions</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Minimal_Coding_Conventions&amp;diff=4796"/>
		<updated>2011-03-11T14:53:27Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Coding Tips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just about everyone in the [[VRL]] ends up re-using code and programs that someone else wrote previously, and undoubtedly the code that they write will be used by someone else in the future.  Therefore the golden rule applies well to software development in our lab: do unto others as you would have them do unto you.  This page records best practices for getting started developing software in an environment where code lives on through many generations of researchers.&lt;br /&gt;
&lt;br /&gt;
The primary things to keep in mind are that:&lt;br /&gt;
* Future users of your code need read and write permission; and&lt;br /&gt;
* Future users of your code can&#039;t read your mind, so it must be organized and well-documented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Minimal Coding Conventions ===&lt;br /&gt;
&lt;br /&gt;
* Tabs are only meaningful in your edit session.&lt;br /&gt;
Do not use tabs (except in Makefiles as needed).&lt;br /&gt;
Indent 4 spaces, but 3 is okay if you prefer.&lt;br /&gt;
&lt;br /&gt;
* Name script files with suffixes.&lt;br /&gt;
Use Python for scripts (very portable).&lt;br /&gt;
Avoid reliance on Cygwin.&lt;br /&gt;
&lt;br /&gt;
* Commenting code does not slow progress.&lt;br /&gt;
If you make it a habit it speeds things up.&lt;br /&gt;
At a minimum write a method’s purpose and parameter usage.&lt;br /&gt;
&lt;br /&gt;
* Linux file system links are not portable.  Never use them.&lt;br /&gt;
&lt;br /&gt;
=== Coding in C++ ===&lt;br /&gt;
&lt;br /&gt;
* Use  .cpp  and  .h  suffixes for c++ source file names.  Not:   .C  and  .H&lt;br /&gt;
&lt;br /&gt;
* Avoid conditional compilation (#ifdef).&lt;br /&gt;
&lt;br /&gt;
* Use brackets around code bodies over multiple lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Evil:     if   (condition)&lt;br /&gt;
               action;&lt;br /&gt;
&lt;br /&gt;
Good:     if   (condition)   action;            if  (condition)  { action };&lt;br /&gt;
&lt;br /&gt;
          if   (condition)                      if  (condition)&lt;br /&gt;
          {     action;                         {&lt;br /&gt;
          }                                         action;&lt;br /&gt;
                                                }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Line up brackets so they are easier to match visually.&lt;br /&gt;
&lt;br /&gt;
* Do not #include .cpp files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Coding Tips ===&lt;br /&gt;
&lt;br /&gt;
* Order &amp;lt;code&amp;gt;#include&amp;lt;/code&amp;gt; statements from the most universal to the more specific.  The likelihood of interference between headers is diminish and the code is easier to read.  For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include  &amp;lt;unistd.h&amp;gt;           // Standard C headers.&lt;br /&gt;
#include  &amp;lt;fstream&amp;gt;            // Standard C++ headers&lt;br /&gt;
#include  &amp;lt;sys/types.h&amp;gt;        // Low level system headers.&lt;br /&gt;
&lt;br /&gt;
#include  &amp;lt;mri/image.h&amp;gt;        // Common Brown libraries.&lt;br /&gt;
#include  &amp;lt;utils/Utils_SVD.h&amp;gt;  // Internal project libraries.&lt;br /&gt;
&lt;br /&gt;
#include  &amp;quot;../setup/setup.h&amp;quot;   // Internal project headers.&lt;br /&gt;
#include  &amp;quot;Config.h&amp;quot;           // Headers in the same directory.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The order that libraries are linked to build a program is significant.&lt;br /&gt;
&lt;br /&gt;
In  some cases the link order has been established for you when you use the [[G_USE]] variable.  The [[LDLIB_VER]] and [[LDLIB_PROJECT]] variables are shorthand for referencing the correct versions of libraries.&lt;br /&gt;
&lt;br /&gt;
Libraries are linked in the the order they are listed on the link step.  Libraries can contain different methods with the same names.  Conflicts are resolved by the link order.  Only methods that are referenced by the program or methods in other libraries are linked.  Consequently if a method in a library calls a method in a second library then the second library must be listed after the first.&lt;br /&gt;
&lt;br /&gt;
In the link step of a build you will know there is a library out of order or missing if you get error messages regarding undefined references.  To fix this check locate the library containing the missing method or variable.  If the library is not being linked, add it.  Otherwise move it back in the link order.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:HOWTO]][[Category:$G HOWTO]][[Category:Software Development]]&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Minimal_Coding_Conventions&amp;diff=4795</id>
		<title>Minimal Coding Conventions</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Minimal_Coding_Conventions&amp;diff=4795"/>
		<updated>2011-03-11T14:52:27Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just about everyone in the [[VRL]] ends up re-using code and programs that someone else wrote previously, and undoubtedly the code that they write will be used by someone else in the future.  Therefore the golden rule applies well to software development in our lab: do unto others as you would have them do unto you.  This page records best practices for getting started developing software in an environment where code lives on through many generations of researchers.&lt;br /&gt;
&lt;br /&gt;
The primary things to keep in mind are that:&lt;br /&gt;
* Future users of your code need read and write permission; and&lt;br /&gt;
* Future users of your code can&#039;t read your mind, so it must be organized and well-documented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Minimal Coding Conventions ===&lt;br /&gt;
&lt;br /&gt;
* Tabs are only meaningful in your edit session.&lt;br /&gt;
Do not use tabs (except in Makefiles as needed).&lt;br /&gt;
Indent 4 spaces, but 3 is okay if you prefer.&lt;br /&gt;
&lt;br /&gt;
* Name script files with suffixes.&lt;br /&gt;
Use Python for scripts (very portable).&lt;br /&gt;
Avoid reliance on Cygwin.&lt;br /&gt;
&lt;br /&gt;
* Commenting code does not slow progress.&lt;br /&gt;
If you make it a habit it speeds things up.&lt;br /&gt;
At a minimum write a method’s purpose and parameter usage.&lt;br /&gt;
&lt;br /&gt;
* Linux file system links are not portable.  Never use them.&lt;br /&gt;
&lt;br /&gt;
=== Coding in C++ ===&lt;br /&gt;
&lt;br /&gt;
* Use  .cpp  and  .h  suffixes for c++ source file names.  Not:   .C  and  .H&lt;br /&gt;
&lt;br /&gt;
* Avoid conditional compilation (#ifdef).&lt;br /&gt;
&lt;br /&gt;
* Use brackets around code bodies over multiple lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Evil:     if   (condition)&lt;br /&gt;
               action;&lt;br /&gt;
&lt;br /&gt;
Good:     if   (condition)   action;            if  (condition)  { action };&lt;br /&gt;
&lt;br /&gt;
          if   (condition)                      if  (condition)&lt;br /&gt;
          {     action;                         {&lt;br /&gt;
          }                                         action;&lt;br /&gt;
                                                }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Line up brackets so they are easier to match visually.&lt;br /&gt;
&lt;br /&gt;
* Do not #include .cpp files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Coding Tips ===&lt;br /&gt;
&lt;br /&gt;
* Order &amp;lt;code&amp;gt;#include&amp;lt;/code&amp;gt; statements from the most universal to the more specific.  The likelihood of interference between headers is diminish and the code is easier to read.  For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include  &amp;lt;unistd.h&amp;gt;           // Standard C headers.&lt;br /&gt;
#include  &amp;lt;fstream&amp;gt;            // Standard C++ headers&lt;br /&gt;
#include  &amp;lt;sys/types.h&amp;gt;        // Low level system headers.&lt;br /&gt;
&lt;br /&gt;
#include  &amp;lt;mri/image.h&amp;gt;        // Common Brown libraries.&lt;br /&gt;
#include  &amp;lt;utils/Utils_SVD.h&amp;gt;  // Internal project libraries.&lt;br /&gt;
&lt;br /&gt;
#include  &amp;quot;../setup/setup.h&amp;quot;   // Internal project headers.&lt;br /&gt;
#include  &amp;quot;Config.h&amp;quot;           // Headers in the same directory.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* The order that libraries are linked to build a program is significant.  In  some cases the link order has been established for you when you use the [[G_USE]] variable.  The [[LDLIB_VER]] and [[LDLIB_PROJECT]] variables are shorthand for referencing the correct versions of libraries.&lt;br /&gt;
&lt;br /&gt;
Libraries are linked in the the order they are listed on the link step.  Libraries can contain different methods with the same names.  Conflicts are resolved by the link order.  Only methods that are referenced by the program or methods in other libraries are linked.  Consequently if a method in a library calls a method in a second library then the second library must be listed after the first.&lt;br /&gt;
&lt;br /&gt;
In the link step of a build you will know there is a library out of order or missing if you get error messages regarding undefined references.  To fix this check locate the library containing the missing method or variable.  If the library is not being linked, add it.  Otherwise move it back in the link order.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:HOWTO]][[Category:$G HOWTO]][[Category:Software Development]]&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Minimal_Coding_Conventions&amp;diff=4793</id>
		<title>Minimal Coding Conventions</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Minimal_Coding_Conventions&amp;diff=4793"/>
		<updated>2011-03-10T20:06:05Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Coding Tips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just about everyone in the [[VRL]] ends up re-using code and programs that someone else wrote previously, and undoubtedly the code that they write will be used by someone else in the future.  Therefore the golden rule applies well to software development in our lab: do unto others as you would have them do unto you.  This page records best practices for getting started developing software in an environment where code lives on through many generations of researchers.&lt;br /&gt;
&lt;br /&gt;
The primary things to keep in mind are that:&lt;br /&gt;
* Future users of your code need read and write permission; and&lt;br /&gt;
* Future users of your code can&#039;t read your mind, so it must be organized and well-documented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Minimal Coding Conventions ===&lt;br /&gt;
&lt;br /&gt;
* Tabs are only meaningful in your edit session.&lt;br /&gt;
Do not use tabs (except in Makefiles as needed).&lt;br /&gt;
Indent 4 spaces, but 3 is okay if you prefer.&lt;br /&gt;
&lt;br /&gt;
* Name script files with suffixes.&lt;br /&gt;
Use Python for scripts (very portable).&lt;br /&gt;
Avoid reliance on Cygwin.&lt;br /&gt;
&lt;br /&gt;
* Commenting code does not slow progress.&lt;br /&gt;
If you make it a habit it speeds things up.&lt;br /&gt;
At a minimum write a method’s purpose and parameter usage.&lt;br /&gt;
&lt;br /&gt;
* Linux file system links are not portable.  Never use them.&lt;br /&gt;
&lt;br /&gt;
=== Coding in C++ ===&lt;br /&gt;
&lt;br /&gt;
* Use  .cpp  and  .h  suffixes for c++ source file names.  Not:   .C  and  .H&lt;br /&gt;
&lt;br /&gt;
* Avoid conditional compilation (#ifdef).&lt;br /&gt;
&lt;br /&gt;
* Use brackets around code bodies over multiple lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Evil:     if   (condition)&lt;br /&gt;
               action;&lt;br /&gt;
&lt;br /&gt;
Good:     if   (condition)   action;            if  (condition)  { action };&lt;br /&gt;
&lt;br /&gt;
          if   (condition)                      if  (condition)&lt;br /&gt;
          {     action;                         {&lt;br /&gt;
          }                                         action;&lt;br /&gt;
                                                }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Line up brackets so they are easier to match visually.&lt;br /&gt;
&lt;br /&gt;
* Do not #include .cpp files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Coding Tips ===&lt;br /&gt;
&lt;br /&gt;
* Order &amp;lt;code&amp;gt;#include&amp;lt;/code&amp;gt; statements from the most general to the more specific.  The likelyhood of interference between headers is diminish and the code is easier to read.  For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include  &amp;lt;unistd.h&amp;gt;           // Standard C headers.&lt;br /&gt;
#include  &amp;lt;fstream&amp;gt;            // Standard C++ headers&lt;br /&gt;
#include  &amp;lt;sys/types.h&amp;gt;        // Low level system headers.&lt;br /&gt;
&lt;br /&gt;
#include  &amp;lt;mri/image.h&amp;gt;        // Common Brown libraries.&lt;br /&gt;
#include  &amp;lt;utils/Utils_SVD.h&amp;gt;  // Internal project libraries.&lt;br /&gt;
&lt;br /&gt;
#include  &amp;quot;../setup/setup.h&amp;quot;   // Internal project headers.&lt;br /&gt;
#include  &amp;quot;Config.h&amp;quot;           // Headers in the same directory.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:HOWTO]][[Category:$G HOWTO]][[Category:Software Development]]&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Minimal_Coding_Conventions&amp;diff=4792</id>
		<title>Minimal Coding Conventions</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Minimal_Coding_Conventions&amp;diff=4792"/>
		<updated>2011-03-10T20:05:33Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Just about everyone in the [[VRL]] ends up re-using code and programs that someone else wrote previously, and undoubtedly the code that they write will be used by someone else in the future.  Therefore the golden rule applies well to software development in our lab: do unto others as you would have them do unto you.  This page records best practices for getting started developing software in an environment where code lives on through many generations of researchers.&lt;br /&gt;
&lt;br /&gt;
The primary things to keep in mind are that:&lt;br /&gt;
* Future users of your code need read and write permission; and&lt;br /&gt;
* Future users of your code can&#039;t read your mind, so it must be organized and well-documented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Minimal Coding Conventions ===&lt;br /&gt;
&lt;br /&gt;
* Tabs are only meaningful in your edit session.&lt;br /&gt;
Do not use tabs (except in Makefiles as needed).&lt;br /&gt;
Indent 4 spaces, but 3 is okay if you prefer.&lt;br /&gt;
&lt;br /&gt;
* Name script files with suffixes.&lt;br /&gt;
Use Python for scripts (very portable).&lt;br /&gt;
Avoid reliance on Cygwin.&lt;br /&gt;
&lt;br /&gt;
* Commenting code does not slow progress.&lt;br /&gt;
If you make it a habit it speeds things up.&lt;br /&gt;
At a minimum write a method’s purpose and parameter usage.&lt;br /&gt;
&lt;br /&gt;
* Linux file system links are not portable.  Never use them.&lt;br /&gt;
&lt;br /&gt;
=== Coding in C++ ===&lt;br /&gt;
&lt;br /&gt;
* Use  .cpp  and  .h  suffixes for c++ source file names.  Not:   .C  and  .H&lt;br /&gt;
&lt;br /&gt;
* Avoid conditional compilation (#ifdef).&lt;br /&gt;
&lt;br /&gt;
* Use brackets around code bodies over multiple lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Evil:     if   (condition)&lt;br /&gt;
               action;&lt;br /&gt;
&lt;br /&gt;
Good:     if   (condition)   action;            if  (condition)  { action };&lt;br /&gt;
&lt;br /&gt;
          if   (condition)                      if  (condition)&lt;br /&gt;
          {     action;                         {&lt;br /&gt;
          }                                         action;&lt;br /&gt;
                                                }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Line up brackets so they are easier to match visually.&lt;br /&gt;
&lt;br /&gt;
* Do not #include .cpp files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Coding Tips ===&lt;br /&gt;
&lt;br /&gt;
* Order &amp;lt;code&amp;gt;#include&amp;lt;/code&amp;gt; statements from the most general to the more specific.  The likelyhood of interference between headers is diminish and the code is easier to read.  For example:&lt;br /&gt;
&lt;br /&gt;
 #include  &amp;lt;unistd.h&amp;gt;           // Standard C headers.&lt;br /&gt;
 #include  &amp;lt;fstream&amp;gt;            // Standard C++ headers&lt;br /&gt;
 #include  &amp;lt;sys/types.h&amp;gt;        // Low level system headers.&lt;br /&gt;
&lt;br /&gt;
 #include  &amp;lt;mri/image.h&amp;gt;        // Common Brown libraries.&lt;br /&gt;
 #include  &amp;lt;utils/Utils_SVD.h&amp;gt;  // Internal project libraries.&lt;br /&gt;
&lt;br /&gt;
 #include  &amp;quot;../setup/setup.h&amp;quot;   // Internal project headers.&lt;br /&gt;
 #include  &amp;quot;Config.h&amp;quot;           // Headers in the same directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:HOWTO]][[Category:$G HOWTO]][[Category:Software Development]]&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Writing_Make_Files&amp;diff=4788</id>
		<title>Writing Make Files</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Writing_Make_Files&amp;diff=4788"/>
		<updated>2011-03-08T18:11:47Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: /* Make File Contents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Makefile that uses the G Build make system will build a single directory containing one library and/or one or more programs.  Projects can consist of a directory tree with a Make File in each directory.&lt;br /&gt;
&lt;br /&gt;
If you are new to Make you will need to familiarize yourself with it before reading this document.  Make is a fairly user hostile language.  The semantics are difficult to learn and error messages tend to be uninformative.  However, Make is a language that is hard to avoid so most programmers become familiar with it.  The G Build system uses Gnu make as it has consistent behavior over many platforms.&lt;br /&gt;
&lt;br /&gt;
   http://www.gnu.org/software/make/manual/make.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Sample Makefiles for a simple &#039;&#039;&#039;[[program]]&#039;&#039;&#039; and &#039;&#039;&#039;[[library]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Make File Contents&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Make Variable Settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 [[G_COMPILER]]   = &amp;amp;lt;Compiler Version&amp;amp;gt;        Designate a compiler and version.&lt;br /&gt;
 [[PROJECT]]      = &amp;amp;lt;Project Name&amp;amp;gt;            Required project name.&lt;br /&gt;
 [[PROJECT_HOME]] = &amp;amp;lt;Root Directory&amp;amp;gt;          Subdirectories reference the project root.&lt;br /&gt;
&lt;br /&gt;
 [[LIBRARY]]   = &amp;amp;lt;Library Name&amp;amp;gt;               Use when the directory contains a library.&lt;br /&gt;
 [[CXXSRC]]    = &amp;amp;lt;C++ Source&amp;amp;gt;.cpp ...         List C++ source files for a library.&lt;br /&gt;
 [[CSRC]]      = &amp;amp;lt;C Source&amp;amp;gt;.c     ...         List C source files for a library.&lt;br /&gt;
 [[INCLUDE_H]] = &amp;amp;lt;C/C++ Header&amp;amp;gt;   ...         List public library headers to install.&lt;br /&gt;
&lt;br /&gt;
 [[PROGRAM]]      = &amp;amp;lt;Program Name&amp;amp;gt;   ...      List each program in the directory.&lt;br /&gt;
 [[CXX]]&amp;amp;lt;Program&amp;amp;gt; = &amp;amp;lt;C++ Source&amp;amp;gt;.cpp ...      List C++ source files for a program.&lt;br /&gt;
 [[C]]&amp;amp;lt;Program&amp;amp;gt;   = &amp;amp;lt;C Source&amp;amp;gt;.c     ...      List C source files for a program.&lt;br /&gt;
&lt;br /&gt;
 [[G_USE]]         = &amp;amp;lt;Package Name&amp;amp;gt;  ...      Predefined settings for packages.&lt;br /&gt;
 [[LDLIB_VER]]     = &amp;amp;lt;Library Name&amp;amp;gt;  ...      Link a program with a library.&lt;br /&gt;
 [[LDLIB_PROJECT]] = &amp;amp;lt;Project Name&amp;amp;gt;  ...      Add a project library to the search path.      &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Variable Settings For Experts&#039;&#039;&#039;&lt;br /&gt;
 [[BIN_SCRIPT]]      += &amp;amp;lt;Script Files&amp;amp;gt;       ...   Install files in the bin directory.&lt;br /&gt;
 [[SHARE_FILE]]      += &amp;amp;lt;Shared Files&amp;amp;gt;       ...   Install files in the share directory.&lt;br /&gt;
&amp;lt;!-- [[SHARE_DIRECTORY]] += &amp;amp;lt;Shared Directories&amp;amp;gt; ...   Install directories in the share directory. --&amp;gt;&lt;br /&gt;
 [[LDLIB]]           += &amp;amp;lt;Linker Setting&amp;amp;gt;     ...   Pass libraries directly to the linker.&lt;br /&gt;
 [[CXXFLAGS]]        += &amp;amp;lt;C++ Compiler Flag&amp;amp;gt;  ...   Pass flags directly to the C++ compiler.&lt;br /&gt;
 [[CFLAGS]]          += &amp;amp;lt;C Compiler Flag&amp;amp;gt;    ...   Pass flags directly to the C compiler.&lt;br /&gt;
 [[CXXINC]]          += &amp;amp;lt;Include Directory&amp;amp;gt;  ...   Pass includes directly to the C++ compiler. &lt;br /&gt;
 [[CINC]]            += &amp;amp;lt;Include Directory&amp;amp;gt;  ...   Pass includes directly to the C compiler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Always add this include statement to bring in the G Build make files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 include  $(G)/common/build/make/directory.make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Optionally add this include statement to build using all available compilers.  Note that when including this make file additional targets are declared for:&amp;lt;br&amp;gt;&lt;br /&gt;
:::install  all   allclean&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 include  $(G)/common/build/make/build.multiple.make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Directory Access variables&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These variables can be used to access directories to avoid using hard coded paths.  Do not set these variables.&lt;br /&gt;
&lt;br /&gt;
 [[G_IMPORT]]        Location where third party software is installed.&lt;br /&gt;
 [[G_INSTALL]]       Location where files are installed with &amp;quot;make install&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Projects With Multiple Directories&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Projects can contain a directory tree that can be organized any way the developers chooses.  Make files using the Build system each build a single directory in the tree. By convention the default Make target (&amp;quot;make&amp;quot; with no operand) will build the current directory for a single compiler.  By convention an &amp;quot;all&amp;quot; target will build the current directory and all of it&#039;s subdirectories.&lt;br /&gt;
&lt;br /&gt;
Usually Makefiles in a directory above several subdirectories will use Gnu Make commands to build the subdirectories.  In this case you won&#039;t need to include the &#039;&#039;&#039;directory.make&#039;&#039;&#039; file.  Here are some typical Gnu Make commands you might want to use:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Require that the all targets always be used.&lt;br /&gt;
#&lt;br /&gt;
default:&lt;br /&gt;
    @echo  &amp;quot;Use:  make all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
clean:&lt;br /&gt;
    @echo  &amp;quot;Use:  make allclean&amp;quot;&lt;br /&gt;
&lt;br /&gt;
test:&lt;br /&gt;
    @echo  &amp;quot;Use:  make alltest&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#  Create a target to clean all the subdirectories.&lt;br /&gt;
#&lt;br /&gt;
allclean:&lt;br /&gt;
    $(MAKE)  -C  utility       allclean&lt;br /&gt;
    $(MAKE)  -C  library       allclean&lt;br /&gt;
    $(MAKE)  -C  program       allclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create a target to build one subdirectory.&lt;br /&gt;
#&lt;br /&gt;
.PHONY:  utility&lt;br /&gt;
utility:&lt;br /&gt;
    $(MAKE)  -C  utility    all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only a small subset of Unix Utilities is included in the G Build system.  Limiting the use of Unix commands in rules makes it easier to get a project developed on Unix to work on native Windows.  Complex commands can invoke scripts.  Python is recommended as you can use it to easily write platform independent scripts with good error reporting.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Writing_Make_Files&amp;diff=4786</id>
		<title>Writing Make Files</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Writing_Make_Files&amp;diff=4786"/>
		<updated>2011-03-07T14:46:26Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Makefile that uses the G Build make system will build a single directory containing one library and/or one or more programs.  Projects can consist of a directory tree with a Make File in each directory.&lt;br /&gt;
&lt;br /&gt;
If you are new to Make you will need to familiarize yourself with it before reading this document.  Make is a fairly user hostile language.  The semantics are difficult to learn and error messages tend to be uninformative.  However, Make is a language that is hard to avoid so most programmers become familiar with it.  The G Build system uses Gnu make as it has consistent behavior over many platforms.&lt;br /&gt;
&lt;br /&gt;
   http://www.gnu.org/software/make/manual/make.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Sample Makefiles for a simple &#039;&#039;&#039;[[program]]&#039;&#039;&#039; and &#039;&#039;&#039;[[library]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Make File Contents&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Make Variable Settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 [[G_COMPILER]]   = &amp;amp;lt;Compiler Version&amp;amp;gt;        Designate a compiler and version.&lt;br /&gt;
 [[PROJECT]]      = &amp;amp;lt;Project Name&amp;amp;gt;            Required project name.&lt;br /&gt;
 [[PROJECT_HOME]] = &amp;amp;lt;Root Directory&amp;amp;gt;          Subdirectories reference the project root.&lt;br /&gt;
&lt;br /&gt;
 [[LIBRARY]]   = &amp;amp;lt;Library Name&amp;amp;gt;               Use when the directory contains a library.&lt;br /&gt;
 [[CXXSRC]]    = &amp;amp;lt;C++ Source&amp;amp;gt;.cpp ...         List C++ source files for a library.&lt;br /&gt;
 [[CSRC]]      = &amp;amp;lt;C Source&amp;amp;gt;.c     ...         List C source files for a library.&lt;br /&gt;
 [[INCLUDE_H]] = &amp;amp;lt;C/C++ Header&amp;amp;gt;   ...         List public library headers to install.&lt;br /&gt;
&lt;br /&gt;
 [[PROGRAM]]      = &amp;amp;lt;Program Name&amp;amp;gt;   ...      List each program in the directory.&lt;br /&gt;
 [[CXX]]&amp;amp;lt;Program&amp;amp;gt; = &amp;amp;lt;C++ Source&amp;amp;gt;.cpp ...      List C++ source files for a program.&lt;br /&gt;
 [[C]]&amp;amp;lt;Program&amp;amp;gt;   = &amp;amp;lt;C Source&amp;amp;gt;.c     ...      List C source files for a program.&lt;br /&gt;
&lt;br /&gt;
 [[G_USE]]         = &amp;amp;lt;Package Name&amp;amp;gt;  ...      Predefined settings for packages.&lt;br /&gt;
 [[LDLIB_VER]]     = &amp;amp;lt;Library Name&amp;amp;gt;  ...      Link a program with a library.&lt;br /&gt;
 [[LDLIB_PROJECT]] = &amp;amp;lt;Project Name&amp;amp;gt;  ...      Add a project library to the search path.      &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Variable Settings For Experts&#039;&#039;&#039;&lt;br /&gt;
 [[BIN_SCRIPT]]      += &amp;amp;lt;Script Files&amp;amp;gt;       ...   Install files in the bin directory.&lt;br /&gt;
 [[SHARE_FILE]]      += &amp;amp;lt;Shared Files&amp;amp;gt;       ...   Install files in the share directory.&lt;br /&gt;
 [[SHARE_DIRECTORY]] += &amp;amp;lt;Shared Directories&amp;amp;gt; ...   Install directories in the share directory.&lt;br /&gt;
 [[LDLIB]]           += &amp;amp;lt;Linker Setting&amp;amp;gt;     ...   Pass libraries directly to the linker.&lt;br /&gt;
 [[CXXFLAGS]]        += &amp;amp;lt;C++ Compiler Flag&amp;amp;gt;  ...   Pass flags directly to the C++ compiler.&lt;br /&gt;
 [[CFLAGS]]          += &amp;amp;lt;C Compiler Flag&amp;amp;gt;    ...   Pass flags directly to the C compiler.&lt;br /&gt;
 [[CXXINC]]          += &amp;amp;lt;Include Directory&amp;amp;gt;  ...   Pass includes directly to the C++ compiler. &lt;br /&gt;
 [[CINC]]            += &amp;amp;lt;Include Directory&amp;amp;gt;  ...   Pass includes directly to the C compiler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Always add this include statement to bring in the G Build make files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 include  $(G)/common/build/make/directory.make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Optionally add this include statement to build using all available compilers.  Note that when including this make file additional targets are declared for:&amp;lt;br&amp;gt;&lt;br /&gt;
:::install  all   allclean&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 include  $(G)/common/build/make/build.multiple.make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Directory Access variables&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These variables can be used to access directories to avoid using hard coded paths.  Do not set these variables.&lt;br /&gt;
&lt;br /&gt;
 [[G_IMPORT]]        Location where third party software is installed.&lt;br /&gt;
 [[G_INSTALL]]       Location where files are installed with &amp;quot;make install&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Projects With Multiple Directories&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Projects can contain a directory tree that can be organized any way the developers chooses.  Make files using the Build system each build a single directory in the tree. By convention the default Make target (&amp;quot;make&amp;quot; with no operand) will build the current directory for a single compiler.  By convention an &amp;quot;all&amp;quot; target will build the current directory and all of it&#039;s subdirectories.&lt;br /&gt;
&lt;br /&gt;
Usually Makefiles in a directory above several subdirectories will use Gnu Make commands to build the subdirectories.  In this case you won&#039;t need to include the &#039;&#039;&#039;directory.make&#039;&#039;&#039; file.  Here are some typical Gnu Make commands you might want to use:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Require that the all targets always be used.&lt;br /&gt;
#&lt;br /&gt;
default:&lt;br /&gt;
    @echo  &amp;quot;Use:  make all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
clean:&lt;br /&gt;
    @echo  &amp;quot;Use:  make allclean&amp;quot;&lt;br /&gt;
&lt;br /&gt;
test:&lt;br /&gt;
    @echo  &amp;quot;Use:  make alltest&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#  Create a target to clean all the subdirectories.&lt;br /&gt;
#&lt;br /&gt;
allclean:&lt;br /&gt;
    $(MAKE)  -C  utility       allclean&lt;br /&gt;
    $(MAKE)  -C  library       allclean&lt;br /&gt;
    $(MAKE)  -C  program       allclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create a target to build one subdirectory.&lt;br /&gt;
#&lt;br /&gt;
.PHONY:  utility&lt;br /&gt;
utility:&lt;br /&gt;
    $(MAKE)  -C  utility    all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only a small subset of Unix Utilities is included in the G Build system.  Limiting the use of Unix commands in rules makes it easier to get a project developed on Unix to work on native Windows.  Complex commands can invoke scripts.  Python is recommended as you can use it to easily write platform independent scripts with good error reporting.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Software_Development&amp;diff=4785</id>
		<title>Software Development</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Software_Development&amp;diff=4785"/>
		<updated>2011-03-07T14:44:03Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* &#039;&#039;&#039;Essential Background Reading&#039;&#039;&#039;&lt;br /&gt;
** [[Shared Public Directory Structure]]&lt;br /&gt;
** [[Understanding File Permissions]]&lt;br /&gt;
** [[Setting Environment Variables]]&lt;br /&gt;
** [[Introduction to CVS]]&lt;br /&gt;
** [[Minimal Coding Conventions]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Create a Linux Sandbox&#039;&#039;&#039;&lt;br /&gt;
** [[Get a Linux Account]]&lt;br /&gt;
** Set up Your Sandbox&lt;br /&gt;
*** [[Automated Quick Start|Automated Quick Start - Linux only]]&lt;br /&gt;
*** [[Quick Start for CIT Users|Manual Quick Start - Windows and Linux]]&lt;br /&gt;
** [[Merge Installed Programs Into One Directory]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Software Development Tasks&#039;&#039;&#039;&lt;br /&gt;
** Before you start, [[Building and Installing Common Components]]&lt;br /&gt;
** Work on Existing Projects&lt;br /&gt;
*** [[Check out projects|Check out and build existing projects]]&lt;br /&gt;
*** [[Contribute to projects|Contribute to existing projects]]&lt;br /&gt;
** Add a project&lt;br /&gt;
*** [[Add a new project]]&lt;br /&gt;
**** [[Build a Trivial Program]]&lt;br /&gt;
**** [[Build a Trivial Library]]&lt;br /&gt;
*** [[Port existing project|Port existing project to the new $G]]&lt;br /&gt;
**[[Writing Make Files]]&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Advanced Topics&#039;&#039;&#039;&lt;br /&gt;
** [[Create a Windows Sandbox|Create a Windows Sandbox (In or out of CIT)]]&lt;br /&gt;
** [[Software tests|Create and automate software tests]]&lt;br /&gt;
** [[Install 3rd party code|Install 3rd-party programs or libraries]]&lt;br /&gt;
** [[Using Public or Private Programs and Libraries]]&lt;br /&gt;
** [[Multiple Directories|Set up a project with multiple directories]]&lt;br /&gt;
** [[Working With Multiple Sandboxes]]&lt;br /&gt;
** [[Working With Legacy Software]]&lt;br /&gt;
** [[Software demos|Create and install software demos]]&lt;br /&gt;
** [[Distribute software|Distribute software and data]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software Development]]&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=SHARE_DIRECTORY&amp;diff=4784</id>
		<title>SHARE DIRECTORY</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=SHARE_DIRECTORY&amp;diff=4784"/>
		<updated>2011-03-07T14:42:31Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; SHARE_DIRECTORY = &amp;amp;lt;Shared Directories&amp;amp;gt;  ... &lt;br /&gt;
&lt;br /&gt;
Designate directories to be installed in the &#039;&#039;&#039;share/&#039;&#039;&#039; directory.  The directories typically contain data files, but they can have any type of file.  The directories will be installed in:&lt;br /&gt;
&lt;br /&gt;
 $GTO/install_$GARCH/share/$PROJECT/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that the directories are installed at the top level of the target directory.  In order to set up multiple levels of directories you will need to stage them within your project with the desired layout.  For example if you wanted to set up a directory &#039;&#039;&#039;data/&#039;&#039;&#039; with a subdirectory &#039;&#039;&#039;data/result/&#039;&#039;&#039; you might write this as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SHARE_DIRECTORY = data&lt;br /&gt;
&lt;br /&gt;
install:&lt;br /&gt;
    rm  -r  -f  data/result&lt;br /&gt;
    cp  -r  $(GROOT)/data/$PROJECT/result  data&lt;br /&gt;
    $(MAKE)  installshare&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also avoid staging by directly installing the &#039;&#039;&#039;data/result/&#039;&#039;&#039; directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SHARE_DIRECTORY = data&lt;br /&gt;
&lt;br /&gt;
install:  installshare&lt;br /&gt;
    rm  -r -f  $(G_INSTALL)/share/$(PROJECT)/data/result&lt;br /&gt;
    cp  -r -f  $(GROOT)/data/$PROJECT/result  $(G_INSTALL)/share/$(PROJECT)/data/result&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=SHARE_DIRECTORY&amp;diff=4783</id>
		<title>SHARE DIRECTORY</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=SHARE_DIRECTORY&amp;diff=4783"/>
		<updated>2011-03-07T14:42:20Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; SHARE_DIRECTORY = &amp;amp;lt;Shared Directories&amp;amp;gt;  ... &lt;br /&gt;
&lt;br /&gt;
Designate directories to be installed in the &#039;&#039;&#039;share/&#039;&#039;&#039; directory.  The directories typically contain data files, but they can have any type of file.  The directories will be installed in:&lt;br /&gt;
&lt;br /&gt;
 $GTO/install_$GARCH/share/$PROJECT/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that the directories are installed at the top level of the target directory.  In order to set up multiple levels of directories you will need to stage them within your project with the desired layout.  For example if you wanted to set up a directory &#039;&#039;&#039;data/&#039;&#039;&#039; with a subdirectory &#039;&#039;&#039;data/result/&#039;&#039;&#039; you might write this as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SHARE_DIRECTORY = data&lt;br /&gt;
&lt;br /&gt;
install:&lt;br /&gt;
    rm  -r  -f  data/result&lt;br /&gt;
    cp  -r $(GROOT)/data/$PROJECT/result  data&lt;br /&gt;
    $(MAKE)  installshare&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also avoid staging by directly installing the &#039;&#039;&#039;data/result/&#039;&#039;&#039; directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SHARE_DIRECTORY = data&lt;br /&gt;
&lt;br /&gt;
install:  installshare&lt;br /&gt;
    rm  -r -f  $(G_INSTALL)/share/$(PROJECT)/data/result&lt;br /&gt;
    cp  -r -f  $(GROOT)/data/$PROJECT/result  $(G_INSTALL)/share/$(PROJECT)/data/result&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=SHARE_DIRECTORY&amp;diff=4782</id>
		<title>SHARE DIRECTORY</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=SHARE_DIRECTORY&amp;diff=4782"/>
		<updated>2011-03-07T14:41:58Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; SHARE_DIRECTORY = &amp;amp;lt;Shared Directories&amp;amp;gt;  ... &lt;br /&gt;
&lt;br /&gt;
Designate directories to be installed in the &#039;&#039;&#039;share/&#039;&#039;&#039; directory.  The directories typically contain data files, but they can have any type of file.  The directories will be installed in:&lt;br /&gt;
&lt;br /&gt;
 $GTO/install_$GARCH/share/$PROJECT/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that the directories are installed at the top level of the target directory.  In order to set up multiple levels of directories you will need to stage them within your project with the desired layout.  For example if you wanted to set up a directory &#039;&#039;&#039;data/&#039;&#039;&#039; with a subdirectory &#039;&#039;&#039;data/result/&#039;&#039;&#039; you might write this as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SHARE_DIRECTORY = data&lt;br /&gt;
&lt;br /&gt;
install:&lt;br /&gt;
    rm -r  -f  data/result&lt;br /&gt;
    cp -r $(GROOT)/data/$PROJECT/result  data&lt;br /&gt;
    $(MAKE)  installshare&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also avoid staging by directly installing the &#039;&#039;&#039;data/result/&#039;&#039;&#039; directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SHARE_DIRECTORY = data&lt;br /&gt;
&lt;br /&gt;
install:  installshare&lt;br /&gt;
    rm     -r -f  $(G_INSTALL)/share/$(PROJECT)/data/result&lt;br /&gt;
    cp     -r -f  $(GROOT)/data/$PROJECT/result  $(G_INSTALL)/share/$(PROJECT)/data/result&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=SHARE_DIRECTORY&amp;diff=4781</id>
		<title>SHARE DIRECTORY</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=SHARE_DIRECTORY&amp;diff=4781"/>
		<updated>2011-03-07T14:41:13Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; SHARE_DIRECTORY = &amp;amp;lt;Shared Directories&amp;amp;gt;  ... &lt;br /&gt;
&lt;br /&gt;
Designate directories to be installed in the &#039;&#039;&#039;share/&#039;&#039;&#039; directory.  The directories typically contain data files, but they can have any type of file.  The directories will be installed in:&lt;br /&gt;
&lt;br /&gt;
 $GTO/install_$GARCH/share/$PROJECT/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that the directories are installed at the top level of the target directory.  In order to set up multiple levels of directories you will need to stage them within your project with the desired layout.  For example if you wanted to set up a directory &#039;&#039;&#039;data/&#039;&#039;&#039; with a subdirectory &#039;&#039;&#039;data/result/&#039;&#039;&#039; you might write this as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SHARE_DIRECTORY = data&lt;br /&gt;
&lt;br /&gt;
install:&lt;br /&gt;
    rm -r  -f  data/result&lt;br /&gt;
    cp -r $(GROOT)/data/$PROJECT/result  data&lt;br /&gt;
    $(MAKE)  installshare&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also avoid staging by directly installing the &#039;&#039;&#039;data/result/&#039;&#039;&#039; directory:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SHARE_DIRECTORY = data&lt;br /&gt;
&lt;br /&gt;
install:  installshare&lt;br /&gt;
    rm     -r -f  $(G_INSTALL)/share/$(PROJECT)/data/result&lt;br /&gt;
    cp     -r -f  result  $(G_INSTALL)/share/$(PROJECT)/data/result&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=SHARE_DIRECTORY&amp;diff=4780</id>
		<title>SHARE DIRECTORY</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=SHARE_DIRECTORY&amp;diff=4780"/>
		<updated>2011-03-07T14:40:11Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: New page:  SHARE_DIRECTORY = &amp;amp;lt;Shared Directories&amp;amp;gt;  ...   Designate directories to be installed in the &amp;#039;&amp;#039;&amp;#039;share/&amp;#039;&amp;#039;&amp;#039; directory.  The directories typically contain data files, but they can have a...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; SHARE_DIRECTORY = &amp;amp;lt;Shared Directories&amp;amp;gt;  ... &lt;br /&gt;
&lt;br /&gt;
Designate directories to be installed in the &#039;&#039;&#039;share/&#039;&#039;&#039; directory.  The directories typically contain data files, but they can have any type of file.  The directories will be installed in:&lt;br /&gt;
&lt;br /&gt;
 $GTO/install_$GARCH/share/$PROJECT/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note that the directories are installed at the top level of the target directory.  In order to set up multiple levels of directories you will need to stage them within your project with the desired layout.  For example if you wanted to set up a directory &#039;&#039;&#039;data/&#039;&#039;&#039; with a subdirectory &#039;&#039;&#039;data/result/&#039;&#039;&#039; you might write this as:&lt;br /&gt;
&lt;br /&gt;
  SHARE_DIRECTORY = data&lt;br /&gt;
&lt;br /&gt;
  install:&lt;br /&gt;
      rm -r  -f  data/result&lt;br /&gt;
      cp -r $(GROOT)/data/$PROJECT/result  data&lt;br /&gt;
      $(MAKE)  installshare&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also avoid staging by directly installing the &#039;&#039;&#039;data/result/&#039;&#039;&#039; directory:&lt;br /&gt;
&lt;br /&gt;
  SHARE_DIRECTORY = data&lt;br /&gt;
&lt;br /&gt;
  install:  installshare&lt;br /&gt;
      rm     -r -f  $(G_INSTALL)/share/$(PROJECT)/data/result&lt;br /&gt;
      cp     -r -f  result  $(G_INSTALL)/share/$(PROJECT)/data/result&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
	<entry>
		<id>http://vrl.cs.brown.edu/wiki/index.php?title=Writing_Make_Files&amp;diff=4779</id>
		<title>Writing Make Files</title>
		<link rel="alternate" type="text/html" href="http://vrl.cs.brown.edu/wiki/index.php?title=Writing_Make_Files&amp;diff=4779"/>
		<updated>2011-03-07T14:21:18Z</updated>

		<summary type="html">&lt;p&gt;Brad Berg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Makefile that uses the G Build make system will build a single directory containing one library and/or one or more programs.  Projects can consist of a directory tree with a Make File in each directory.&lt;br /&gt;
&lt;br /&gt;
If you are new to Make you will need to familiarize yourself with it before reading this document.  Make is a fairly user hostile language.  The error messages tend to be uninformative.  However, Make is a language that is hard to avoid so most programmers are familiar with it.  The G Build system uses Gnu make as it has consistent behavior over many platforms.&lt;br /&gt;
&lt;br /&gt;
   http://www.gnu.org/software/make/manual/make.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Sample Makefiles for a simple &#039;&#039;&#039;[[program]]&#039;&#039;&#039; and &#039;&#039;&#039;[[library]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Make File Contents&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Make Variable Settings&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 [[G_COMPILER]]   = &amp;amp;lt;Compiler Version&amp;amp;gt;        Designate a compiler and version.&lt;br /&gt;
 [[PROJECT]]      = &amp;amp;lt;Project Name&amp;amp;gt;            Required project name.&lt;br /&gt;
 [[PROJECT_HOME]] = &amp;amp;lt;Root Directory&amp;amp;gt;          Subdirectories reference the project root.&lt;br /&gt;
&lt;br /&gt;
 [[LIBRARY]]   = &amp;amp;lt;Library Name&amp;amp;gt;               Use when the directory contains a library.&lt;br /&gt;
 [[CXXSRC]]    = &amp;amp;lt;C++ Source&amp;amp;gt;.cpp ...         List C++ source files for a library.&lt;br /&gt;
 [[CSRC]]      = &amp;amp;lt;C Source&amp;amp;gt;.c     ...         List C source files for a library.&lt;br /&gt;
 [[INCLUDE_H]] = &amp;amp;lt;C/C++ Header&amp;amp;gt;   ...         List public library headers to install.&lt;br /&gt;
&lt;br /&gt;
 [[PROGRAM]]      = &amp;amp;lt;Program Name&amp;amp;gt;   ...      List each program in the directory.&lt;br /&gt;
 [[CXX]]&amp;amp;lt;Program&amp;amp;gt; = &amp;amp;lt;C++ Source&amp;amp;gt;.cpp ...      List C++ source files for a program.&lt;br /&gt;
 [[C]]&amp;amp;lt;Program&amp;amp;gt;   = &amp;amp;lt;C Source&amp;amp;gt;.c     ...      List C source files for a program.&lt;br /&gt;
&lt;br /&gt;
 [[G_USE]]         = &amp;amp;lt;Package Name&amp;amp;gt;  ...      Predefined settings for packages.&lt;br /&gt;
 [[LDLIB_VER]]     = &amp;amp;lt;Library Name&amp;amp;gt;  ...      Link a program with a library.&lt;br /&gt;
 [[LDLIB_PROJECT]] = &amp;amp;lt;Project Name&amp;amp;gt;  ...      Add a project library to the search path.      &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Variable Settings For Experts&#039;&#039;&#039;&lt;br /&gt;
 [[BIN_SCRIPT]]      += &amp;amp;lt;Script Files&amp;amp;gt;       ...   Install files in the bin directory.&lt;br /&gt;
 [[SHARE_FILE]]      += &amp;amp;lt;Shared Files&amp;amp;gt;       ...   Install files in the share directory.&lt;br /&gt;
 [[SHARE_DIRECTORY]] += &amp;amp;lt;Shared Directories&amp;amp;gt; ...   Install directories in the share directory.&lt;br /&gt;
 [[LDLIB]]           += &amp;amp;lt;Linker Setting&amp;amp;gt;     ...   Pass libraries directly to the linker.&lt;br /&gt;
 [[CXXFLAGS]]        += &amp;amp;lt;C++ Compiler Flag&amp;amp;gt;  ...   Pass flags directly to the C++ compiler.&lt;br /&gt;
 [[CFLAGS]]          += &amp;amp;lt;C Compiler Flag&amp;amp;gt;    ...   Pass flags directly to the C compiler.&lt;br /&gt;
 [[CXXINC]]          += &amp;amp;lt;Include Directory&amp;amp;gt;  ...   Pass includes directly to the C++ compiler. &lt;br /&gt;
 [[CINC]]            += &amp;amp;lt;Include Directory&amp;amp;gt;  ...   Pass includes directly to the C compiler.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Always add this include statement to bring in the G Build make files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 include  $(G)/common/build/make/directory.make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Optionally add this include statement to build using all available compilers.  Note that when including this make file additional targets are declared for:&amp;lt;br&amp;gt;&lt;br /&gt;
:::install  all   allclean&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 include  $(G)/common/build/make/build.multiple.make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Directory Access variables&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
These variables can be used to access directories to avoid using hard coded paths.  Do not set these variables.&lt;br /&gt;
&lt;br /&gt;
 [[G_IMPORT]]        Location where third party software is installed.&lt;br /&gt;
 [[G_INSTALL]]       Location where files are installed with &amp;quot;make install&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;Projects With Multiple Directories&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
Projects can contain a directory tree that can be organized any way the developers chooses.  Make files using the Build system each build a single directory in the tree. By convention the default Make target (&amp;quot;make&amp;quot; with no operand) will build the current directory for a single compiler.  By convention an &amp;quot;all&amp;quot; target will build the current directory and all of it&#039;s subdirectories.&lt;br /&gt;
&lt;br /&gt;
Usually Makefiles in a directory above several subdirectories will use Gnu Make commands to build the subdirectories.  In this case you won&#039;t need to include the &#039;&#039;&#039;directory.make&#039;&#039;&#039; file.  Here are some typical Gnu Make commands you might want to use:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Require that the all targets always be used.&lt;br /&gt;
#&lt;br /&gt;
default:&lt;br /&gt;
    @echo  &amp;quot;Use:  make all&amp;quot;&lt;br /&gt;
&lt;br /&gt;
clean:&lt;br /&gt;
    @echo  &amp;quot;Use:  make allclean&amp;quot;&lt;br /&gt;
&lt;br /&gt;
test:&lt;br /&gt;
    @echo  &amp;quot;Use:  make alltest&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#  Create a target to clean all the subdirectories.&lt;br /&gt;
#&lt;br /&gt;
allclean:&lt;br /&gt;
    $(MAKE)  -C  utility       allclean&lt;br /&gt;
    $(MAKE)  -C  library       allclean&lt;br /&gt;
    $(MAKE)  -C  program       allclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Create a target to build one subdirectory.&lt;br /&gt;
#&lt;br /&gt;
.PHONY:  utility&lt;br /&gt;
utility:&lt;br /&gt;
    $(MAKE)  -C  utility    all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only a small subset of Unix Utilities is included in the G Build system.  Limiting the use of Unix commands in rules makes it easier to get a project developed on Unix to work on native Windows.  Complex commands can invoke scripts.  Python is recommended as you can use it to easily write platform independent scripts with good error reporting.&lt;/div&gt;</summary>
		<author><name>Brad Berg</name></author>
	</entry>
</feed>