CTK-Hackfest-May-2010: Difference between revisions

From Commontk
Jump to navigationJump to search
m (→‎Plugins, Modules: redirect broken link (github.com/pieper ->github.com/commontk))
 
(35 intermediate revisions by 5 users not shown)
Line 1: Line 1:
== Event pictures ==
{|
|align="left"|This is a working meeting - the goal is to start writing code!
|[[File:DSC00681.JPG|thumb|300px|<big>CTK team hacking...</big>]]
|[[File:DSC00684.JPG|thumb|300px|<big>CTK team hacking...</big>]]
|}


== Introduction ==
== Introduction ==
Line 20: Line 27:


'''Attendees:''' (due to limited space, please contact the organizers to attend)
'''Attendees:''' (due to limited space, please contact the organizers to attend)
# Steve Pieper,                    BWH
# Steve Pieper,                    Isomics, Inc., USA
# Ivo Wolf,                        Hochschule Mannheim and DKFZ, Germany
# Ivo Wolf,                        Hochschule Mannheim and DKFZ, Germany
# Marco Nolden,                    DKFZ, Germany
# Marco Nolden,                    DKFZ, Germany
# Sascha Zelzer,                    DKFZ, Germany
# Sascha Zelzer,                    DKFZ, Germany
# Dan Blezek,
# Dan Blezek,                       Mayo Clinic, USA
# Daniele Giunchi,                  Italy
# Daniele Giunchi,                  Italy
# Alessandro Chiarini,              Italy
# Alessandro Chiarini,              Italy
Line 33: Line 40:
# Micheal Onken,                    OFFIS, Germany
# Micheal Onken,                    OFFIS, Germany
# Will Schroeder,                  Kitware
# Will Schroeder,                  Kitware
# Utkarsh Ayachit,                  Kitware
# Stephen Aylward,                  Kitware
# Stephen Alward,                   Kitware
# Julien Jomier,                   Kitware
# Julien Finet,                    Kitware
# Julien Finet,                    Kitware
# Jean-Christophe Fillion-Robin,    Kitware
# Jean-Christophe Fillion-Robin,    Kitware
# Oliver Kutter                    Siemens
# Nicolas Rannou                    Harvard


'''Future Events:''' The organizing committee invited a group of developers to get the CTK project started and we've believe we've reached capacity for this event.  Future hackfests will be announced in advance and we hope lots of people will be interested in participating.  The venue and activities at future hackfests will be determined based on the number of active participants in the project.
'''Future Events:''' The organizing committee invited a group of developers to get the CTK project started and we've believe we've reached capacity for this event.  Future hackfests will be announced in advance and we hope lots of people will be interested in participating.  The venue and activities at future hackfests will be determined based on the number of active participants in the project.
Line 56: Line 65:
* Cache/Database issues
* Cache/Database issues
* Application Hosting
* Application Hosting
* Unified CMake for DCMTK (Michael, JJ, Dan, Jc)
*Wednesday:
** MITK superbuild, with CTK widgets
** DCMTK CMakeFiles
** Stalled on findscu - integrating dcmtk, fetchdicom, sumatra ideas into CTK implementation
*Friday:
** Progress on ctkDICOM app (still much to do)
** MITK now uses superbuild and ctkDICOMIndexer (to be committed in the next few weeks)
** New demos of Service Class User (SCU) classes for DCMTK in CTK repository
** Need more testing data and "dummy" server that can be run during tests
** mingw build ctk for MAF to incorporate DCMTK in MAF (nightly build on mingw coming).


=== Integration ===
=== Integration ===
* Marco and Ivo
* Marco and Ivo
* Integrating CTK into MITK and Slicer
* Integrating CTK into MITK and Slicer, gimias, MAF
* Slicer's Execution Model into MITK
* Slicer's Execution Model into MITK
* Wednesday
** Started the CTK App Launcher: http://github.com/jcfr/CTK-AppLauncher
** Discussion of generalizing execution model independent of MRML, but may wait until next hackfest
* Friday
** More progress on app launcher (almost finished)  Need to think about the GPL for statically linked binary.
** discussions of unstructured grids for command line module i/o


