Page history Edit this page How do I edit this website?

Curtis Rueden

Curtis Rueden directs the software development efforts of LOCI. He is the principal architect of ImageJ2, and the current maintainer of the Fiji distribution of ImageJ.

Community support pledge

The ImageJ community generates a lot of support activity! Forum posts, bug reports, chat room messages, and mailing list threads, and more. I want to help, but it’s rather overwhelming, especially taken together with new development efforts and collaborations that are always ongoing.

If you are reading this, perhaps you have posted issues or support requests that have gone unanswered for weeks, months, or even years. I want to change that, and am working on process improvements to make it easier for the core ImageJ2 team to respond to every support request within one work day:

  • Better component status overview. The site status.scijava.org is a developer-oriented view of the status of every component in the SciJava Bill of Materials, especially components built on pom-scijava. I am expanding the scope of the component table to include a summary of support requests, issues, pull requests, etc., per component, in a way that will foster accountability for the people maintaining each component.

  • Community Fridays. In the meantime, starting in 2022, I am personally focusing every Friday on answering support questions. I can’t keep up with everything, but I can try to make some small impact by responding to as many requests as I can. Unfortunately, until the status.scijava.org work is complete, I won’t always succeed in prioritizing items in a fair order, but I’m doing my best.

What is Curtis working on?

Last updated: 2022-Apr-18

Weekly allocation of effort

Day Focus
Mon Meetings and mentorship
Tue Immediate priorities
Wed Review and merge PRs
Thu Project management
Fri Community support

Immediate priorities

  1. [with Amandine Tournay] Python from Java. Use PyImageJ from inside the Fiji desktop application. And respond to the thread in detail when progress is far enough along.

  2. [with Mark Hiner Update ImageJ-OMERO to OMERO 5.5+ (imagej/imagej-omero#107, scijava/pom-scijava#173, scijava/pom-scijava#122).

  3. [with Mark Hiner] New pom-scijava release:
  4. Fix the fiji-builds CI workflow.

  5. Finish the imagej.net statbox feature (related issues).

Project management priorities

  1. Continue populating the project board for SciJava+ImageJ2+Fiji migration to Java 11 and 17 (roadmap).

  2. Finish revamping status.scijava.org (scijava/status.scijava.org).

Short-term priorities

Medium-term priorities

Longer-term priorities

So you want to be an effective software developer? Use tools!

Tool Purpose Plugins
Eclipse Super powerful
  • Essential for navigation of large projects
  • Supreme code completion
  • Super useful debugger
Vrapper Vim-fu inside Eclipse – almost as good as the real thing
Enhanced Class Decompiler Automatic decompilation when browsing classes in Eclipse
Vim Great editor. Crazy fast macros Vundle Manage your vim plugins like a boss
vim-sensible Defaults everyone can agree on
vim-airline Lean & mean status/tabline that's light as air
vim-fugitive A Git wrapper so awesome, it should be illegal
vim-repeat Repeating supported plugin maps with "."
vim-surround Quoting/parenthesizing made simple
See also my .vimrc
Zsh Awesome shell – even better than bash zgen Lightweight plugin manager
oh-my-zsh Your terminal never felt this good before:
  • git - awesome git completion and aliases
  • mvn - mvn completion, highlighting, aliases
  • vi-mode - vi on the CLI
  • vundle - manage your vim plugins
  • z - stop cding your life away
  • And much more
zsh-syntax-highlighting Syntax highlights commands as you type them
zsh-history-substring-search Better command history navigation
zsh-completion Even more and better tab completions
See also my .zshrc
Git It is worth the pain, I promise myrepos Commit, push & pull across repositories en masse
See also my .gitconfig
GitHub If you don't have a GitHub account, you don't exist
Maven Build reusable software components

See also: