SlideShare a Scribd company logo
1 of 21
-An open source not for profit project
-On GitHub ‘DawnScience’
- Diamond Light Source Ltd. and the ESRF
are largely publically funded research
facilities
Disclaimer
AKA - who says that?
• A Java Software Developer (not a Scientist) worked for 12 years
with Java.
• An Eclipse/RCP fan
• I will attempt to explain a bit of the science for your enjoyment
(hopefully not schadenfreude).
• The rest of the talk will focus on software.
• The eclipse features shown in this talk, such as the pipelining
tools can be reused outside Science.
Matthew Gerring
Synchrotron
AKA – cool word, but what does it mean?
syn·chro·tron/ˈsiNGkrəˌträn/
Noun:A cyclotron in which the magnetic field
strength increases with the energy of the
particles to keep their orbital radius constant.
“They are machines which produce
very strong light used for various
scientific experiments and sometimes
other things.”
Where I used to sit
Where I sit now
The Queen and Duke of Edinburgh
at the official opening of DLS
Inside the ring
(not star-trek
conduit...)
Scientists with some
of the hardware used
in their research
Video of Diamond...
Responsibilities
AKA – what they want developers to do...
• Software for controlling experiments
– Motors, detectors, data collection scripts, configuration.
– A high quality but flexible GUI.
• Software for data
– Ability to visually interact with n-dimensional data (i.e. graphs and slices).
– Ability to write scripts to interact with data.
– Custom user interface and forms for specific experiments.
• Software for running analysis during experiments
– Workflow and pipelines. Hard coded and/or user configurable options.
– Real time visualization of analysed results.
Integration Tools
AKA – how we are getting it done
• EIDES – Eclipse IDE, Stupid - around 15 developers
• Eclipse RCP product built using Buckminster (previously PDE)
• Usage of Jenkins for continuous integration. Specific releases still
produced and tested, appearing as separate items in Jenkins.
• Unit tests using Junit and Junit plugin tests.
• Almost no code walkthroughs and pair programming. Agile practices being
used where otherwise possible.
• We like Cheat Sheets and use them for tutorial and testing guides.
Git / eGit
AKA – no body expects the Spanish Inquisition
‘Shoulders of Giants’
AKA – we didn’t think of everything
• RCP many of the core features, editors, toolbars, views, projects
• Ptolemy 2 (a version know as ‘Passerelle’) workflow and pipelining
• GEF for visualization of pipeline graphs
• Draw2D for 1D and 2D plotting (SWT XY Graph)
• Pydev for python/jython scripting layer used by the scientists
• HDF5 libraries for storing large data sets
• SWT/Jface – lazy viewers being used extensively for large trees and tables
• Apache, Eclipse-WST, springsource, JDK 6x, and many more...
A quick look at lazy
What it does
• Viewer reads contents as
incrementally (normal,
however...)
• Items off screen not loaded
– Not icon read, no label
– Resources for the item
unassigned
• Allows large viewer
contents to exist but not take
up resources until used
Things to do in the source code
tree = new TreeViewer(parent, SWT.MULTI |
SWT.H_SCROLL | SWT.V_SCROLL |
SWT.FULL_SELECTION | SWT.BORDER
|SWT.VIRTUAL);
tree.setUseHashlookup(true);
public class FileContentProvider implements
ILazyTreeContentProvider {
...
}
tree.setContentProvider(new
FileContentProvider());
tree.getTree().setItemCount(...);
Demonstration - Lazy Trees
Navigate the file system and open a file containing a large tree
• Eclipse feature, EPL /Apache dependencies
• Easy to create multi-threaded algorithms using branches
• Balance over multi-CPU systems using JDK threading
• Runs in separate process using Eclipse debug plugins
• Easy to integrate new actors (extension points)
Pipelines / workflows
Ptolemy II Eclipse GEF
EMF / GMF
Replaced with Ptolemy II
RCP application
Demonstration – Simple Matrix Maths
Add, subtract – etc some images produced by an experiment...
• Concept of source actors, for example:
– Monitor a file or directory
– Monitor a web service
– Iterate a large folder of data files
• Ability to deploy as a web or rcp service
– Run as external process
– Communicate to and from controlling process during model run
• Add actors using extension points
Pipelines continued
Demonstration – Efficient Pipelines
Pack a large number of files into a high density file (HDF5)
• Controlling a fridge using Ptolemy II
• Adding and running your own actors
• The actors sleep instead of doing things
Taken from examples on our github repo ‘DawnScience’
Fridge Control Example
Demonstration – Acme fridge control
Example using actors which control a fridge, for instance
• Cutting through N-dimensional data
– With an XY plot
– As an image
– As a 3D iso-surface
• Important to run everything concurrently
– Use of Jobs
– Use of ordinary threads
– Use of blocking queues of various sizes
– Third party native APIs using Bundle-NativeCode
Slicing data
Demonstration – Slicing and dicing
Example opening a tomography file and slicing it
• Thanks to Eclipse for providing a great tool
– RCP is fast and scalable too, using OSGI
– SWT has ability to be configured for very large data
– Ability to integrate native code in plugins if needed
– Maybe we can support web application with RAP one day
• Thanks to the Java community for its APIs
• We will hopefully be an eclipse project one day...
• Thanks for listening and please approach me at the
conference if you want to talk about things
Conclusion
Diamond Light Source Ltd. www.diamond.ac.uk
Data Analysis Workbench, www.dawb.org, (and www.esrf.fr)