=== Widgets ===
=== Widgets ===
* Julien
* Julien F.
* Review of CTKWidgets and [[Documentation/WidgetPlans|wishlist]]
* Review of CTKWidgets and [[Documentation/WidgetPlans|wishlist]]
* PythonQt
* PythonQt
* Wednesday
** progress on [[Documentation/ctkTransferFunctionWidget|transfer function]] editor
* Friday
** New functionality in transfer function editor
** Some new widgets from DICOM
** New Qt-based command line argument parser
** Log4Qt is now in CTK


=== Events and Communications ===
=== Events and Communications ===
* Patrick
* Patrick
* [[Documentation/Events|Inter- and Intra-process events]]
* [[Documentation/Events|Inter- and Intra-process events]]
* Sascha
* EventBus as a Service
* Wednesday
** patches for ZMQ and git repository
* Friday
** CMake'ifying the latest ZMQ - into github fork of ZMQ 
***http://github.com/PatrickCheng/zeromq2
** Included in CTK (builds on multiple platforms)
** requires cmake 2.8.1
** Initial tests, more applications to come
** Sascha, Daniele and Patrick to discuss
** MAF event bus integrated with ctk Plugin event bus (to be integrated with MAF after some more discussion and testing)


=== Plugins, Modules ===
=== Plugins, Modules ===
* Sasha
* Sascha
* [[Documentation/Plugins_And_Modules|Creating consensus interfaces to pass data, parameters, and results]]
* Plugin system: [http://github.com/commontk/CTK/wiki/CTK-Plugin-Framework Design Document]
** Xavier: Writing a plugin for a vtk bulls eye plot as a service
** Xavier: Writing an LDAP expression filter for use in the service framework
** Sascha: Finishing the service registry for the plugin framework
** Daniele: Integrating the MAF Event Bus as a plugin -> maybe discussion with Patrick needed
* Friday
** Plugin branch is merged with master in CTK/Libs/PluginFramework


=== Interoperability ===
=== Interoperability ===
* Oliver
* [[Documentation/Interfacing_Via_OpenGL|Interfacing systems at the OpenGL level (i.e. VTK and OpenInventor)]]
* [[Documentation/Interfacing_Via_OpenGL|Interfacing systems at the OpenGL level (i.e. VTK and OpenInventor)]]
* Wednesday
** VTK/Inventor integration - basic demo working, but many integration issues being investigated
* Friday
** Now working to load scene graphs into VTK render windows (tested volume rendering, transparent rendering...)
** Events, resize, etc being mapped from VTK to XIP
** need to have generic input setting (need to be able to export image data into XIP volumes)


=== Organization and Workflow ===
=== Organization and Workflow ===
Line 83: Line 144:
* Coding styles and conventions
* Coding styles and conventions
* Dashboard issues (setting up nightly and continuous build machines)
* Dashboard issues (setting up nightly and continuous build machines)
** Dash21 now has a nightly (documentation + coverage) and continuous dashboard
* Superbuild (Jc)
** Solve problem related to MITK/CTK
** Fix bug in FindDCMTK
* Wednesday
** Work on git documentation
** doxygen coming soon to doc.commontk.org
** superbuild/CTK support for multiple applications MITK, MAF, gimias
** Now 3 machines submitting to dashboard - JJ will do mac submission, SA and SP to do windows machines.
* Friday
** Doxygen documentation is online (being built at 7:00 am Eastern time) - perhaps it can be grouped automatically based on directory structure?
** Code coverage is reported in nightly build
** More nightly test machines to be set up (builds should enable all options for better testing)
** topic forks preferred in general over topic branches (good for experiments that you may delete).
** people should be careful not to push things to the main repository that might break other people's work (in the future we may move to pull requests and have fewer people with write access to the main repos)
** "Georgetown Breadsoda Snapshot" of CTK - 0.01 pre-alpha.
** KWStyle will be set up (Jc) - use Qt style for most classes unless explicitly derived from VTK or other package
** git workflow:
*** write a wiki page on commontk.org (or link to git hub wiki) and announce to mailing list to solicit other help.
*** fork ctk on github for topic specific work, then create and publish a branch to name your project topic - give write access to your collaborators for the topic.
*** keep rebasing your fork from CTK git (when needing features) into fork while adding new functionality
*** run tests with make Experimental - or create topic-specific mycdash dashboard and point your build submissions to that dashboard
*** when finished with new functionality:
**** do final rebase and test
**** announce to mailinglist with pointer to your forked project (URL of diffs on github)
**** push to master
**** Watch continuous and nightly builds and fix any issues that arise


== Agenda==
* Next hackfest Sept 13 - 17 in Barcelona? Bologna? Sophia-Antipolis?
 
* Also need a 'talkers' meeting
{| border="1" cellpadding="5"
|- style="background:#ebeced; color:black" align="center"
| style="width:5%" | '''Time'''
| style="width:19%" | '''Monday, May 17'''
| style="width:19%" | '''Tuesday, May 18'''
| style="width:19%" | '''Wednesday, May 19'''
| style="width:19%" | '''Thursday, May 20 '''
| style="width:19%" | '''Friday, May 21'''
|-
| style="background:#ffffdd; color:black"|'''07:30-08:00'''
| style="background:#ebeced; color:black"|  
| style="background:#b4d597; color:black"| Breakfast
| style="background:#b4d597; color:black"| Breakfast
| style="background:#b4d597; color:black"| Breakfast
| style="background:#b4d597; color:black"| Breakfast
|-
| style="background:#ffffdd; color:black"|'''08:00-10:00'''
| style="background:#ebeced; color:black"|
| style="background:#fff6a6; color:black"|
| style="background:#fff6a6; color:black"|
| style="background:#fff6a6; color:black"|
| style="background:#fff6a6; color:black"|
|-
| style="background:#ffffdd; color:black"|'''10:00-10:30'''
| style="background:#ebeced; color:black"|
| style="background:#b4d597; color:black"| Coffee
| style="background:#b4d597; color:black"| Coffee
| style="background:#b4d597; color:black"| Coffee
| style="background:#b4d597; color:black"| '''Project Review'''
|-
| style="background:#ffffdd; color:black"|'''10:30-12:30'''
| style="background:#ebeced; color:black"|
| style="background:#fff6a6; color:black"|
| style="background:#fff6a6; color:black"|
| style="background:#fff6a6; color:black"|
| style="background:#fff6a6; color:black"|
|-
| style="background:#ffffdd; color:black"|'''12:30-13:30'''  
| style="background:#ebeced; color:black"|
| style="background:#b4d597; color:black"| Lunch
| style="background:#b4d597; color:black"| Lunch
| style="background:#b4d597; color:black"| Lunch
| style="background:#b4d597; color:black"| '''Adjourn'''
|-
| style="background:#ffffdd; color:black"|'''13:30-15:30'''
| style="background:#ebeced; color:black"|
| style="background:#fff6a6; color:black"|
| style="background:#fff6a6; color:black"|
| style="background:#fff6a6; color:black"|
| style="background:#ebeced; color:black"|
|-
| style="background:#ffffdd; color:black"|'''15:30-16:00'''
| style="background:#b4d597; color:black"| '''Opening'''
| style="background:#b4d597; color:black"| Coffee
| style="background:#b4d597; color:black"| Coffee
| style="background:#b4d597; color:black"| Coffee
| style="background:#ebeced; color:black"|
|-
| style="background:#ffffdd; color:black"|'''16:00-18:00'''
| style="background:#fff6a6; color:black"|
| style="background:#fff6a6; color:black"| Clinic Visit
| style="background:#fff6a6; color:black"| Clinic Visit
| style="background:#fff6a6; color:black"| Clinic Visit
| style="background:#ebeced; color:black"|
|-
| style="background:#ffffdd; color:black"|'''Evening Event'''
| style="background:#b4d597; color:black"|  TBA
| style="background:#b4d597; color:black"|  TBA
| style="background:#b4d597; color:black"|  TBA
| style="background:#b4d597; color:black"|  TBA
| style="background:#ebeced; color:black"|
|}


== Travel & Hotel ==
== Travel & Hotel ==

Latest revision as of 10:28, 12 October 2010

Home < CTK-Hackfest-May-2010

Event pictures

This is a working meeting - the goal is to start writing code!
CTK team hacking...
CTK team hacking...


Introduction

Date: May 17-21

Location:

Georgetown University, ISIS Center
2115 Wisconsin Ave. NW. Ste 603, Washington, DC 20007 (Google map)
USA

Goal: A follow on to the wildly successful March 2010 pre-hackfest.

Requirements: attendees must be willing to spend their time with the details of dicom, git, cmake, c++, Qt, vtk, itk, openinventor, and related technologies. People who do not feel qualified for this are politely not invited :)

