Difference between revisions of "User:Rueden"

(Update priority list)
 
Line 14: Line 14:
 
| orcid = 0000-0001-7055-6707
 
| orcid = 0000-0001-7055-6707
 
| arxiv = rueden_c_1
 
| arxiv = rueden_c_1
| website = http://restlesscoder.net/
+
| website = https://restlesscoder.net/
}}Curtis Rueden directs the [http://loci.wisc.edu/software/home software development efforts] of [[LOCI]]. He is the principal architect of [[ImageJ2]], and the current maintainer of the [[Fiji]] distribution of ImageJ.
+
}}Curtis Rueden directs the [https://loci.wisc.edu/software/home 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? ==
 
== What is Curtis working on? ==
Line 21: Line 21:
 
=== Primary projects ===
 
=== Primary projects ===
  
Here is a summary of my current projects, in priority order. I try to keep this list up to date.
+
Here is a summary of my current projects, in priority order. (Last updated: 2019-Aug-05)
  
# '''SciJava Ops''' ([https://github.com/scijava/scijava-ops scijava/scijava-ops]) and '''SciJava Common 3.''' ([https://github.com/scijava/scijava-common/compare/sjc3 scijava/scijava-common@sjc3])
 
 
# '''[[LOCI]] web server downsizing.''' Retiring obsolete services.
 
# '''[[LOCI]] web server downsizing.''' Retiring obsolete services.
# '''Document community expectations.''' Formally define and clarify who is responsible for maintaining which plugins, to what extents ([http://forum.imagej.net/t/project-developer-roles/206 Project developer roles], [https://github.com/ctrueden/ctr-scripts/blob/master/dev-find ctrueden/ctr-scripts:dev-find], [https://github.com/fiji/fiji/blob/master/bin/team-hints.perl fiji/fiji:bin/team-hints.perl])
+
# '''Document community expectations.''' Formally define and clarify who is responsible for maintaining which plugins, to what extents ([https://forum.image.sc/t/project-developer-roles/206 Project developer roles], [https://github.com/ctrueden/ctr-scripts/blob/master/dev-find ctrueden/ctr-scripts:dev-find], [https://github.com/fiji/fiji/blob/master/bin/team-hints.perl fiji/fiji:bin/team-hints.perl])
 +
# '''SciJava Common 3.''' ([https://github.com/scijava/scijava-common/compare/sjc3 scijava/scijava-common@sjc3])
 
# '''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.
 
# '''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.
# '''GitHub issue reporting plugin.''' The Fiji BugZilla is now static content only. The remainder of the [http://trac.imagej.net/ ImageJ Trac] needs to be migrated to GitHub Issues. The [[Report a Bug]] plugin needs to send reports to GitHub instead. ([https://github.com/scijava/scijava-plugins-issues-github scijava/scijava-plugins-issues-github])
+
# '''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. ([https://github.com/scijava/scijava-plugins-issues-github scijava/scijava-plugins-issues-github])
 
# '''Rich Image.''' Improve the [[ImageJ Common]] data model to support metadata (e.g., spatial transformations) as a first-class citizen. ([https://github.com/imagej/imagej-common/compare/rich imagej/imagej-common@rich], [https://github.com/imagej/janelia-hackathon-2016 imagej/janelia-hackathon-2016])
 
# '''Rich Image.''' Improve the [[ImageJ Common]] data model to support metadata (e.g., spatial transformations) as a first-class citizen. ([https://github.com/imagej/imagej-common/compare/rich imagej/imagej-common@rich], [https://github.com/imagej/janelia-hackathon-2016 imagej/janelia-hackathon-2016])
 
# '''SCIFIO blockization.''' ([https://github.com/scifio/scifio/issues/283 scifio/scifio#283])
 
# '''SCIFIO blockization.''' ([https://github.com/scifio/scifio/issues/283 scifio/scifio#283])
Line 39: Line 39:
 
I am also coordinating and/or leading and/or advising and/or helping with, but not sole implementer for, the following 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 {{Person|gselzer}}) '''[[ImageJ Ops]].'''
+
# (with {{Person|gselzer}}) '''SciJava Ops''' ([https://github.com/scijava/scijava-ops scijava/scijava-ops]) and '''[[ImageJ Ops]].'''
 
# (with {{Person|Xanthorapedia}}) '''[[SLIM Curve]].'''
 
# (with {{Person|Xanthorapedia}}) '''[[SLIM Curve]].'''
 
# (with {{Person|etarena}}) '''[[Coloc 2]]''' algorithms in [[ImageJ Ops]].
 
# (with {{Person|etarena}}) '''[[Coloc 2]]''' algorithms in [[ImageJ Ops]].
# (with {{Person|stelfrich}}) '''ImageJ Launcher''' bug-fixes and improvements.
 
 
# (with {{Person|Kharrington}} and {{Person|skalarproduktraum}}) '''ImageJ in 3D.''' Unification of ImageJ 3D visualization efforts around [[SciView]].
 
# (with {{Person|Kharrington}} and {{Person|skalarproduktraum}}) '''ImageJ in 3D.''' Unification of ImageJ 3D visualization efforts around [[SciView]].
 
# (with {{Person|Pietzsch}}) '''Visualization of big data.''' Unification of visualization in general around the [[BigDataViewer]]. ([https://github.com/imagej/imagej-common/issues/66 imagej/imagej-common#66])
 
# (with {{Person|Pietzsch}}) '''Visualization of big data.''' Unification of visualization in general around the [[BigDataViewer]]. ([https://github.com/imagej/imagej-common/issues/66 imagej/imagej-common#66])
Line 52: Line 51:
 
# Mentoring student programmers at [[LOCI]]
 
# Mentoring student programmers at [[LOCI]]
 
