ImageJ2. Who Develops ImageJ2? And anyone who wants to contribute!

Slides:



Advertisements
Similar presentations
Developing an Eclipse Plug-in David Gallardo. Platform Runtime Workspace Help Team Workbench JFace SWT Eclipse Project Java Development Tools (JDT) Their.
Advertisements

Goals Give you a feeling of what Eclipse is.
An Automata-based Approach to Testing Properties in Event Traces H. Hallal, S. Boroday, A. Ulrich, A. Petrenko Sophia Antipolis, France, May 2003.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
1 Standard Widget Toolkit. 2 SWT l a widget toolkit for Java developers l provides a portable API and tight integration with the underlying native OS.
ImageJ Tutorial.
1 1 Profiling & Optimization David Geldreich (DREAM)
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering End-user Platform Steve Pieper Isomics, Inc.
©2012 Microsoft Corporation. All rights reserved. Content based on SharePoint 15 Technical Preview and published July 2012.
January, 23, 2006 Ilkay Altintas
Slide 1 Copyright © 2003 Encapsule Systems, Inc. Hyperworx Platform Brief Modeling and deploying component software services with the Hyperworx™ platform.
OpenAlea An OpenSource platform for plant modeling C. Pradal, S. Dufour-Kowalski, F. Boudon, C. Fournier, C. Godin.
Microsoft Confidential Office as a Development Platform Tim Heuer
The CodeBeamer Project - Experiences with integrating a Collaborative Development Platform into Eclipse Zsolt Koppany Horst Spatzenegger.
Todd Kitta  Covenant Technology Partners  Professional Windows Workflow Foundation.
OME-TIFF and Bio-Formats K. Eliceiri, E. Hathaway, M. Linkert, and C. Rueden
Update on the new reconstruction software F. Noferini E. Fermi center INFN CNAF EEE Analysis Meeting - 14/09/20151.
Jan Hatje, DESY CSS ITER March 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
FLUKA GUI Status FLUKA Meeting CERN, 10/7/2006.
© 2009 IBM Corporation PHP na Systemu i - přehled Václav Matoušek IBM SSIS Czech Republic.
@ For more details visit : Opportunities for participation Modular Architecture Trace JIT compiler Interpreter Memory manager.
Dudok de Wit David.  Documents management in a deskless company  SharePoint Online as a solution  Redesigning the documentary organization  Interoperability.
A (very brief) intro to Eclipse Boyana Norris June 4, 2009.
Lawrence Tarbox, Ph.D. Washington University in St. Louis School of Medicine Mallinckrodt Institute of Radiology, Electronic Radiology Lab.
Australian Nuclear Science & Technology Organisation GumTree A Java Based GUI Framework for Beamline Experiments Tony Lam (ANSTO) Andy Götz (ESRF) Ferdi.
CSS – Control System Studio
Grid Execution Management for Legacy Code Applications Grid Enabling Legacy Applications.
Managed by UT-Battelle for the Department of Energy Kay Kasemir, Xihui Chen ORNL/SNS April Control System Studio Training - Development.
CSS Build and Update System Kunal Shroff EPICS Spring Collaboration Meeting, June 2010 Aix-en-Provence.
QPE A Graphical Editor for Modeling using Queueing Petri Nets Christofer Dutz.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Grid Execution Management for Legacy Code Architecture Exposing legacy applications as Grid services: the GEMLCA approach Centre.
Testing Frameworks John Paul Ashenfelter CTO/Transitionpoint.
CSS Build and Update System Kunal Shroff EPICS Fall Collaboration Meeting, June 2010 Aix-en-Provence.
Build Hybrid Mobile Apps with Ionic, Angular, & Cordova Brian
ImageJ2. Why ImageJ2? ● Support the next generation of image data ● Interoperate and collaborate with other projects ● Broaden the ImageJ community ●
Lotus Symphony Extension Model ● Jin Hua, Chen ● IBM.
THE PRESENT AND FUTURE nopCommerce  .
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
Build and Learn ASP.NET Workshop.
Build and Test system for FairRoot
Sakai ID & Access Management
Development Environment
Developer Guidelines for community participation
Netscape Application Server
Goals Give you a feeling of what Eclipse is.
App Configuration, Customization or Development
Mobile Application Test Case Automation
Version control, using Git
A (very brief) intro to Eclipse
Joseph JaJa, Mike Smorul, and Sangchul Song
Review: Java GUI Programming
Say Hello to my Little Friend - Fedora Messaging Infrastructure
Swing & the JFC – Advanced Java GUI
Mercurial & TorToise-HG
Sarah Kuria Beta Prototype
Graduation Project Kick-off presentation - SET
Ahmet Fatih Mustacoglu
DEBUGGING CS2110.
Microsoft Build /16/2019 1:17 PM Adding Interactions in the Visual Layer to Create Customized & Responsive Experiences Anthony Young & Lindsay Kubasik.
Office 365 Development.
Why Threads Are A Bad Idea (for most purposes)
An Introduction to Eclipse
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Carthage ios 8 onwards Dependency manager that streamlines the process of integrating the libraries into the project.
NIEM Tool Strategy Next Steps for Movement
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes)
Running C# in the browser
Presentation transcript:

ImageJ2

Who Develops ImageJ2? And anyone who wants to contribute!

Who Develops ImageJ2? And anyone who wants to contribute!

Who Develops ImageJ2? And anyone who wants to contribute!

Who Develops ImageJ2? And anyone who wants to contribute!

Who Develops ImageJ2? And anyone who wants to contribute!

Who Develops ImageJ2? And anyone who wants to contribute!

Why ImageJ2?

ImageJ2 in a Nutshell ● Compatible ● N-dimensional ● Headless ● Extensible ● Interoperable ● Updatable ● Openly developed

ImageJ2 in a Nutshell ● Compatible ● N-dimensional ● Headless ● Extensible ● Interoperable ● Updatable ● Openly developed

ImageJ2 in a Nutshell ● Compatible ● N-dimensional ● Headless ● Extensible ● Interoperable ● Updatable ● Openly developed

ImageJ2 in a Nutshell ● Compatible ● N-dimensional ● Headless ● Extensible ● Interoperable ● Updatable ● Openly developed

ImageJ2 in a Nutshell ● Compatible ● N-dimensional ● Headless ● Extensible ● Interoperable ● Updatable ● Openly developed

ImageJ2 in a Nutshell ● Compatible ● N-dimensional ● Headless ● Extensible ● Interoperable ● Updatable ● Openly developed

ImageJ2 in a Nutshell ● Compatible ● N-dimensional ● Headless ● Extensible ● Interoperable ● Updatable ● Openly developed

ImageJ2 in a Nutshell ● Compatible ● N-dimensional ● Headless ● Extensible ● Interoperable ● Updatable ● Openly developed

Compatibility Invisible ImageJ1

N-Dimensional ● Support for more than five dimensions ● Composite more than seven channels

Data Model ● Driven by powerful ImgLib2 library ● Support for many new data types

Regions of Interest ● ROIs are functions ● Overlays are visuals

Data I/O ● SCIFIO = SCientific Image Format Input & Output ● Core library for reading and writing data ● New formats added as SCIFIO plugins

Launcher ● Single, multi-platform distribution of ImageJ ● Run scripts in batch mode ● Run headless

Customizable UIs Support for Swing Look & Feels ● Metal, Motif, Nimbus, Aqua, Windows, GTK Multiple UIs possible ● Swing, AWT, Apache Pivot, Eclipse SWT…

Service Architecture Plugins Events Animation I/O Displays Overlays Tools Platforms UIs Options Core ImageJ2 Services Custom ServiceAnother Service ImageJ Context

Plugin Framework

Interoperability

Updater ● Central mechanism for installing new plugins ● Compatible with Fiji update sites

Updater ● Install and use Fiji plugins ● 3D Viewer, Bio-Formats, more

Updater ● Works with third party update sites too ● On right, VisBio Ortho Stack plugin from LOCI update site

Spectral Lifetime Analysis ● SLIM Plugin for visualizing and analyzing combined spectral lifetime image data ● Works with data in time domain ● Available from LOCI update site

Design Philosophy ● Extensibility ● Modularity ● Interoperability

Complexity ImageJ 1.x

Complexity ImageJ 1.xImageJ2

Complexity ImageJ 1.xImageJ2 "Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." —Brian Kernighan "Every line of code is a liability." —Taka Muraoka

Performance ● Performance is a design goal

Performance ● Performance is a design goal ● But optimize only as needed “We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.” —Donald Knuth

Collaboration ● Open development ● Improve ImageJ as a community ● Open access resources ● Responsive, reliable maintainers ● Powerful collaboration tools (GitHub!)

Collaboration

● Open development ● Improve ImageJ as a community ● Open access resources ● Responsive, reliable maintainers ● Powerful collaboration tools (GitHub!)

GitHub: A project of interest

GitHub: Fork it!

GitHub: Forking...

GitHub: New fork in your space

Clone the code Make a change Double check it Commit and push!

GitHub: Changes pushed!

GitHub: Submit a Pull Request

GitHub: Explain what you did

GitHub: Browsing PRs

Users vs. Developers? ● It's a balance... but moreover, it's a blend! ● Many people are both, or want to learn both

Future Directions ● New beta every 7 weeks ● Big green button ● Better integration with native code ● Website: central plugins listing ● Application-driven development