More Related Content

What's hot

Debugging and Profiling Rails Application
Debugging and Profiling Rails ApplicationDebugging and Profiling Rails Application
Debugging and Profiling Rails ApplicationDavid Paluy
 
Garbage collection in JVM
Garbage collection in JVMGarbage collection in JVM
Garbage collection in JVMaragozin
 
Scaling Security Threat Detection with Apache Spark and Databricks
Scaling Security Threat Detection with Apache Spark and DatabricksScaling Security Threat Detection with Apache Spark and Databricks
Scaling Security Threat Detection with Apache Spark and DatabricksDatabricks
 
High Performance Machine Learning in R with H2O
High Performance Machine Learning in R with H2OHigh Performance Machine Learning in R with H2O
High Performance Machine Learning in R with H2OSri Ambati
 
Introduction to Garbage Collection
Introduction to Garbage CollectionIntroduction to Garbage Collection
Introduction to Garbage CollectionArtur Mkrtchyan
 
From Python Scikit-learn to Scala Apache Spark—The Road to Uncovering Botnets...
From Python Scikit-learn to Scala Apache Spark—The Road to Uncovering Botnets...From Python Scikit-learn to Scala Apache Spark—The Road to Uncovering Botnets...
From Python Scikit-learn to Scala Apache Spark—The Road to Uncovering Botnets...Databricks
 

What's hot (7)

Debugging and Profiling Rails Application
Debugging and Profiling Rails ApplicationDebugging and Profiling Rails Application
Debugging and Profiling Rails Application
 
Garbage collection in JVM
Garbage collection in JVMGarbage collection in JVM
Garbage collection in JVM
 
Scaling Security Threat Detection with Apache Spark and Databricks
Scaling Security Threat Detection with Apache Spark and DatabricksScaling Security Threat Detection with Apache Spark and Databricks
Scaling Security Threat Detection with Apache Spark and Databricks
 
Apache Toree
Apache ToreeApache Toree
Apache Toree
 
High Performance Machine Learning in R with H2O
High Performance Machine Learning in R with H2OHigh Performance Machine Learning in R with H2O
High Performance Machine Learning in R with H2O
 
Introduction to Garbage Collection
Introduction to Garbage CollectionIntroduction to Garbage Collection
Introduction to Garbage Collection
 
From Python Scikit-learn to Scala Apache Spark—The Road to Uncovering Botnets...
From Python Scikit-learn to Scala Apache Spark—The Road to Uncovering Botnets...From Python Scikit-learn to Scala Apache Spark—The Road to Uncovering Botnets...
From Python Scikit-learn to Scala Apache Spark—The Road to Uncovering Botnets...
 

Similar to Eclipse RCP for Synchrotron Science

DAWN and Scientific Workflows
DAWN and Scientific WorkflowsDAWN and Scientific Workflows
DAWN and Scientific WorkflowsMatthew Gerring
 
The Final Frontier
The Final FrontierThe Final Frontier
The Final FrontierjClarity
 
Data Science at Scale: Using Apache Spark for Data Science at Bitly
Data Science at Scale: Using Apache Spark for Data Science at BitlyData Science at Scale: Using Apache Spark for Data Science at Bitly
Data Science at Scale: Using Apache Spark for Data Science at BitlySarah Guido
 
Tips For Maintaining OSS Projects
Tips For Maintaining OSS ProjectsTips For Maintaining OSS Projects
Tips For Maintaining OSS ProjectsTaro L. Saito
 
HiPEAC 2019 Tutorial - Maestro RTOS
HiPEAC 2019 Tutorial - Maestro RTOSHiPEAC 2019 Tutorial - Maestro RTOS
HiPEAC 2019 Tutorial - Maestro RTOSTulipp. Eu
 
Building Deep Learning Workflows with DL4J
Building Deep Learning Workflows with DL4JBuilding Deep Learning Workflows with DL4J
Building Deep Learning Workflows with DL4JJosh Patterson
 
OCDET Activity and Glusterfs
OCDET Activity and GlusterfsOCDET Activity and Glusterfs
OCDET Activity and GlusterfsMasanori Itoh
 
Deep Learning on Apache® Spark™ : Workflows and Best Practices
Deep Learning on Apache® Spark™ : Workflows and Best PracticesDeep Learning on Apache® Spark™ : Workflows and Best Practices
Deep Learning on Apache® Spark™ : Workflows and Best PracticesJen Aman
 
Deep Learning on Apache® Spark™: Workflows and Best Practices
Deep Learning on Apache® Spark™: Workflows and Best PracticesDeep Learning on Apache® Spark™: Workflows and Best Practices
Deep Learning on Apache® Spark™: Workflows and Best PracticesDatabricks
 
Deep Learning on Apache® Spark™: Workflows and Best Practices
Deep Learning on Apache® Spark™: Workflows and Best PracticesDeep Learning on Apache® Spark™: Workflows and Best Practices
Deep Learning on Apache® Spark™: Workflows and Best PracticesJen Aman
 
Lessons Learned from Dockerizing Spark Workloads
Lessons Learned from Dockerizing Spark WorkloadsLessons Learned from Dockerizing Spark Workloads
Lessons Learned from Dockerizing Spark WorkloadsBlueData, Inc.
 
Lessons Learned from Dockerizing Spark Workloads: Spark Summit East talk by T...
Lessons Learned from Dockerizing Spark Workloads: Spark Summit East talk by T...Lessons Learned from Dockerizing Spark Workloads: Spark Summit East talk by T...
Lessons Learned from Dockerizing Spark Workloads: Spark Summit East talk by T...Spark Summit
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015aspyker
 
Introduction to Android Development and Security
Introduction to Android Development and SecurityIntroduction to Android Development and Security
Introduction to Android Development and SecurityKelwin Yang
 
Making the big data ecosystem work together with python apache arrow, spark,...
Making the big data ecosystem work together with python  apache arrow, spark,...Making the big data ecosystem work together with python  apache arrow, spark,...
Making the big data ecosystem work together with python apache arrow, spark,...Holden Karau
 
Making the big data ecosystem work together with Python & Apache Arrow, Apach...
Making the big data ecosystem work together with Python & Apache Arrow, Apach...Making the big data ecosystem work together with Python & Apache Arrow, Apach...
Making the big data ecosystem work together with Python & Apache Arrow, Apach...Holden Karau
 
Big data beyond the JVM - DDTX 2018
Big data beyond the JVM -  DDTX 2018Big data beyond the JVM -  DDTX 2018
Big data beyond the JVM - DDTX 2018Holden Karau
 
10 ways to improve your Android app performance
10 ways to improve your Android app performance10 ways to improve your Android app performance
10 ways to improve your Android app performanceBoris Farber
 
