Upload
anne-levine
View
25
Download
2
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
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
• [email protected]– Bug reports
• [email protected]– 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>