NSL

advertisement
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
Download