Wattpad - Spark Stories
Wattpad - Spark StoriesWattpad - Spark Stories
Wattpad - Spark StoriesRylan Halteman
 

Similar to Eclipse RCP for Synchrotron Science (20)

DAWN and Scientific Workflows
DAWN and Scientific WorkflowsDAWN and Scientific Workflows
DAWN and Scientific Workflows
 
The Final Frontier
The Final FrontierThe Final Frontier
The Final Frontier
 
Data Science at Scale: Using Apache Spark for Data Science at Bitly
Data Science at Scale: Using Apache Spark for Data Science at BitlyData Science at Scale: Using Apache Spark for Data Science at Bitly
Data Science at Scale: Using Apache Spark for Data Science at Bitly
 
Tips For Maintaining OSS Projects
Tips For Maintaining OSS ProjectsTips For Maintaining OSS Projects
Tips For Maintaining OSS Projects
 
HiPEAC 2019 Tutorial - Maestro RTOS
HiPEAC 2019 Tutorial - Maestro RTOSHiPEAC 2019 Tutorial - Maestro RTOS
HiPEAC 2019 Tutorial - Maestro RTOS
 
Building Deep Learning Workflows with DL4J
Building Deep Learning Workflows with DL4JBuilding Deep Learning Workflows with DL4J
Building Deep Learning Workflows with DL4J
 
OCDET Activity and Glusterfs
OCDET Activity and GlusterfsOCDET Activity and Glusterfs
OCDET Activity and Glusterfs
 
Deep Learning on Apache® Spark™ : Workflows and Best Practices
Deep Learning on Apache® Spark™ : Workflows and Best PracticesDeep Learning on Apache® Spark™ : Workflows and Best Practices
Deep Learning on Apache® Spark™ : Workflows and Best Practices
 
Deep Learning on Apache® Spark™: Workflows and Best Practices
Deep Learning on Apache® Spark™: Workflows and Best PracticesDeep Learning on Apache® Spark™: Workflows and Best Practices
Deep Learning on Apache® Spark™: Workflows and Best Practices
 
Deep Learning on Apache® Spark™: Workflows and Best Practices
Deep Learning on Apache® Spark™: Workflows and Best PracticesDeep Learning on Apache® Spark™: Workflows and Best Practices
Deep Learning on Apache® Spark™: Workflows and Best Practices
 
Lessons Learned from Dockerizing Spark Workloads
Lessons Learned from Dockerizing Spark WorkloadsLessons Learned from Dockerizing Spark Workloads
Lessons Learned from Dockerizing Spark Workloads
 
Lessons Learned from Dockerizing Spark Workloads: Spark Summit East talk by T...
Lessons Learned from Dockerizing Spark Workloads: Spark Summit East talk by T...Lessons Learned from Dockerizing Spark Workloads: Spark Summit East talk by T...
Lessons Learned from Dockerizing Spark Workloads: Spark Summit East talk by T...
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015
 
Introduction to Android Development and Security
Introduction to Android Development and SecurityIntroduction to Android Development and Security
Introduction to Android Development and Security
 
Making the big data ecosystem work together with python apache arrow, spark,...
Making the big data ecosystem work together with python  apache arrow, spark,...Making the big data ecosystem work together with python  apache arrow, spark,...
Making the big data ecosystem work together with python apache arrow, spark,...
 
Making the big data ecosystem work together with Python & Apache Arrow, Apach...
Making the big data ecosystem work together with Python & Apache Arrow, Apach...Making the big data ecosystem work together with Python & Apache Arrow, Apach...
Making the big data ecosystem work together with Python & Apache Arrow, Apach...
 
Big data beyond the JVM - DDTX 2018
Big data beyond the JVM -  DDTX 2018Big data beyond the JVM -  DDTX 2018
Big data beyond the JVM - DDTX 2018
 
10 ways to improve your Android app performance
10 ways to improve your Android app performance10 ways to improve your Android app performance
10 ways to improve your Android app performance
 
Wattpad - Spark Stories
Wattpad - Spark StoriesWattpad - Spark Stories
Wattpad - Spark Stories
 
