-An open source not for profit project -On GitHub ‘DawnScience’ - Diamond Light Source Ltd. and the ESRF are largely publically funded research facilities.

Slides:



Advertisements
Similar presentations
Operating-System Structures
Advertisements

Jenkins User Conference San Francisco, Sept #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco
Introduction Main technologies: core written in Java embedded Jython interpreter code managed using the Eclipse plugin framework client program uses Eclipse.
ONYX RIP Version Technical Training General. Overview General Messaging and What’s New in X10 High Level Print and Cut & Profiling Overviews In Depth.
Visual Designer for JasperReports
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
® Page 1 Intel Compiler Lab – Intel Array Visualizer HDF Workshop VI December 5, 2002 John Readey
The DAWNSci Eclipse science usecases Jun Aishima Software Engineer Diamond Light Source Didcot, UK.
Goals Give you a feeling of what Eclipse is.
MICROCONTROLLED HOME Keith Jones EKU Deparment of Technology CEN.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
PayDox applications All features can be used independently.
SM3121 Software Technology Mark Green School of Creative Media.
03 Using Eclipse. 2 IDE Overview An IDE is an Interactive Development Environment Different IDEs meet different needs BlueJ and DrJava are designed as.
2. Introduction to the Visual Studio.NET IDE 2. Introduction to the Visual Studio.NET IDE Ch2 – Deitel’s Book.
Presented by…. Group 2 1. Programming language 2Introduction.
M1G Introduction to Programming 2 4. Enhancing a class:Room.
Duke University Program Design & Construction Course Application Development Tools Sherry Shavor
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
Programming Fundamentals 2: Background/ F II Objectives – –give a non-technical overview of Java Semester 2, Background.
JAS3 + AIDA LC Simulations Workshop SLAC 19 th May 2003.
Deutsches Elektronen-Synchrotron DESY Helmholtz Association of German Research Centres Hamburg, Germany The European X-Ray Laser Project.
Capture and Replay Often used for regression test development –Tool used to capture interactions with the system under test. –Inputs must be captured;
Introduction to Programming Peggy Batchelor.
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Data Visualization Project B.Tech Major Project Project Guide Dr. Naresh Nagwani Project Team Members Pawan Singh Sumit Guha.
3461A Readings from the Swing Tutorial. 3461A Overview  The follow is the Table of Contents from the trail “Creating a GUI with JFC/Swing” in the “The.
GTRI Proprietary / Limited Distribution. Architecture File System DataLoader API Analytics API Visualization API MongoDB Resource Management Layer Python.
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.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
© 2006 IBM Corporation Agile Planning Web UI. © 2006 IBM Corporation Agenda  Overview of APT Web UI  Current Issues  Required Infrastructure  API.
Copyright © IBM Corp., All rights reserved. From SWT to RCP: Experiences implementing RSSOwl 2.0 with RCP Benjamin Pasero.
-An open source not for profit project -On GitHub ‘DawnScience’ - Diamond Light Source Ltd. and the ESRF are largely publically funded research facilities.
A (very brief) intro to Eclipse Boyana Norris June 4, 2009.
DEV-8: OpenEdge® Architect – Extensibility & Third Party Integration Sunil Belgaonkar Principal Software Engineer Architect Phillip Magnay.
Tracker data quality monitoring based on event display M.S. Mennea – G. Zito University & INFN Bari - Italy.
Version 5. ¿What is PAF? PAF is a tool to easily and quickly implement… …distributed analysis over ROOT trees. …by hiding as much as possible the inherent.
15/06/2006 The Future of Visual DCT EPICS Collaboration 2006 Argonne National Laboratory
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary June, 2011 Made available under the Eclipse Public License v Mobile.
Introduction to Processing. 2 What is processing? A simple programming environment that was created to make it easier to develop visually oriented applications.
What is Eclipse? Official Definition: Eclipse Evolution
Mantid Current Development and Future Plans Nicholas Draper ICNS 2013.
© 2008 by Shawn Spiars; made available under the EPL v1.0 | March 17, 2008 Case Study – Phurnace Software and RCP Shawn Spiars Lead UI Developer Phurnace.
Mohit Anand, Software Engineer Adobe 1 Selecting GUI Automation Testing Tool for Mobile Domain.
McIDAS-V Status and Demonstration by Gail Dengel Tom Whittaker University of Wisconsin-Madison SSEC 2005 MUG Meeting October 27-28, 2005 Madison, WI.
Jan Hatje, DESY CSS GSI Feb. 2009: Technology and Interfaces XFEL The European X-Ray Laser Project X-Ray Free-Electron Laser 1 CSS – Control.
Introduction 1 Lars Vogel 4/22/2009.  Who am I?  Eclipse as a platform  What is Eclipse RCP?  Extension Points / Extensions  Equinox  SWT & JFace.
What is Firefly (1) A web UI framework for web applications
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
IE 411/511: Visual Programming for Industrial Applications Lecture Notes #2 Introduction to the Visual Basic Express 2010 Integrated Development Environment.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
Excel Services Displays all or parts of interactive Excel worksheets in the browser –Excel “publish” feature with optional parameters defined in worksheet.
XML 2002 Annotation Management in an XML CMS A Case Study.
This was written with the assumption that workbooks would be added. Even if these are not introduced until later, the same basic ideas apply Hopefully.
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
MAUS Status A. Dobbs CM43 29 th October Contents MAUS Overview Infrastructure Geometry and CDB Detector Updates CKOV EMR KL TOF Tracker Global Tracking.
ARTview A Community Weather Radar Data GUI Contributors Anderson Gama Nick Guy Paul Hein Jonathan Helmus Timothy Lang.
1 RIC 2009 Symbolic Nuclear Analysis Package - SNAP version 1.0: Features and Applications Chester Gingrich RES/DSA/CDB 3/12/09.
PARTNER UPDATE V9 MILESTONE 1 & 2.
Inquiring and analyzing options for creating a website
Continuous Integration (CI)
Android Studio, Android System Basics and Git
A (very brief) intro to Eclipse
Prepared by Kimberly Sayre and Jinbo Bi
How to automate software with
Topics Introduction Hardware and Software How Computers Store Data
NICOS – IBEX Interactions
Diamond is all about data…
David Cleverly – Development Lead
Presentation transcript:

-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 14 years with various Java based applications. 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 many different type of scientific experiments and sometimes other things.”

ESRF (Experimental Facility) Diamond (User Facility)

The Queen and Duke of Edinburgh at the official opening of DLS, 19 th October 2007

Inside the storage ring [not star-trek “conduit”...] Scientists with some of the hardware used in their research Video of Diamond...

Detectors of Various flavours

Responsibilities AKA – what developers do there... 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 20 developers, 8 in scientific software 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 Squish UI Testing, Junit and Junit plugin tests. We do not currently do code walkthroughs or pair programming. Agile practices being used where otherwise possible. We document our designs and code using confluence. We use Cheat Sheets for tutorials and testing guides.

Git / eGit in late 2011 AKA – no body expects the Spanish Inquisition

‘Shoulders of Giants’ AKA – didn’t think of everything RCP many of the core features, editors, toolbars, views, projects Ptolemy 2 (a version known 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, and many more of course...

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

–For images Line, Box, Sector integration Diffraction image interpretation, line profile for ‘D-spacing’ Color mapping / Histogramming Pixel Information and region control –For XY Graphs Peak Fitting and Line Fitting Derivative and other functions, including user defined Scientific tools –XAFS Analysis Tool –SAXS –Use of eclipse architecture, extension points and pages inside PageBookView. Lots of Visual Tools

Demonstration – Visual Tools Example showing various visual tools

Cutting through N-dimensional data –With an XY plot –As an image –As a 3D iso-surface –Hyper 3D 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

Demonstration – Tools and Hyper 3D Example showing slicing data using Hyper 3D on a human skull

Have you heard of Pydev? (Have you heard of python?) –Diamond is one of the largest contributors to Pydev. –Able to integrate Python numpy, scipy with our plotting –Able to debug interactive python –Python very popular with scientific programmers (because they are slow typers). Pydev and Python

Demonstration – Python Integration Example showing connection to python

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 based on Passerelle Ptolemy IIEclipse GEF (soon to be Graphiti) EMF / GMF replaced with Ptolemy II RCP application

Demonstration – Simple Matrix Maths Add, subtract – etc some images produced by an experiment...

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

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. ESRF Data Analysis Workbench,