Table of Contents Recent Releases Editor's Note
Total Page:16
File Type:pdf, Size:1020Kb
Issue 29Issue • April24 • Jan2013 2014 TABLE OF CONTENTS RECENT RELEASES Editor's Note ............................................................................... 1 VTK 6.1.0 RELEASED Kitware and the entire VTK team are happy to announce the Recent Releases ......................................................................... 1 release of VTK 6.1.0. The release fixes bugs and adds fea- tures on top of the more modular code structure of version Use of CMake at Canonical ........................................................ 2 6.0. The source, data, and new vtkpython binary packages can be downloaded from VTK's website. Meta-configuration of C/C++ projects with CMake .................. 4 This release introduces the vtkDax accelerator module and vtkSMP multi-threaded filters. The Dax interface allows VTK Packaging VistA for Debian ....................................................... 7 to offload work to Sandia's Dax framework for GPGPU and multi-core data processing. In addition, Inria's vtkSMP brings CMake and the Wolfram Language ......................................... 10 a framework for fine-grained work-stealing parallel process- ing inside of unstructured data processing filters. Writing STL Files from ITK for 3D Printing .............................. 13 Also in this release, VTK takes a giant leap onto the web processing frontier. ParaView's core web interface and UVis: Web-based Analysis and Visualization for Large widget components have been promoted to VTK, and new Climate and Geospatial Datasets ............................................ 14 features have been added such as an integrated, object- oriented python framework for writing dashboard tests of Kitware News ............................................................................ 17 web applications; a simple python-based launcher and file upload server; and a viewport that drives the VGL (webgl- EDITOR'S NOTE based) rendering library developed by Kitware and NYU. Beginning with this release, Kitware published runnable binaries of VTK's python shell interface for Mac, Windows, At Kitware, we are continuing to make new developments and Linux operating systems, along with the usual source, in medical computing, scientific computing, data manage- data, and documentation packages. These replace and ment, software process, informatics, and computer vision improve upon the old vtk-tcl.exe windows-only package. that we are pleased to share with you. For one, we released new versions of VTK, CMake, and ITK. We also announced funding for projects that will advance the field of medical computing in areas such as neurosurgery simulation and longitudinal image analysis. In addition, we attended events including SPIE Medical Imaging 2014, HackNC, Conference on Data Analysis 2014, VIZBI 2014, GPU Technology Conference, and 2014 Oil & Gas HPC Workshop. We also hosted a CMake tutorial in Santa Fe, presented live computer vision webinars, and had members of Kitware SAS exhibit our visualization, data processing, and modeling expertise at an Inria Industry Meeting. More information regarding our presentations, tutorials, and exhibitions at these events can be found in the Kitware News section at www.kitware.com/news. Example of ParaView's surface LIC in action (http://www.vtk.org/Wiki/ParaView/Line_Integral_Convolution) CMAKE 3.0-RC1 READY FOR TESTING CMake 3.0 has entered the release candidate stage. USE OF CMAKE AT CANONICAL Among the significant changes made in CMake 3.0 are the following: By Jussi Pakkanen (Canonical) • Compatibility options supporting code written for CMake versions prior to 2.4 have been removed. • The CMake language has been extended with *Bracket Canonical is most known for Ubuntu, which is the most Argument* and *Bracket Comment* syntax inspired by popular desktop Linux distribution in the world. Its main Lua long brackets. product is very different than most software and solution • The CMake documentation has been converted to reStruc- vendors. Consequently, the way software is created at turedText and now uses Sphinx generation. Canonical is quite unusual. • Generators for Visual Studio 10 (2010) and later were Rather than having one or a few grand source trees, renamed to include the product year. Canonical has many individual projects. These projects are • A new "CodeLite" extra generator is available for use with combined into a cohesive whole using standard Debian the Makefile or Ninja generators. packaging tools. Another uncommon thing is that most employees work from home and come from every corner of • A new "Kate" extra generator is available for use with the the world. It is normal in a development team of five people Makefile or Ninja generators. to have participants from two or three different continents. • The "add_library()" command learned a new "INTERFACE" Teams are given a rather large degree of autonomy regard- library type. ing how they organize and implement their work items, as The release notes can be found on: long as they stay within certain agreed upon limits. While http://www.cmake.org/cmake/help/v3.0/release/3.0.0.html. this is great for initial development efficiency, it may cause friction when people move between projects because the ITK 4.5.1 RELEASED tools vary between them. On behalf of the Insight Toolkit Community, we are happy to announce the release of ITK 4.5.1. ITK 4.5.1 is a patch In regards to build systems, most of Canonical’s projects release that addresses several critical issues. For one, it helps previously used GNU Autotools. Some of the newer ones, SimpleITK build with MacOSX Clang 5.0. It also fosters Visual however, used CMake and a few Qt applications used qmake. Studio builds of MINCIO and SCIFIO, release builds with GCC Build system selection was usually based on the very simple 4.8, and TIFF compression. algorithm of going with the one with which the project ini- tiator was most familiar. To download ITK 4.5.1, visit www.itk.org. Questions and com- ments are welcome on the ITK mailing lists. The next feature THE RACE TO STANDARDIZATION release, ITK 4.6.0, is scheduled for June. It will include more In late spring of 2012, Canonical started to really focus on patch releases. bringing Ubuntu to phones. One major infrastructure piece in this puzzle was the Mir Display Server. When the project SIMPLE ITK 0.8.0 RELEASED started, for possibly the first time, there was an actual Kitware is pleased to announce the release of SimpleITK debate about what build system to use. Eventually, CMake 0.8.0. SimpleITK is a simplified layer built on top of ITK. was chosen due to its flexibility and good cross compilation By providing binaries for several wrapped languages, it support. facilitates ITK's use in rapid prototyping, education, and interpreted languages. It should be noted that Canonical's use of CMake is again slightly different than with most corporate entities. With The 0.8.0 release includes several improvements to SimpleITK such entities, the choice is driven by CMake's multi-platform including support for events and command call-backs and support, especially for certain non-POSIX operating systems support for compiling OSX Mavericks by automatically from the northwestern United States that seem to be quite enabling C++11. More information about these improve- popular on the desktop. Canonical's projects are, almost ments can be found on http://itk.org. without exception, designed to be Linux only. Even in this The release also improves support for C++11 and for single-platform case, CMake was deemed to provide a better setting dimensional vector parameters as scalars in the OOP developer experience than its competition. interface. Additional release improvements include the Positive results from Ubuntu and a few other projects even- availability of threshold management in automatic thresh- tually led to the decision to make CMake the standardized olding filters and the use of ITK 4.5.1. build system across all Canonical projects. Given earlier For additional information on the release, visit http://www. discussions on the issue, this was expected to raise some itk.org/SimpleITKDoxygen/html/CommandPage.html. objections from people whose experiences were mostly with 2 other build systems. Once the decision was made, the actual Another issue that was raised had to do with CMake's transition occurred with little opposition. language syntax. While expressing basic build setup was considered straightforward, coding new functionality was Currently, CMake is the standard build system for all projects deemed trickier than necessary. Fortunately, most build at Canonical. There are still some old projects that use other issues have been solvable with the core modules that come build systems. However, a gentle and loving but continuously with CMake. increasing pressure is being applied to them to transition. This process is expected to be finalized within a few months. Overall, the transition has been successful. While there has been no formal evaluation of how the transition has changed PROBLEMS ENCOUNTERED AND LESSONS developer productivity, informal discussions seem to indicate LEARNED that after the initial adjustment period, most people feel at The single biggest selling point of CMake to people accus- home and enjoy the benefits provided by Ninja and other tomed to other build systems was something no one ever nice features offered by CMake. expected. It turned out to be the Ninja backend. Unix devel- opers have used Make for so long that they have become accustomed to its disadvantages. One of these disadvan- tages is that Make is actually quite slow. That is not to say that any single implementation of Make is slow, but rather that Make as a system is slow. The reasons for this are varied and interesting, but they basically boil down to certain design decisions that turn out to be impossible to implement efficiently. If you have even a moderate sized code base, Make can take tens of seconds just to determine that the build is up-to-date and that nothing needs to be done. Ninja can determine the same in a fraction of a second. Showing this to developers made them immediately see the benefits of transitioning to CMake.