Data science lifecycle with Apache Zeppelin
Data science lifecycle with Apache ZeppelinData science lifecycle with Apache Zeppelin
Data science lifecycle with Apache Zeppelin
 

More from Matthew Gerring

Presented at GeoCon 2015
Presented at GeoCon 2015Presented at GeoCon 2015
Presented at GeoCon 2015Matthew Gerring
 
Trondheim Eclipe Day 2015 and 2016
Trondheim Eclipe Day 2015 and 2016Trondheim Eclipe Day 2015 and 2016
Trondheim Eclipe Day 2015 and 2016Matthew Gerring
 
Geoscience and Microservices
Geoscience and Microservices Geoscience and Microservices
Geoscience and Microservices Matthew Gerring
 
Eclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science ProjectEclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science ProjectMatthew Gerring
 

More from Matthew Gerring (6)

Presented at GeoCon 2015
Presented at GeoCon 2015Presented at GeoCon 2015
Presented at GeoCon 2015
 
Trondheim Eclipe Day 2015 and 2016
Trondheim Eclipe Day 2015 and 2016Trondheim Eclipe Day 2015 and 2016
Trondheim Eclipe Day 2015 and 2016
 
Geoscience and Microservices
Geoscience and Microservices Geoscience and Microservices
Geoscience and Microservices
 
Demo eclipse science
Demo eclipse scienceDemo eclipse science
Demo eclipse science
 
Eclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science ProjectEclipse Con Europe 2014 How to use DAWN Science Project
Eclipse Con Europe 2014 How to use DAWN Science Project
 
Demo Eclipse Science
Demo Eclipse ScienceDemo Eclipse Science
Demo Eclipse Science
 

Recently uploaded

Chemistry 4th semester series (krishna).pdf
Chemistry 4th semester series (krishna).pdfChemistry 4th semester series (krishna).pdf
Chemistry 4th semester series (krishna).pdfSumit Kumar yadav
 
Animal Communication- Auditory and Visual.pptx
Animal Communication- Auditory and Visual.pptxAnimal Communication- Auditory and Visual.pptx
Animal Communication- Auditory and Visual.pptxUmerFayaz5
 
Formation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksFormation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksSérgio Sacani
 
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls AgencyHire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls AgencySheetal Arora
 
Chromatin Structure | EUCHROMATIN | HETEROCHROMATIN
Chromatin Structure | EUCHROMATIN | HETEROCHROMATINChromatin Structure | EUCHROMATIN | HETEROCHROMATIN
Chromatin Structure | EUCHROMATIN | HETEROCHROMATINsankalpkumarsahoo174
 
Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )aarthirajkumar25
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)Areesha Ahmad
 
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...Lokesh Kothari
 
Forensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfForensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfrohankumarsinghrore1
 
Pulmonary drug delivery system M.pharm -2nd sem P'ceutics
Pulmonary drug delivery system M.pharm -2nd sem P'ceuticsPulmonary drug delivery system M.pharm -2nd sem P'ceutics
Pulmonary drug delivery system M.pharm -2nd sem P'ceuticssakshisoni2385
 
Botany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsBotany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsSumit Kumar yadav
 
Isotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoIsotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoSérgio Sacani
 
Biological Classification BioHack (3).pdf
Biological Classification BioHack (3).pdfBiological Classification BioHack (3).pdf
Biological Classification BioHack (3).pdfmuntazimhurra
 
Biopesticide (2).pptx .This slides helps to know the different types of biop...
Biopesticide (2).pptx  .This slides helps to know the different types of biop...Biopesticide (2).pptx  .This slides helps to know the different types of biop...
Biopesticide (2).pptx .This slides helps to know the different types of biop...RohitNehra6
 
Physiochemical properties of nanomaterials and its nanotoxicity.pptx
Physiochemical properties of nanomaterials and its nanotoxicity.pptxPhysiochemical properties of nanomaterials and its nanotoxicity.pptx
Physiochemical properties of nanomaterials and its nanotoxicity.pptxAArockiyaNisha
 
PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...
PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...
PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...Sérgio Sacani
 
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...anilsa9823
 
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral AnalysisRaman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral AnalysisDiwakar Mishra
 
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Sérgio Sacani
 
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 60009654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000Sapana Sha
 

Recently uploaded (20)

Chemistry 4th semester series (krishna).pdf
Chemistry 4th semester series (krishna).pdfChemistry 4th semester series (krishna).pdf
Chemistry 4th semester series (krishna).pdf
 
Animal Communication- Auditory and Visual.pptx
Animal Communication- Auditory and Visual.pptxAnimal Communication- Auditory and Visual.pptx
Animal Communication- Auditory and Visual.pptx
 
Formation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disksFormation of low mass protostars and their circumstellar disks
Formation of low mass protostars and their circumstellar disks
 
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls AgencyHire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
 
Chromatin Structure | EUCHROMATIN | HETEROCHROMATIN
Chromatin Structure | EUCHROMATIN | HETEROCHROMATINChromatin Structure | EUCHROMATIN | HETEROCHROMATIN
Chromatin Structure | EUCHROMATIN | HETEROCHROMATIN
 
Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)
 
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
Labelling Requirements and Label Claims for Dietary Supplements and Recommend...
 
Forensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdfForensic Biology & Its biological significance.pdf
Forensic Biology & Its biological significance.pdf
 
Pulmonary drug delivery system M.pharm -2nd sem P'ceutics
Pulmonary drug delivery system M.pharm -2nd sem P'ceuticsPulmonary drug delivery system M.pharm -2nd sem P'ceutics
Pulmonary drug delivery system M.pharm -2nd sem P'ceutics
 
Botany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsBotany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questions
 
Isotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoIsotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on Io
 
Biological Classification BioHack (3).pdf
Biological Classification BioHack (3).pdfBiological Classification BioHack (3).pdf
Biological Classification BioHack (3).pdf
 
Biopesticide (2).pptx .This slides helps to know the different types of biop...
Biopesticide (2).pptx  .This slides helps to know the different types of biop...Biopesticide (2).pptx  .This slides helps to know the different types of biop...
Biopesticide (2).pptx .This slides helps to know the different types of biop...
 
Physiochemical properties of nanomaterials and its nanotoxicity.pptx
Physiochemical properties of nanomaterials and its nanotoxicity.pptxPhysiochemical properties of nanomaterials and its nanotoxicity.pptx
Physiochemical properties of nanomaterials and its nanotoxicity.pptx
 
PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...
PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...
PossibleEoarcheanRecordsoftheGeomagneticFieldPreservedintheIsuaSupracrustalBe...
 
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
 
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral AnalysisRaman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
Raman spectroscopy.pptx M Pharm, M Sc, Advanced Spectral Analysis
 
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
 
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 60009654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
9654467111 Call Girls In Raj Nagar Delhi Short 1500 Night 6000
 

