Edit page History

User ›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.

    What is Curtis working on?

    Primary projects

    Here is a summary of my current projects, in priority order. (Last updated: 2020-May-01)

    1. pom-scijava 29.0.0 release.
    2. LOCI web server downsizing. Retiring and migrating services.
    3. Update Fiji distribution to use JBRSDK8 version of Java.
    4. PyImageJ 1.0.0 bug-fixes + release.
    5. Reconcile latest ImageJ 1.x version with ImageJ2 patching logic (imagej/ij1-patcher#47)
    6. JPMS/Jigsaw modularization. (scijava/incubator)
    7. Document community expectations. Formally define and clarify who is responsible for maintaining which plugins, to what extents (Project developer roles, ctrueden/ctr-scripts:dev-find, fiji/fiji:bin/team-hints.perl)
    8. ImageJ + Java 8. Complete the migration to Java 8 with a Java-6-compatible stub classpath that checks your Java version and tells you how to upgrade to Java 8 if needed. Retire the Java-8 update site, distributing its contents back onto the ImageJ and Fiji update sites.
    9. GitHub issue reporting plugin. The Fiji BugZilla and ImageJ Trac are now static content only. The Report a Bug plugin needs to send reports to GitHub instead. (scijava/scijava-plugins-issues-github)
    10. Rich Image. Improve the ImageJ Common data model to support metadata (e.g., spatial transformations) as a first-class citizen. (imagej/imagej-common@rich, imagej/janelia-hackathon-2016)
    11. SCIFIO blockization. (scifio/scifio#283)
    12. ImageJ Launcher. Switch to a JavaFX-based native launcher. Retire the current ImageJ Launcher. (imagej/imagej-launcher#33)
    13. ImageJ Electron app. Shared memory between Java, JavaScript and Python. (imagej/imagej-electron-app)

    I am fully committed to all of the above projects. They are driven by me, making progress only when I directly work on them.

    Additional projects

    I am also coordinating and/or leading and/or advising and/or helping with, but not sole implementer for, the following additional projects:

    1. (with Dasong Gao ) FLIMJ.
    2. (with Gabriel Selzer ) SciJava Ops (scijava/scijava-ops) and ImageJ Ops.
    3. (with elevans ) New ImageJ web site. (imagej/imagej.github.io)
    4. (with etarena ) Coloc 2 algorithms in ImageJ Ops.
    5. (with Kyle Harrington and skalarproduktraum ) ImageJ in 3D. Unification of ImageJ 3D visualization efforts around SciView.
    6. (with Tobias Pietzsch ) Visualization of big data. Unification of visualization in general around the BigDataViewer. (imagej/imagej-common#66)

    Constant priorities

    Finally, I have the following continuous priorities:

    1. Mentoring student programmers at LOCI
    2. Coordinating programming efforts at LOCI
    3. User support – questions on the Image.sc Forum, bug reports, pull requests, email
    4. Server maintenance and troubleshooting
    5. Project management tasks (e.g., managing issues)

    On average, I spend ~0-2 hours per day on my primary projects above. The rest is spent on these constant 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: