ITK Examples ITK Meeting, Iowa Presenter(s). Motivation Demonstrate concepts rather than classes The Doxygen pages are usually pretty good, but don't.

Slides:



Advertisements
Similar presentations
JQuery MessageBoard. Lets use jQuery and AJAX in combination with a database to update and retrieve information without refreshing the page. Here we will.
Advertisements

ITK-Overview Insight Software Consortium. What is ITK Image Processing Segmentation Registration No Graphical User Interface (GUI) No Visualization.
Test-First Programming. The tests should drive you to write the code, the reason you write code is to get a test to succeed, and you should only write.
February Introduction This Careers-based activity has been arranged for several reasons, namely… IT IS ALREADY TIME TO START THINKING ABOUT NEXT.
Software engineering tools for web development Jim Briggs 1CASE.
FI-WARE Collaborative Tools Miguel Carrillo (Telefónica I+D)
National Alliance for Medical Image Computing Testing with CTest and CDash Julien Jomier Kitware Inc.
HP Quality Center Overview.
Concepts of Version Control A Technology-Independent View.
Version Control Systems Phil Pratt-Szeliga Fall 2010.
1 / 16 CS 425/625 Software Engineering Software Configuration Management Guest Speaker Jim Hunt November 17, 2008.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
ITK Lecture 12: Open Source & Cross Platform Software Development Methods in Image Analysis CMU Robotics Institute U. Pitt Bioengineering 2630 Spring.
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
Estimation Wrap-up CSE 403, Spring 2008, Alverson Spolsky.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering End-user Platform Steve Pieper Isomics, Inc.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering End-user Platform Steve Pieper Isomics, Inc.
Version control Using Git 1Version control, using Git.
Open Source Workshop1 IBM Software Group Working with Apache Tuscany A Hands-On Workshop Luciano Resende Haleh.
RMG Study Group Session I: Git, Sphinx, webRMG Connie Gao 9/20/
WIKI IN EDUCATION Giti Javidi. W HAT IS WIKI ? A Wiki can be thought of as a combination of a Web site and a Word document. At its simplest, it can be.
These materials are licensed under the Creative Commons Attribution-Noncommercial 3.0 Unported license (
Elaine Weyuker August  To determine which files of a large software system with multiple releases are likely to contain the largest numbers of.
Making a great Project 2 OCR 1994/2360. User Documentation Your User Documentation is the instructions for how to use the system you have created It is.
CS 114 – Class 02 Topics  Computer programs  Using the compiler Assignments  Read pages for Thursday.  We will go to the lab on Thursday.
Version control Using Git Version control, using Git1.
Integration with Enterprise Database Systems Tim Sullivan activePDF, Inc.
Version Control.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Software Process Stephen R. Aylward Kitware, Inc.
UPLOADING SPEEDSTEP CASE STUDY QUICK GUIDE HEIDI AMBROSE-BROWN.
William Schroeder, Ph.D. §, Andy Cedilnik §, Sebastien Barré, Ph.D. §, William Lorensen ‡, James Miller, Ph.D. ‡, Daniel Blezek, Ph.D. ‡ § Kitware Inc.,
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Software Process Stephen R. Aylward Kitware, Inc.
Walk through the reporting process for Barcelona Convention using Reportnet Miruna Badescu, Giuseppe Aristei.
The Insight Journal Luis Ibáñez KITWARE, Inc.. NAMIC and The Insight Journal.
Making a great Project 2 OCR 1994/2360. Implementation This is about how you make your system. It should have enough detail for a competent user to be.
Organizational Dashboard Roll up all information at various levels within the country or organization on your dashboard. Customizable your dashboards to.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Study Skills for School Success! Please note this information comes from another teacher:Miss Cantillon.
Software. Introduction n A computer can’t do anything without a program of instructions. n A program is a set of instructions a computer carries out.
OCR A Level F453: The function and purpose of translators Translators a. describe the need for, and use of, translators to convert source code.
NA-MIC National Alliance for Medical Image Computing Core 1b – Engineering Data Management Daniel Marcus Washington University.
© Trustees of Indiana University Released under Creative Commons 3.0 unported license; license terms on last slide. Take Group Projects to the Next Level.
Analysis Model Zhengyun You University of California Irvine Mu2e Computing Review March 5-6, 2015 Mu2e-doc-5227.
Barthélémy von Haller CERN PH/AID For the ALICE Collaboration The ALICE data quality monitoring system.
Outcome Agile Testing. 2© 2010 OutSystems – all rights reserved How do you ensure the quality of your delivery?
These materials are licensed under the Creative Commons Attribution-Noncommercial 3.0 Unported license (
ITK Examples ITK Meeting, Iowa Presenter(s). Motivation Demonstrate concepts rather than classes The Doxygen pages are usually pretty good, but don't.
STEPS TO SUCCESS.
Topic 2: Hardware and Software
Build and Test system for FairRoot
Component 1.6.
Sample Wiki Comments?.
Chapter 11: Software Configuration Management
All Partners Access Network
Google Plus (+) Inviting Others
Bomgar Remote support software
Understand the Programming Process
Quick Start Guide for Visual Studio 2010
Source Code Management
How to Create a KPI Dashboard Report
Design and Programming
Wiki “wiki wiki”: Hawaiian for “very quick”
Chapter 11: Software Configuration Management
Understand the Programming Process
POS 408 Week 1 Individual Assignment Individual: Console Display Message//tutorfortune.com Click on below link to buy
The Systems Life Cycle: Development and testing
EN Software Carpentry Python – A Crash Course Function, Classes, and Graphing.
Contacting CT Support with MS Lync Chat room
Presentation transcript:

ITK Examples ITK Meeting, Iowa Presenter(s)

Motivation Demonstrate concepts rather than classes The Doxygen pages are usually pretty good, but don't provide cut and paste solutions The new effort to crowdsource the Doxygen will help, but it is nice not only to have a snippet of code, but also a fully compilable example which can be run and the output inspected

Motivation (Cont.) The ITK Software Guide is exellent, but... Software GuideExamples Wiki CumulativeStand alone/compilable Large effort by few peopleNatively massively collaborative One release per decadeInfinitely rolling releases

VTK Examples VTK examples very successful Proof of concept of the system 68,461 hits Many of the mailing list questions can be answered by simply sending a link to an example (real statistics on this?)

Exemplar VTK Examples Data/Curvatures Data/Curvatures hes/QuadricDecimation hes/QuadricDecimation rs/GaussianSplat rs/GaussianSplat (Screenshots are tough because the pages are long...)

Structure of an Example page Code (.cxx file) CMakeLists.txt file So users can continue the copy->paste->try paradigm So users can see which libraries they must link to Image produced (to be continued...)

Example Images While ITK openly claims to not provide visualization capabilities, a visible, inspectable output of the examples is very helpful Users can see what they're getting into before they even look at a line of code Images also provide great regression testing QuickView class is written and will be provided in a module to allow this ITK->VTK visualization

Revision Control MediaWiki has built in revision history Aditionally, the wiki is scraped every night The result of the scrape is pushed to a git repository

Testing Just like core code, the examples must be tested to ensure they continue working as ITK evolves The examples are regression tested using an automatic testing framework main() is converted to a Test[Name]() function to be used with CTest

Testing All examples that produce images (a large majority of them) are tested against baseline images The images that are produced during the tests are automatically pushed to the wiki

Dashboards There are a few machines producing nightly CDash dashboards Multiple operating systems

Organization Categories on the Examples Wiki can match the new modularization effort It is helpful to name pages following this convention when possible: Wiki/ITK/Examples/Category/MainClassDemonstrated This goes slighty against the concept not class demonstration strategy, but the link can explain the concept, where the page name matches the class for backend organizational purposes

Catalog of Mailing List Answers The same questions are repeated over and over on the mailing list When a question is answered once (and it is reasonably general), an example should be created The next time the same question is asked, a link to the example should be enough to answer the question A big time saver!

Broken Section While it should be kept as small as possible, it serves several purposes If someone starts work on an example but doesn't fully complete it, it can be placed here for someone else to finish If someone has a question for the mailing list, rather than sending code in an , they can explain the problem in the and post a link to a broken example, which can either be fixed by someone who reads the question on the list, or by the person asking the question once they resolve their issue.

ITK Examples Wiki Has been seeded with ~50 examples