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 – 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” 2/11/2007 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/i ndex.php/Bug_Writing_Guidelines for bug writing guidelines 2/11/2007 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 2/11/2007 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! 2/11/2007 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 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 - 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(); 2/11/2007 Java from Matlab • This is easy – Matlab runs in a JVM • Tutorial: http://www.math.carleton.ca/~help/matlab/ 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 – http://www-128.ibm.com/developerworks/opensource/library/osecplug/?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? 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 • <Discussion> 2/11/2007