Eclipse RCP for Synchrotron Science

  • 1. -An open source not for profit project -On GitHub ‘DawnScience’ - Diamond Light Source Ltd. and the ESRF are largely publically funded research facilities
  • 2. Disclaimer AKA - who says that? • A Java Software Developer (not a Scientist) worked for 12 years with Java. • An Eclipse/RCP fan • I will attempt to explain a bit of the science for your enjoyment (hopefully not schadenfreude). • The rest of the talk will focus on software. • The eclipse features shown in this talk, such as the pipelining tools can be reused outside Science. Matthew Gerring
  • 3. Synchrotron AKA – cool word, but what does it mean? syn·chro·tron/ˈsiNGkrəˌträn/ Noun:A cyclotron in which the magnetic field strength increases with the energy of the particles to keep their orbital radius constant. “They are machines which produce very strong light used for various scientific experiments and sometimes other things.”
  • 4. Where I used to sit Where I sit now
  • 5. The Queen and Duke of Edinburgh at the official opening of DLS
  • 6. Inside the ring (not star-trek conduit...) Scientists with some of the hardware used in their research Video of Diamond...
  • 7. Responsibilities AKA – what they want developers to do... • Software for controlling experiments – Motors, detectors, data collection scripts, configuration. – A high quality but flexible GUI. • Software for data – Ability to visually interact with n-dimensional data (i.e. graphs and slices). – Ability to write scripts to interact with data. – Custom user interface and forms for specific experiments. • Software for running analysis during experiments – Workflow and pipelines. Hard coded and/or user configurable options. – Real time visualization of analysed results.
  • 8. Integration Tools AKA – how we are getting it done • EIDES – Eclipse IDE, Stupid - around 15 developers • Eclipse RCP product built using Buckminster (previously PDE) • Usage of Jenkins for continuous integration. Specific releases still produced and tested, appearing as separate items in Jenkins. • Unit tests using Junit and Junit plugin tests. • Almost no code walkthroughs and pair programming. Agile practices being used where otherwise possible. • We like Cheat Sheets and use them for tutorial and testing guides.
  • 9. Git / eGit AKA – no body expects the Spanish Inquisition
  • 10. ‘Shoulders of Giants’ AKA – we didn’t think of everything • RCP many of the core features, editors, toolbars, views, projects • Ptolemy 2 (a version know as ‘Passerelle’) workflow and pipelining • GEF for visualization of pipeline graphs • Draw2D for 1D and 2D plotting (SWT XY Graph) • Pydev for python/jython scripting layer used by the scientists • HDF5 libraries for storing large data sets • SWT/Jface – lazy viewers being used extensively for large trees and tables • Apache, Eclipse-WST, springsource, JDK 6x, and many more...
  • 11. A quick look at lazy What it does • Viewer reads contents as incrementally (normal, however...) • Items off screen not loaded – Not icon read, no label – Resources for the item unassigned • Allows large viewer contents to exist but not take up resources until used Things to do in the source code tree = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER |SWT.VIRTUAL); tree.setUseHashlookup(true); public class FileContentProvider implements ILazyTreeContentProvider { ... } tree.setContentProvider(new FileContentProvider()); tree.getTree().setItemCount(...);
  • 12. Demonstration - Lazy Trees Navigate the file system and open a file containing a large tree
  • 13. • Eclipse feature, EPL /Apache dependencies • Easy to create multi-threaded algorithms using branches • Balance over multi-CPU systems using JDK threading • Runs in separate process using Eclipse debug plugins • Easy to integrate new actors (extension points) Pipelines / workflows Ptolemy II Eclipse GEF EMF / GMF Replaced with Ptolemy II RCP application
  • 14. Demonstration – Simple Matrix Maths Add, subtract – etc some images produced by an experiment...
  • 15. • Concept of source actors, for example: – Monitor a file or directory – Monitor a web service – Iterate a large folder of data files • Ability to deploy as a web or rcp service – Run as external process – Communicate to and from controlling process during model run • Add actors using extension points Pipelines continued
  • 16. Demonstration – Efficient Pipelines Pack a large number of files into a high density file (HDF5)
  • 17. • Controlling a fridge using Ptolemy II • Adding and running your own actors • The actors sleep instead of doing things Taken from examples on our github repo ‘DawnScience’ Fridge Control Example
  • 18. Demonstration – Acme fridge control Example using actors which control a fridge, for instance
  • 19. • Cutting through N-dimensional data – With an XY plot – As an image – As a 3D iso-surface • Important to run everything concurrently – Use of Jobs – Use of ordinary threads – Use of blocking queues of various sizes – Third party native APIs using Bundle-NativeCode Slicing data
  • 20. Demonstration – Slicing and dicing Example opening a tomography file and slicing it
  • 21. • Thanks to Eclipse for providing a great tool – RCP is fast and scalable too, using OSGI – SWT has ability to be configured for very large data – Ability to integrate native code in plugins if needed – Maybe we can support web application with RAP one day • Thanks to the Java community for its APIs • We will hopefully be an eclipse project one day... • Thanks for listening and please approach me at the conference if you want to talk about things Conclusion Diamond Light Source Ltd. www.diamond.ac.uk Data Analysis Workbench, www.dawb.org, (and www.esrf.fr)