<div dir="ltr">Hi all,<div><br></div><div>In mid-November, the ImageJ2 team at LOCI was visited by Christian Dietz of the University of Konstanz, lead developer of the KNIME Image Processing project [1]. We spent a week of intensely programming to improve the integration of KNIME with ImgLib2 and ImageJ2.</div>

<div><br></div><div>Christian wrote up a summary of the topics covered and work performed:</div><div><br></div><div><div>IJ2 <-> KNIME bi-directional integration (goal: have something end of 2013)</div><div>* KNIME automatically generates Nodes from Plugins (DONE)</div>

<div>* IJ2 will be able to record KNIME Workflows (WIP)</div><div>* IJ2 runs KNIME Workflows Headless (WIP)</div><div>* IJ2 provides an update-site for OSGi wrapped bundles (WIP)</div><div>* KNIME can be updated using the IJ2 Update-Sites/FIJI-Personal Update-Sites (WIP)</div>

<div><br></div><div>Come up with a plan for Algorithms/Experimental and make these suggestions</div><div>* Common code repository for plugins (scijava-ops)</div><div>* Started to define interfaces</div><div>* We need to reimplement / unify a lot of stuff</div>

<div>* General convolution/wrapping methods are needed</div><div>* Define coding conventions for imglib2-algorithms</div><div>* Define coding (social and technical) conventions for scijava-ops</div><div><br></div><div>Get a grip on descriptor sets</div>

<div>* Unified interfaces</div><div>* Now part of scijava-ops, using scijava-common</div><div><br></div><div>Discuss/Merge all open pull-requests ImgLib2 (Done)</div><div>* Projectors merged!</div><div>* WrappedImg merged!</div>

<div>* FlatIterableInterval merged!</div><div>* Mail sent to clean-up branches</div><div><br></div><div>SCIFIOCellImg with Memory Service</div><div>* Development branch: <a href="https://github.com/scifio/scifio/tree/cache-imps">https://github.com/scifio/scifio/tree/cache-imps</a></div>

<div>* Refactored SCIFIOCells to cache via phantom reference instead of finalization (done)</div><div>* Created MemoryService to manage a new RefHandler class of plugins and provide configurable memory safeguards (done)</div>

<div>* Taking a test case of re-writing each pixel in a dataset, improved cache performance from 59.6s write, 57.1s read to 35.2s write, 1.6s read (done)</div><div>* Two tests still failing unpredictably due to garbage collection reliance (I think). As soon as these are fixed, the update SCIFIOCell/MemoryService functionality will be released in SCIFIO 0.7.4.</div>

<div>* Integration to KNIME started but not finished (easy task, thanks Mark!)</div><div><br></div><div>Have a running real-life example at LOCI (or start setting one up) (Done)</div><div>* Working Examples running at LOCI (Tracking/Segmentation/Measurement)</div>

<div>* Two more potential projects for integration</div><div>* Anytime: Just ask Martin/Christian for any assistance or even send them the images as they are happy to help with workflows</div><div>* Guide how to install KNIME Image Processing (DONE)</div>

<div><br></div></div><div>Overall, it was an immensely productive hackathon. For most of the "WIP" items above, we have working code which just needs a little polish.</div><div><br></div><div>I will send out a separate email soon with more details on the scijava-ops project.</div>

<div><br></div><div>Any other questions, feel free to ask!</div><div><br></div><div>Regards,</div><div>Curtis</div><div><br></div><div>[1] <a href="http://knime.imagej.net/">http://knime.imagej.net/</a></div></div>