# Coordinating programming efforts at [[LOCI]]
 
# Coordinating programming efforts at [[LOCI]]
# Questions on the [[Image.sc Forum]]
+
# User support – questions on the [[Image.sc Forum]], [[Bugs|bug reports]], [https://github.com/search?q=is%3Apr+is%3Aopen+user%3Afiji+user%3Aimagej+user%3Amaven-nar+user%3Ascifio+user%3Ascijava+user%3Aslim-curve&type=Issues pull requests], email
# [[Bugs|Bug reports]]
 
# [https://github.com/search?q=is%3Apr+is%3Aopen+user%3Afiji+user%3Aimagej+user%3Amaven-nar+user%3Ascifio+user%3Ascijava+user%3Aslim-curve&type=Issues Pull requests]
 
# Email (~300 messages per day as of this writing)
 
 
# Server maintenance and troubleshooting
 
# Server maintenance and troubleshooting
# Project management tasks (e.g., managing [[Issues]])
+
# 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.
 
On average, I spend ~0-2 hours per day on my primary projects above. The rest is spent on these constant priorities.
Line 76: Line 72:
 
* Super useful debugger
 
* Super useful debugger
 
| [http://vrapper.sourceforge.net/ Vrapper]
 
| [http://vrapper.sourceforge.net/ Vrapper]
| Vim-fu inside Eclipse – almost as good as the real thing
+
| Vim-fu inside Eclipse – almost as good as the real thing
 
|-
 
|-
| [http://jd.benow.ca/ JD-ECLIPSE]
+
| [https://ecd-plugin.github.io/ Enhanced Class Decompiler]
| Automatic decompilation when browsing classes
+
| Automatic decompilation when browsing classes in Eclipse
 
|-
 
|-
 
| colspan=4 |
 
| colspan=4 |
 
|-
 
|-
! rowspan=7 | [http://www.vim.org/ Vim]
+
! rowspan=7 | [https://www.vim.org/ Vim]
| rowspan=7 | Best editor! Crazy fast [http://vim.wikia.com/wiki/Macros macros]
+
| rowspan=7 | Great editor. Crazy fast [https://vim.wikia.com/wiki/Macros macros]
 
| [https://github.com/VundleVim/Vundle.vim Vundle]
 
| [https://github.com/VundleVim/Vundle.vim Vundle]
 
| Manage your vim plugins like a boss
 
| Manage your vim plugins like a boss
Line 107: Line 103:
 
| colspan=4 |
 
| colspan=4 |
 
|-
 
|-
! rowspan=6 | [http://www.zsh.org/ Zsh]
+
! rowspan=6 | [https://www.zsh.org/ Zsh]
| rowspan=6 | Awesome shell – even [http://www.slideshare.net/jaguardesignstudio/why-zsh-is-cooler-than-your-shell-16194692 better than bash]
+
| rowspan=6 | Awesome shell – even [https://www.slideshare.net/jaguardesignstudio/why-zsh-is-cooler-than-your-shell-16194692 better than bash]
 
| [https://github.com/tarjoilija/zgen zgen]
 
| [https://github.com/tarjoilija/zgen zgen]
 
| Lightweight plugin manager
 
| Lightweight plugin manager
 
|-
 
|-
| [http://ohmyz.sh/ oh-my-zsh]
+
| [https://ohmyz.sh/ oh-my-zsh]
 
| Your terminal never felt ''this'' good before:
 
| Your terminal never felt ''this'' good before:
 
* '''git''' - awesome git completion and aliases
 
* '''git''' - awesome git completion and aliases
Line 144: Line 140:
 
|-
 
|-
 
! [[GitHub]]
 
! [[GitHub]]
| colspan=3 | If you don't have a GitHub account, [http://blog.codinghorror.com/how-to-stop-sucking-and-be-awesome-instead/ you don't exist]
+
| colspan=3 | If you don't have a GitHub account, [https://blog.codinghorror.com/how-to-stop-sucking-and-be-awesome-instead/ you don't exist]
 
|-
 
|-
 
| colspan=4 |
 
| colspan=4 |
Line 155: Line 151:
 
* The [[Dotfiles]] setup guide
 
* The [[Dotfiles]] setup guide
 
* [[Development#Key_developer_tools|Key developer tools]] on this wiki
 
* [[Development#Key_developer_tools|Key developer tools]] on this wiki
* [http://loci.wisc.edu/software/developing-loci-software LOCI developer getting started guide]
+
* [https://loci.wisc.edu/software/developing-loci-software LOCI developer getting started guide]

Latest revision as of 10:46, 5 August 2019

Curtis 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
LinkedIn pub/curtis-rueden/15/372/52a
LOCI profile curtis-rueden
Website https://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.

What is Curtis working on?

Primary projects

Here is a summary of my current projects, in priority order. (Last updated: 2019-Aug-05)

  1. LOCI web server downsizing. Retiring obsolete services.
  2. 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)
  3. SciJava Common 3. (scijava/scijava-common@sjc3)
  4. 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.
  5. 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)
  6. 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)
  7. SCIFIO blockization. (scifio/scifio#283)
  8. ImageJ Launcher. Switch to a JavaFX-based native launcher. Retire the current ImageJ Launcher. (imagej/imagej-launcher#33)
  9. 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 Gabriel Selzer) SciJava Ops (scijava/scijava-ops) and ImageJ Ops.
  2. (with Dasong Gao) SLIM Curve.
  3. (with Ellen Arena) Coloc 2 algorithms in ImageJ Ops.
  4. (with Kyle Harrington and Ulrik Günther) ImageJ in 3D. Unification of ImageJ 3D visualization efforts around SciView.
  5. (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.

Recommended development tools

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: