19
NSL/SCS Development Jimmy Bonaiuto 2/26/2007

NSL/SCS Development

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

Page 1: NSL/SCS Development

NSL/SCS Development

Jimmy Bonaiuto

2/26/2007

Page 2: NSL/SCS Development

Outline

• Working environment

• NSL Issues– Matlab integration

• SCS– Options

• Tasks and timeline

Page 3: NSL/SCS Development

Working Environment

• IDE

• SVN

• Bugzilla

• Developer mailing lists

• Wiki

Page 4: NSL/SCS Development

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

Page 5: NSL/SCS Development

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”

Page 6: NSL/SCS Development

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

Page 7: NSL/SCS Development

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

Page 8: NSL/SCS Development

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!

Page 9: NSL/SCS Development

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

Page 10: NSL/SCS Development

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

Page 11: NSL/SCS Development

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();

Page 12: NSL/SCS Development

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?

Page 13: NSL/SCS Development

SCS

• Options– Total redevelopment– Eclipse plugin– Extend simulink to handle Java NslModule

objects• Is this possible?

Page 14: NSL/SCS Development

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

Page 15: NSL/SCS Development

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?

Page 16: NSL/SCS Development

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

Page 17: NSL/SCS Development

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

Page 18: NSL/SCS Development

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

Page 19: NSL/SCS Development

Milestones/Timeline

• <Discussion>