543
I Use This!
Activity Not Available

News

Analyzed about 1 year ago. based on code collected about 1 year ago.
Posted over 10 years ago by Sandy McKenzie
Introduction and Background Luis Ibáñez, Matt McCormick, Jean-Christophe Fillion-Robin, and Aashish Chaudhary attended the Scientific Computing with Python (SciPy) 2014 conference in Austin, Texas, between July 6th - July 12th. This year’s ... [More] conference was again the largest ever, with registration reaching its cap at over 450 attendants, a 50% increase over last year. The main conference was extended from two to three days, and it was again preceded by two days of tutorials and followed by two days of sprints. Themes of this year’s conference were Geospatial Data in Science Track and Scientific Computing in Education. There was also general scientific Python content in addition to the domain specific mini-symposia. Kitware was activily involved in the conference. Not only was Kitware a sponsor, but Luis, Matt, JC, and Aashish taught a tutorial on "Reproducible Science - Walking the Walk."  In addition, Matt was a Birds of a Feather (BoF) Committee Chair, on the Program Committee, and Chair of the Vision, Visualization, and Imaging Mini-Symposium. JC presented a poster on CMake-ified CPython, and Aashish presented a talk on ClimatePipes and OpenClimateGIS, as well as a poster on UVis.  Matt and Luis were co-authors on a SimpleITK talk. We also participated in BoF sessions, the software sustainability workshop, and sprints. Tutorials Luis, Matt, JC, and Aashish taught a tutorial on Reproducible Science - Walking the Walk. We co-taught the tutorial with Ana Nelson from dexy and Steve Smith from GitHub. The hands-on tutorial focused on training reproducible research warriors on the practices and tools that make experimental verification possible with an end-to-end data analysis workflow.  Also, the the tutorial exposed attendees to open science methods during data gathering, storage, and analysis up to publication into a reproducible article. In honor of one of the historical reproducible research participants, Antonie van Leeuwenhoek, we started by collecting images of tardigrades by transforming participants’ cellphones into microscopes with a drop of water. These lovable creatures, invisible to the naked eye, were discovered after magnified. The images collected were uploaded to an open access data sharing service, and an exercise on how to retrieve the images via a REST API was completed via IPython Notebook. Next, we discussed how to set up a reproducible computation environment and a Docker image to analyze the images. The images were processed with IPython Notebooks and SimpleITK, and best coding practices were addressed such as methods for code re-usability. Next, version control via Git and GitHub and unique identifiers were discussed. The versioned scripts were instrumented with regression tests, and participants ran the example repository test suite. The data and analysis results were integrated into a narrative via the literate programming tool, Dexy, and the Docker container. Finally, the entire work was submitted to an open science publication, the Insight Journal.   Tardigarde (above moss clump) uncovered by a cell phone camera microscope. We had over 60 enthusiastic participants, who worked in pairs. Following the tutorial, we had lunch with Fernando Perez and Brian Granger, of IPython fame, who gave us some great feedback.  We published the tutorial repository on Zenodo to obtain a citable DOI for our work, which includes links to supplemental material including the website, videos, and data.   Full house of participants at the reproducible research tutorial. We also attend excellent tutorials covering topics like the new interactive widgets in the IPython notebook and teaching techniques with the IPython notebook. All tutorials have videos online and most have GitHub repositories where their material is hosted. [Less]
Posted over 10 years ago by Sandy McKenzie
In a Windows Blog post by Adam Denning, Microsoft recently announced Windows support for CMake. Microsoft’s fork of CMake, CMakeMS, provides developers with the ability to target Windows Store and Windows Phone apps. It is available on CodePlex. ... [More] According the blog, working with Kitware and the CMake community, Microsoft plans to “incorporate feedback and integrate it soon in the public CMake repository.” CMake is the cross-platform, open-source build system designed to build, test, and package software. In June, it reached a milestone with the release of version 3.0. Recently, Kitware announced the availability of CMake 3.0.1 for download. The new release includes several bug fixes, which are described in a previous post on Kitware’s blog. To download the latest version of CMake, please visit CMake’s download page. [Less]
Posted over 10 years ago by Robert Maynard
We are pleased to announce that CMake 3.0.1 is now available for download.   The change log page for this bug-fix only release is here: http://public.kitware.com/Bug/roadmap_page.php?version_id=123 Please use the latest release from our ... [More] download page http://cmake.org/cmake/resources/software.html    Thanks for your support!   ------------------------------------------------------------------------- Changes in 3.0.1 since 3.0.0: Adam Strzelecki (1):       Ninja: Remove CMake includes from explicit depends (#14972) Bob E (1):       KWSys SystemInformation: No SA_RESTART on QNX Brad King (10):       cmake: Fix read-after-free while checking command-line arguments       Fortran: Add support for GNU >= 4.9 compressed modules (#14975)       bootstrap: Clarify name of configured source directory       bootstrap: Fix "make test" and "make package" targets (#14989)       UseSWIG: Fix check for noproxy flag (#14990)       CMakeExpandImportedTargets: Do not read property on non-target (#15008)       MSVC: Fix linking of DLLs on WinCE (#15013)       Xcode: Fix static library creation for Xcode 6 (#15038)       Check*CompilerFlag: Avoid ';' in common pattern (#15048)       CMake 3.0.1 Chuck Atkins (1):       cmcurl: Fix a build failure with the Cray compiler on Linux (#15026) Mathieu MARACHE (1):       FindQt4: Add nativewifi and qtga plugins Stephen Kelly (1):       QNX: Add missing flags for configurations and artifact creation. Tim Blechmann (1):       OS X: Install CFBundles as complete directories -------------------------------------------------------------------------   [Less]
Posted over 10 years ago by Jean-Christophe Fillion-Robin
Kitware is not only the lead developer of VTK, but we are also heavy users of it in our open-source applications, commercial consulting projects, and grant-funded research into scientific visaulization, informations, high-performance computing ... [More] , computer vision, and medical image analysis. Part of our commitment to the success of VTK and our other projects is indicated by the tutorials and open-acess developers meetings we host.  In this blog we describe a recent open-access developers meeting that we held to help bring together the VTK and the 3DSlicer communities. Kitware is a primary developer of 3DSlicer, an open-source tool for medical image segmentation, registration and visualization. Using VTK, CTK, ITK, and CMake, as well as our software processes, it has become the de facto standard in research labs around the world and for rapidly prototyping commercial systems. In the last 12 months, it has been downloaded over 62,000 times.  3DSlicer has over 1,600 subscribers to its email lists. On July 15th  2014, the Slicer extension developers had the opportunity to meet with the VTK core developers to discuss the upgrade of 3DSlicer and 3DSlicer's extensions to VTK6. To learn more about the new functionalities offered by VTK6, please read our previous blog post. To learn about transitioning your existing code to VTK6, please review the VTK 6 Migration Guide.     The hangout was hosted using the 3DSlicer BarCamp (a G+ community) and was orchestrated by Kitware's Jean-Christophe Fillion-Robin [1].  It was very productive, and the main points discussed during that hangout are summarized below. 1) François Budin [2] had questions related to the transition of the ShapePopulationViewer extension that he developed for Slicer. Using the material previously presented on the VTK user maling list and illustrated in a gist, Dr. Berk Geveci [3] and Julien Finet [4]  were able to identify the problem and propose a solution. The input of the pipeline associated the “glyphMapper” was not up-to-date. 2) Nicole Aucoin [5] discussed with Dr. Berk Geveci [3] and Dr. Will Schroeder [6] how the existing VTK widget framework could be abstracted to facilitate the integration of VTK widgets in the Slicer displayable manager infrastructure. After reviewing Nicole's proposal that was already presented on the VTK developer list, we concluded that as soon as a rough implementation is presented, a follow-up meeting would be scheduled. 3) Steve Pieper [7] asked a question related to the change in the VTK python wrapping.  It was triggering an error in the 3D Slicer continuous integration dashboard. Dr. Berk Geveci [3] explained that the python wrapping layer, maintained by Dr. David Gobbi [8], has been improved to output explicit messages when the type of data passed to a method was ambiguous. Additionally, Dr. Berk Geveci [3] talked about the VTK6 roadmap for the coming years. This roadmap includes, but is not limited to, the following: Transition to OpenGL 2 & 3 to better support mobile platforms and the removal of the fixed pipeline, while maintaining most of the API's backward compatibility. Introduction of a new volume mapper, already available for testing in VTK master. Modernization of the widget interaction layer to support multi-touch interface, the Leap Motion interface, and a VR interface. Moving forward, we plan on having several follow-on discussions for people who wish to contribute directly to VTK 6. The exact format of those open discussions is being determined. We encourage all of those who are interested in our software libraries and applications to join the corresponding email lists.   If you would like to learn more about how Kitware can help your work via our software processes, applications, and research; please do not hesitate to contact [email protected].   References   [1] Jean-Christophe Fillion-Robin is a lead developer of 3D Slicer and R&D engineer at Kitware Inc.   [2] François Budin is a research associate, at NIRAL, psychiatry departement at UNC   [3] Dr. Berk Geveci leads the scientific visualization and informatics teams at Kitware Inc.   [4] Julien Finet is a lead developer of 3D Slicer and an R&D engineer at Kitware Inc.   [5] Nicole Aucoin is a research associate at the Radiology department of Brigham and Women's Hospital   [6] Dr. Will Schroeder is the president, CEO and co-founder of Kitware Inc. [7] Dr. Steve Pieper is the Chief Architect of 3D Slicer and CEO of Isomics and Engineering Core Pi at the Neuroimage Analysis Center of Brigham and Women's Hospital [8] Dr. David Gobbi is the founder of Atamai Inc, a research scientist at Calgary Image Processing and Analysis Centre, and a research scientist at the Seaman Family MR Research Centre [Less]
Posted over 10 years ago by Jean-Christophe Fillion-Robin
Community, as well as small-team, software development faces many challenges.  Kitware is constantly developing and looking for new ways to ensure that quality software processes are readily available and can be seemlessly integrated into any ... [More] project, large or small.  Our efforts have lead to the development of tools such as CMake and CDash, as well as the identification of several outstanding tools and processes that have been developed by others.  Nevertheless, software development mistakes can and will happen, and this blogs explains one method for addressing them. If, at some point in the lifetime of your project, you realize (perhaps thanks to a CDash regression test) that an error has been introduced into your project, it can sometimes be difficult to pintpoint exactly which commit caused it.  At a high level, the approach to resolving such errors is to: Identify a version of the software that does not exhibit the error Thoroughly analyze the subsequent software changes, until you find the faulty commit This approach can be accomplished with standard tools, if you have very few commits to check; however, in highly active development environments and particularly for community development efforts, a massive number of commits might need to be reviewed. Luckily, git provides us with the 'bisect' module, allowing us to find, by binary search, the change that introduced a bug given a 'good' commit object name prior to the error and a later 'bad' commit object name that occurred after the introduction of the error. Source: https://www.kernel.org/pub/software/scm/git/docs/git-bisect.html Example On July 10, 2013, within Slicer, the hash tag associated with the ITKv4 external project was updated (r22163) to point to the tip of the release branch (41abd503). The next day, the MacOSX dashboard was complaining. Exactly 289 changes were introduced by updating the ITK external project,. Therefore, checking each change or looking at the history wasn't an option. Indeed, we weren't sure what to look for to try to identify the cause of the regression. We then decided to try using git bisect. Git bisect provided us with a manual and an automatic mode. In this case, we used the automatic mode, but we will briefly describe the "manual" mode here. Manual mode $ git bisect start $ git bisect bad 41abd5 $ git bisect good 1866ef4 # Last version tested that was good Bisecting: 143 revisions left to test after this (roughly 7 steps) [21cc50a7] Merge topic 'ImageScanlineIteartorForImageCopy' First, build and test the above. Then, based on the result, you can use either use $ git bisect good or $ git bisect bad until you find the faulty commit. If, for some reason, the current commit can't be tested, you can use $ git bisect skip Automatic mode While very powerful, the manual mode can still be tedious and repetitive. To use the automatic mode, you first need to create a script that will return 0, 1, or 255 based on the outcome of a set of commands, allowing you to determine whether or not the current checkout is problematic . In this case, we used the following script and ran the bisection using $ git bisect start 41abd5 1866ef $ git bisect run /Users/kitware/Dashboards/Nightly/find_itkv4_regression.sh Et voila, it returns that the commit introducing the regression was 5bfdff361. After some investigation to try to understand the source of the problem, we created an issue on the ITK tracker: https://itk.icts.uiowa.edu/jira/browse/ITK-3172 We then decided to propose a patch using gerrit: http://review.source.kitware.com/#/c/11942/ Finally, in the timespan of 3 hours, after 8 patchsets, 24 comments, and few emails, the reviewed and polished ITK commit f49a7db7 was integrated into the release and the master branch of ITK. Then, the Slicer external project was updated accordingly (r22171), and the error was resolved. Kitware is proud to be maintainers of the ITK and Slicer open-source efforts.  We are dedicated to their success, and our tools and practices, as well as numerous other outstanding software development and debugging tools and practices being developed around the world, are invaluable to our open-source and private consulting efforts. If we can help you with developing, maintaining, or debugging your code; we welcome the opportunity to provide consulting services to your project.  For more information, email [email protected]. [Less]
Posted over 10 years ago by Wes Turner
As a customer or colleague of Kitware, you are undoubtedly aware of our commitment to open source embodied in repositories such as VTK, ITK, and Paraview. You are probably also aware of CMake, CTest, and CDash, some of the tools that we developed ... [More] for managing these projects and the large, distributed contributor bases that support them. What you may not be aware of is the developing use of the CMake family and our software processes in other, less traditonal, open source communities. Providing open source community development support and adapting, re-targeting, and standing up our tools in these settings is a growing component of our open source activity. It is also one that promises to extend the benefits of open source to other vibrant, growing, and diverse ecosystems. To see these tools in action, check out the blogs and videos made by our own Joe Snyder for OSEHRA, the Open Source Electronic Health Record Alliance. Joe explains to the OSEHRA community (1) how to use open source tools and processes to generate tests for Mumps code, graphical environments, and browser based applications; and (2) how to drive these tests via CMake/CTest/CDash, submit code for open source review, and stand up a testing environment where the code can be exercised. These tutorials are part of Kitware's support for the burgeoning OSEHRA community as we pursue open source for electronic health records.   [Less]
Posted over 10 years ago by Wes Turner
As a customer or colleague of Kitware, you are undoubtedly aware of our commitment to open source embodied in repositories such as VTK, ITK, and Paraview. You are probably also aware of CMake, CTest, and CDash, some of the tools that we developed ... [More] for managing these projects and the large, distributed contributor bases that support them. What you may not be aware of is the developing use of the CMake family and our software processes in other, less traditional, open source communities. Providing open source community development support and adapting, re-targeting, and standing up our tools in these settings is a growing component of our open source activity. It is also one that promises to extend the benefits of open source to other vibrant, growing, and diverse ecosystems. To see these tools in action, check out the blogs and videos made by our own Joe Snyder for OSEHRA, the Open Source Electronic Health Record Alliance. Joe explains to the OSEHRA community (1) how to use open source tools and processes to generate tests for Mumps code, graphical environments, and browser based applications; and (2) how to drive these tests via CMake/CTest/CDash, submit code for open source review, and stand up a testing environment where the code can be exercised. These tutorials are part of Kitware's support for the burgeoning OSEHRA community as we pursue open source for electronic health records.   [Less]
Posted over 10 years ago by Robert Maynard
On behalf of myself, Ken, Bill, Brad, David, Alex, Eike, Steve, Zach, Ben, Peter, Nils, and the rest of the CMake team from all around the world, we are pleased to announce that CMake 3.0.0 is now available for download at: ... [More]   http://www.cmake.org/files/v3.0/?C=M;O=D Documentation is available at:   http://www.cmake.org/cmake/help/v3.0 Full release notes are published at   http://www.cmake.org/cmake/help/v3.0/release/3.0.0.html Some of the more significant features of CMake 3.0 are: Compatibility options supporting code written for CMake versions prior to 2.4 have been removed. The CMake language has been extended with *Bracket Argument* and  *Bracket Comment* syntax inspired by Lua long brackets. The CMake documentation has been converted to reStructuredText and uses Sphix generation. Generators for Visual Studio 10 (2010) and later were renamed to include the product year like generators for older VS versions: "Visual Studio 10" -> "Visual Studio 10 2010" "Visual Studio 11" -> "Visual Studio 11 2012" "Visual Studio 12" -> "Visual Studio 12 2013"  This clarifies which generator goes with each Visual Studio version. The old names are recognized for compatibility. A new "CodeLite" extra generator is available for use with the Makefile or Ninja generators. A new "Kate" extra generator is available for use with the Makefile or Ninja generators. The "add_library()" command learned a new "INTERFACE" library type. Interface libraries have no build rules but may have properties defining "usage requirements" and may be installed, exported, and imported.  This is useful to create header-only libraries that have concrete link dependencies on other libraries. The "export()" command learned a new "EXPORT" mode that retrieves the list of targets to export from an export set configured by the "install(TARGETS)" command "EXPORT" option. This makes it easy to export from the build tree the same targets that are exported from the install tree. The "project()" command learned to set some version variables to values specified by the new "VERSION" option or to empty strings. See policy "CMP0048". Several long-outdated commands that should no longer be called have been disallowed in new code by policies: Policy "CMP0029" disallows "subdir_depends()" Policy "CMP0030" disallows "use_mangled_mesa()" Policy "CMP0031" disallows "load_command()" Policy "CMP0032" disallows "output_required_files()" Policy "CMP0033" disallows "export_library_dependencies()" Policy "CMP0034" disallows "utility_source()" Policy "CMP0035" disallows "variable_requires()" Policy "CMP0036" disallows "build_name()"   The bug tracker change log page for this version is at: http://public.kitware.com/Bug/changelog_page.php?version_id=116 [Less]
Posted over 10 years ago by Luis Ibanez
While searching online for the latest figures of Web Browsers market share, I came accross this interesting figure in the Wikipedia: This is based on data from StatCounter's report, that can be freely downloaded.   As interesting as ... [More] this figure is, for driving endless geek discussions, the same Wikipedia page held a Gem of much greater interest! Under the section "Summary", with the description: Here is the R code that created this graph, using figures from Statcounter We find indeed the R source code: Followed by the instructions on how to run the code in Linux This is the Hallmark Signature of the true Scientist: Describe the process of the experiement and provide all the elements needed for an independent observer to replicate the work.   This illustrates how we already have at hand all the tools needed to implement Reproducible Research on a daily basis, and we are mostly confronted with a Cultural shift, on making clear that is no longer acceptable to publish papers that do not include the full set of elements needed to verify its replicability. Of course, it is not enough, to "take their word for it...", so, I followed the instructions, copy-pasted the R code, in a file, and ran it in an Ubuntu Linux machine, as Rscript   webbrowsers.r and got the following replicated svg file: "Usage share of web browsers (Source StatCounter).svg" pasted here:   Tip of the Hat to to the Wikipedia page authors: Arichnad Daniel.Cardenas Litehacker   Thanks for showing how scientific work ought to be performed and publihsed !   "Nullius in Verba" "Take Nobody's word for it" "It is an expression of the determination of Fellows of the Royal Society to withstand the domination of authority and to verify all statements by an appeal to facts determined by experiment."   [Less]
Posted over 10 years ago by Luis Ibanez
While searching online for the latest figures of Web Browsers market share, I came accross this interesting figure in the Wikipedia: This is based on data from StatCounter's report, that can be freely downloaded.   As interesting as ... [More] this figure is, for driving endless geek discussions, the same Wikipedia page held a Gem of much greater interest! Under the section "Summary", with the description: Here is the R code that created this graph, using figures from Statcounter We find indeed the R source code: Followed by the instructions on how to run the code in Linux This is the Hallmark Signature of the true Scientist: Describe the process of the experiement and provide all the elements needed for an independent observer to replicate the work.   This illustrates how we already have at hand all the tools needed to implement Reproducible Research  on a daily basis, and we are mostly confronted with a Cultural shift, on making clear that is no longer cceptable to publish papers that do not include the full set of elements needed to verify its replicability.   Of course, it is not enough, to "take their word for it...", so, I followed the instructions, copy-pasted the R code, in a file, and ran it in an Ubuntu Linux machine, as Rscript   webbrowsers.r and got the following replicated svg file: "Usage share of web browsers (Source StatCounter).svg" pasted here:   Tip of the Hat to to the Wikipedia page authors: Arichnad Daniel.Cardenas Litehacker   Thanks for showing how scientific work ought to be performed and publihsed !   "Nullius in Verba" "Take Nobody's word for it" "It is an expression of the determination of Fellows of the Royal Society to withstand the domination of authority and to verify all statements by an appeal to facts determined by experiment."     Addendum Stepan Roucka rightly pointed out that in the R example above, the data was already embedded in the script and therefore, it was not a clean example of reproducible research. Particularly because the provenance of the data was not explicit, and it was not clear how the data was put into the script. This addendum attemps to address  Stepan's point, this time using an iPython script, and putting all the elements together int this git repository: https://github.com/luisibanez/browsers-www-monthly Where the data has been downloaded from StatCounter, using the URL listed here: https://github.com/luisibanez/browsers-www-monthly/blob/master/data/README.md and the same URL is  used directly in the python script, taking advantage of pandas availity to download/read files using an URL.  The full script is now:   import pandas as pd import numpy as np import matplotlib.pyplot as plt # Read data from the local disk # browsers = pd.read_csv('../data/browser-ww-monthly-200812-201402.csv') # Or download it from StatCounter directly browsers = pd.read_csv('http://gs.statcounter.com/chart.php?201402=undefined&device=Desktop%20%26%20Mobile%20%26%20Tablet%20%26%20Console&device_hidden=desktop%2Bmobile%2Btablet%2Bconsole&statType_hidden=browser&region_hidden=ww&granularity=monthly&statType=Browser&region=Worldwide&fromInt=200812&toInt=201402&fromMonthYear=2008-12&toMonthYear=2014-02&multi-device=true&csv=1') somebrowsers = browsers[['IE','Firefox','Chrome','Safari','Opera']] somebrowsers.plot()     The repository also has the corresponding IPython notebook script. that generates the following figure: Thanks Stepan for pointing this out. [Less]