2/11/2007 NSL/SCS Development Jimmy Bonaiuto 2/26/2007
2/11/2007 Outline Working environment NSL Issues –Matlab integration SCS –Options Tasks and timeline
2/11/2007 Working Environment IDE SVN Bugzilla Developer mailing lists Wiki
2/11/2007 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
2/11/2007 Subversion (SVN) Repository svn://neuroinformatics.usc.edu See me to setup an account Access through the wiki TortoiseSVN – 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”
2/11/2007 Bugzilla Bug-tracking software CS564 students should be familiar with it Accessible through the wiki See ndex.php/Bug_Writing_Guidelines ndex.php/Bug_Writing_Guidelines for bug writing guidelines
2/11/2007 Developer Mailing Lists –Bug reports –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
2/11/2007 Wiki 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!
2/11/2007 SVN / Bugzilla / Wiki Integration Inside SVN commit messages, Bugzilla comments, or Wiki text, you can use the magic identifiers, BugId:, VCS:,and Wiki: A link to svn://neuroinformatics.usc.edu, or will automatically be createdhttp://neuroinformatics/Bugzilla/
2/11/2007 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
2/11/2007 Matlab from Java JMatlink - 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();
2/11/2007 Java from Matlab This is easy – Matlab runs in a JVM Tutorial: MathWorks_R13Doc/techdoc/matlab_exte rnal/ch_java.html MathWorks_R13Doc/techdoc/matlab_exte rnal/ch_java.html Matlab does have classes – maybe we should have a NslModule class in Matlab. Cheol?
2/11/2007 SCS Options –Total redevelopment –Eclipse plugin –Extend simulink to handle Java NslModule objects Is this possible?
2/11/2007 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
2/11/2007 SCS: Eclipse Plugin Might be the best bet We can utilize the Eclipse core for code completion, debugging, and syntax highlighting Tutorials – ecplug/?Open&ca=daw-ec-drhttp://www-128.ibm.com/developerworks/opensource/library/os- ecplug/?Open&ca=daw-ec-dr – – Plugin Development Environment (PDE) available Issue: What happens when Eclipse is no longer supported? –Not likely any time soon, but still?
2/11/2007 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
2/11/2007 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
2/11/2007 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
2/11/2007 Milestones/Timeline