Group size: maximum 20 participants so we can have a manageable working meeting. The organizing committee will invite and select participants based on input from TheTeam.

Organizers: Ivo Wolf, Steve Pieper, Stephen Aylward

Site Hosts: Kevin Cleary and Patrick Cheng

Attendees: (due to limited space, please contact the organizers to attend)

  1. Steve Pieper, Isomics, Inc., USA
  2. Ivo Wolf, Hochschule Mannheim and DKFZ, Germany
  3. Marco Nolden, DKFZ, Germany
  4. Sascha Zelzer, DKFZ, Germany
  5. Dan Blezek, Mayo Clinic, USA
  6. Daniele Giunchi, Italy
  7. Alessandro Chiarini, Italy
  8. Pedro Omedas, Spain
  9. Xavier Planes, Spain
  10. Patrick Cheng, Georgetown
  11. Ziv Yaniv, Georgetown
  12. Micheal Onken, OFFIS, Germany
  13. Will Schroeder, Kitware
  14. Stephen Aylward, Kitware
  15. Julien Jomier, Kitware
  16. Julien Finet, Kitware
  17. Jean-Christophe Fillion-Robin, Kitware
  18. Oliver Kutter Siemens
  19. Nicolas Rannou Harvard

Future Events: The organizing committee invited a group of developers to get the CTK project started and we've believe we've reached capacity for this event. Future hackfests will be announced in advance and we hope lots of people will be interested in participating. The venue and activities at future hackfests will be determined based on the number of active participants in the project.

Preparation

Developers should bring a laptop with the current CTK source code downloaded and built.

Use the CTK developers mailing list to discuss build issues and topics for ongoing work.

Topics and Projects

Pick up threads of discussion and activity from Pre-Hackfest

General set of topics (attendees, please flesh this out with your own ideas!)

DICOM

  • Marco
  • Cache/Database issues
  • Application Hosting
  • Unified CMake for DCMTK (Michael, JJ, Dan, Jc)
  • Wednesday:
    • MITK superbuild, with CTK widgets
    • DCMTK CMakeFiles
    • Stalled on findscu - integrating dcmtk, fetchdicom, sumatra ideas into CTK implementation
  • Friday:
    • Progress on ctkDICOM app (still much to do)
    • MITK now uses superbuild and ctkDICOMIndexer (to be committed in the next few weeks)
    • New demos of Service Class User (SCU) classes for DCMTK in CTK repository
    • Need more testing data and "dummy" server that can be run during tests
    • mingw build ctk for MAF to incorporate DCMTK in MAF (nightly build on mingw coming).

Integration

  • Marco and Ivo
  • Integrating CTK into MITK and Slicer, gimias, MAF
  • Slicer's Execution Model into MITK
  • Wednesday
  • Friday
    • More progress on app launcher (almost finished) Need to think about the GPL for statically linked binary.
    • discussions of unstructured grids for command line module i/o

Widgets

  • Julien F.
  • Review of CTKWidgets and wishlist
  • PythonQt
  • Wednesday
  • Friday
    • New functionality in transfer function editor
    • Some new widgets from DICOM
    • New Qt-based command line argument parser
    • Log4Qt is now in CTK

Events and Communications

  • Patrick
  • Inter- and Intra-process events
  • Sascha
  • EventBus as a Service
  • Wednesday
    • patches for ZMQ and git repository
  • Friday
    • CMake'ifying the latest ZMQ - into github fork of ZMQ
    • Included in CTK (builds on multiple platforms)
    • requires cmake 2.8.1
    • Initial tests, more applications to come
    • Sascha, Daniele and Patrick to discuss
    • MAF event bus integrated with ctk Plugin event bus (to be integrated with MAF after some more discussion and testing)

Plugins, Modules

  • Sascha
  • Plugin system: Design Document
    • Xavier: Writing a plugin for a vtk bulls eye plot as a service
    • Xavier: Writing an LDAP expression filter for use in the service framework
    • Sascha: Finishing the service registry for the plugin framework
    • Daniele: Integrating the MAF Event Bus as a plugin -> maybe discussion with Patrick needed
  • Friday
    • Plugin branch is merged with master in CTK/Libs/PluginFramework

Interoperability

  • Oliver
  • Interfacing systems at the OpenGL level (i.e. VTK and OpenInventor)
  • Wednesday
    • VTK/Inventor integration - basic demo working, but many integration issues being investigated
  • Friday
    • Now working to load scene graphs into VTK render windows (tested volume rendering, transparent rendering...)
    • Events, resize, etc being mapped from VTK to XIP
    • need to have generic input setting (need to be able to export image data into XIP volumes)

Organization and Workflow

  • Steve and Jean-Christophe
  • Conventions for using git. Ideas: gitwash example, dead simple example, vtk plans.
  • Coding styles and conventions
  • Dashboard issues (setting up nightly and continuous build machines)
    • Dash21 now has a nightly (documentation + coverage) and continuous dashboard
  • Superbuild (Jc)
    • Solve problem related to MITK/CTK
    • Fix bug in FindDCMTK
  • Wednesday
    • Work on git documentation
    • doxygen coming soon to doc.commontk.org
    • superbuild/CTK support for multiple applications MITK, MAF, gimias
    • Now 3 machines submitting to dashboard - JJ will do mac submission, SA and SP to do windows machines.
  • Friday
    • Doxygen documentation is online (being built at 7:00 am Eastern time) - perhaps it can be grouped automatically based on directory structure?
    • Code coverage is reported in nightly build
    • More nightly test machines to be set up (builds should enable all options for better testing)
    • topic forks preferred in general over topic branches (good for experiments that you may delete).
    • people should be careful not to push things to the main repository that might break other people's work (in the future we may move to pull requests and have fewer people with write access to the main repos)
    • "Georgetown Breadsoda Snapshot" of CTK - 0.01 pre-alpha.
    • KWStyle will be set up (Jc) - use Qt style for most classes unless explicitly derived from VTK or other package
    • git workflow:
      • write a wiki page on commontk.org (or link to git hub wiki) and announce to mailing list to solicit other help.
      • fork ctk on github for topic specific work, then create and publish a branch to name your project topic - give write access to your collaborators for the topic.
      • keep rebasing your fork from CTK git (when needing features) into fork while adding new functionality
      • run tests with make Experimental - or create topic-specific mycdash dashboard and point your build submissions to that dashboard
      • when finished with new functionality:
        • do final rebase and test
        • announce to mailinglist with pointer to your forked project (URL of diffs on github)
        • push to master
        • Watch continuous and nightly builds and fix any issues that arise
  • Next hackfest Sept 13 - 17 in Barcelona? Bologna? Sophia-Antipolis?
  • Also need a 'talkers' meeting

Travel & Hotel

Travel:

  1. For flights you can use Dulles Airport (code: IAD) (most international flights), National Airport (code: DCA) (closest), or Baltimore Airport (code: BWI) (alternative international airport but the furthest away)
    • DCA is about 7 miles away
      • Travel option 1: Taxi ($25)
      • Travel option 2: Metro blue line ($1.35 direction Largo Town, see map) to Rosslyn, and then take a taxi ($10)
    • IAD is about 23 miles away from the hotel
      • Travel option 1: Taxi/Super Shuttle ($50)
      • Travel option 2: Bus 5A ($3-$4) to Rosslyn, then take a Taxi ($10)

Hotel

  1. We are reserving a room block at the Georgetown Holiday Inn: http://www.higeorgetown.com/
    • Room rate Monday to Friday May 17-21 will be 169 per night: single or double
      • We need to book 10 rooms to get this rate
      • Please sign up on the Wiki if you are attending and email me your hotel needs
    • Room rate the weekend before (May 14-16) will be 149 per night: single or double
    • Taxes are 14.5% additional
  2. The meetings will be next door to the hotel at our research center

Connectivity

  1. We will provide both wired and wireless connection