200 likes | 390 Views
NSL/SCS Development. Jimmy Bonaiuto 2/26/2007. Outline. Working environment NSL Issues Matlab integration SCS Options Tasks and timeline. Working Environment. IDE SVN Bugzilla Developer mailing lists Wiki. Java Development - IDE. Eclipse Free, extensible IntelliJ
E N D
NSL/SCS Development Jimmy Bonaiuto 2/26/2007
Outline • Working environment • NSL Issues • Matlab integration • SCS • Options • Tasks and timeline
Working Environment • IDE • SVN • Bugzilla • Developer mailing lists • Wiki
Java Development - IDE • Eclipse • Free, extensible • IntelliJ • Fully featured, extensible (maybe not as much as Eclipse), refactoring • Latest version can import/export Eclipse projects • Both integrate with the repository, SVN • Eclipse can integrate with Bugzilla too • IntelliJ appears to have more features and less bugs
Subversion (SVN) Repository • svn://neuroinformatics.usc.edu • See me to setup an account • Access through the wiki • TortoiseSVN – http://tortoisesvn.tigris.org • Command-line Access • svn list svn://neuroinformatics.usc.edu • svn checkout svn://neuroinformatics.usc.edu/mns • svn update • svn commit Hello.java –m “Adding file”
Bugzilla • Bug-tracking software • CS564 students should be familiar with it • http://neuroinformatics.usc.edu/Bugzilla • Accessible through the wiki • See http://neuroinformatics.usc.edu/mediawiki/index.php/Bug_Writing_Guidelines for bug writing guidelines
Developer Mailing Lists • USCBP-BUGS-L@usc.edu • Bug reports • USCBP-VCS-L@usc.edu • SVN commits (NOT CONFIGURED YET!) • Messages are sent to these lists automatically by Bugzilla and SVN • I will add all of you to these lists unless you request otherwise
Wiki • http://neuroinformatics.usc.edu • Resources->Internal Resources for lab member-only resources • Google Calendar • Available as a shared calendar if you use Gmail • Access to user pages, Calendar, SVN, Bugzilla, EndNote, Collaboration Pages • Please add to the wiki! Don’t be shy!
SVN / Bugzilla / Wiki Integration • Inside SVN commit messages, Bugzilla comments, or Wiki text, you can use the magic identifiers, BugId:<Bug ID #>, VCS:<filename>,and Wiki:<page name> • A link to http://neuroinformatics/Bugzilla/, svn://neuroinformatics.usc.edu, or http://neuroinformatics.usc.edu/mediawiki will automatically be created
NSL Issues • Matlab Integration • We have NSL-Java and NSL-Matlab • We need to allow NSL-Matlab projects to access NSL-Java modules and vice-versa • Issues: • Accessing Matlab from Java • Accessing Java from Matlab
Matlab from Java • JMatlink - http://jmatlink.sourceforge.net/ • Connects Java to Matlab using native metods • Makefile available to build on Linux • Example: JMatLink engine=new JMatLink(); engine.engOpen(); engine.engEvalString(“a=111”); double answer = engine.engGetScalar(“a”); engine.engClose();
Java from Matlab • This is easy – Matlab runs in a JVM • Tutorial: http://www.math.carleton.ca/~help/matlab/MathWorks_R13Doc/techdoc/matlab_external/ch_java.html • Matlab does have classes – maybe we should have a NslModule class in Matlab. Cheol?
SCS • Options • Total redevelopment • Eclipse plugin • Extend simulink to handle Java NslModule objects • Is this possible?
SCS: Total Redevelopment • Probably not as hard as it seems • Possibly can use tools for hierarchical schematic editing of VSLI and adapt them to operate on NSL .mod files
SCS: Eclipse Plugin • Might be the best bet • We can utilize the Eclipse core for code completion, debugging, and syntax highlighting • Tutorials • http://www-128.ibm.com/developerworks/opensource/library/os-ecplug/?Open&ca=daw-ec-dr • http://www.linuxjournal.com/article/8255 • http://www.developer.com/java/ent/article.php/3552481 • Plugin Development Environment (PDE) available • Issue: What happens when Eclipse is no longer supported? • Not likely any time soon, but still?
SCS: Simulink Extension • Basically create a NslModule class in Matlab and a NslModuleJava wrapper class for Nsl-Java modules • Require Nsl-Matlab modules to extend NslModule • Then simply use Simulink with NslModule and NslModuleJava objects
SCS: Options • I think it comes down to leveraging Simulink to be able to use Nsl-Java modules or developing an Eclipse plugin • I lean towards the Eclipse plugin • Doesn’t require the user to own Matlab • Can still support Matlab modules via JMatlink • Can leverage much of the existing Eclipse functionality • Well-documented plugin development process
Future NSL/SCS Development: Fun Stuff • Integrating Synthetic PET/fMRI functionality into NSL • Can we do synthetic EEG or MEG? • Automatic comparison with spike train data • Interface with BODB database
Milestones/Timeline • <Discussion>