User:Rueden
| |
---|---|
Affiliation | UW-Madison LOCI |
Image.sc Forum | ctrueden |
GitHub | ctrueden |
StackOverflow | 1207769/ctrueden |
Open HUB | ctrueden |
ResearchGate | Curtis_Rueden |
ORCID | 0000-0001-7055-6707 |
arXiv author id | rueden_c_1 |
Google Scholar | VqKfxYcAAAAJ |
pub/curtis-rueden/15/372/52a | |
LOCI profile | curtis-rueden |
Website | http://restlesscoder.net/ |
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.
Contents
What is Curtis working on?
Primary projects
Here is a summary of my current projects, in priority order. I try to keep this list up to date.
- ImageJ Electron app. Shared memory between Java, JavaScript and Python!
- SciJava Common 3. (scijava/scijava-common@sjc3)
- LOCI web server downsizing. Dockerization/robustification. Retiring obsolete services.
- 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)
- Ops generic type matching. Improve the Ops type matcher to fully support generics, including recursive generics. (scijava/scijava-common@generic-types, imagej/imagej-ops@nil)
- 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.
- 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)
- GitHub issue reporting plugin. The Fiji BugZilla is now static content only. The remainder of the ImageJ Trac needs to be migrated to GitHub Issues. The Report a Bug plugin needs to send reports to GitHub instead. (scijava/scijava-plugins-issues-github)
- SCIFIO blockization. (scifio/scifio#283)
- ImageJ Launcher. Switch to a JavaFX-based native launcher. Retire the current ImageJ Launcher. (imagej/imagej-launcher#33)
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:
- (with Gabriel Selzer) ImageJ Ops algorithms. Addition of more image processing algorithms to ImageJ Ops.
- (with Dasong Gao) SLIM Curve improved Java integration.
- (with Ellen Arena) Coloc 2 algorithms in ImageJ Ops.
- (with Gabriel Einsdorf) SCIFIO and SciJava I/O architecture.
- (with Petr Bainar et. al) ImageJ Server and parallelization of ImageJ on high-performance computing (HPC) clusters (PetrBainar/scijava-parallel).
- (with Stefan Helfrich) ImageJ Launcher bug-fixes and improvements.
- (with Kyle Harrington) ImageJ in 3D. Unification of ImageJ 3D visualization efforts around SciView.
- (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:
- Mentoring student programmers at LOCI
- Coordinating programming efforts at LOCI
- Questions on the ImageJ Forum
- Bug reports
- Pull requests
- Email (~300 messages per day as of this writing)
- Server maintenance and troubleshooting
- 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.
Recommended development tools
So you want to be an effective software developer? Use tools!
Tool | Purpose | Plugins | |
---|---|---|---|
Eclipse | Super powerful
|
Vrapper | Vim-fu inside Eclipse – almost as good as the real thing |
JD-ECLIPSE | Automatic decompilation when browsing classes | ||
Vim | Best 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:
| ||
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:
- The Dotfiles setup guide
- Key developer tools on this wiki
- LOCI developer getting started guide