by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Stephan Saalfeld
    @axtimwalde
    there are single primitive collections and primitive maps (sometimes in combination with objects for completeness)
    Imagine a set of a struct of {int, double, double, long} whose hash method uses the int
    Michael Doube
    @mdoube
    No idea, sorry, my use case was much simpler, just lots of .add() of int to a HashSet
    Stephan Saalfeld
    @axtimwalde
    or, for my use case, a sorted hash set of structs {long, float} that is sorted by the float and uses the long to do the hash and equals check
    Ok, thanks for this comparison though, very interesting!
    I always used Trove because simple and complete, but it doesn't look to good here.
    Michael Doube
    @mdoube
    ja, I think that Trove has been 'Eclipsed'
    Stephan Saalfeld
    @axtimwalde
    Right, and after all this time, nobody has collections of tuples of primitives?
    I am shocked
    Stephan Saalfeld
    @axtimwalde
    Well, nobody is not correct, there are mastodon-collections
    Curtis Rueden
    @ctrueden

    @mdoube wrote:

    I made a PR for scijava/pom-scijava

    Thanks! :sunny:

    the pathway from declaring dependencies in pom.xml to having artefacts available on the updater is still a bit obscure to me

    It's described on the Development Lifecycle page. About when it will be available from the Java-8 update site, the next steps would be:

    1. Update sc.fiji:fiji to depend on it. This could be directly, but more often happens because a shipped plugin uses it.
    2. Manually upload the latest component versions corresponding to the fiji/fiji master branch. We do this infrequently, because we want to test combinations of artifacts before uploading to avoid component version skew. But exceptions can be made if you need the changes urgently.

    The future goal is to replace (2) with Travis CI doing the uploads automatically based on either: A) the fiji/fiji master branch; or B) the latest release version of sc.fiji:fiji.

    The future goal beyond that is to get rid of the Java-8 update site in favor of a core ImageJ update site and core Fiji update site, like before, so that we can have a "plain" ImageJ2 without all the Fiji stuff.

    The future goal beyond that is to get rid of core update sites in favor of using Maven artifacts on demand, via a remote resolution mechanism in the Updater similar to how Maven works. We'd still support the old-style update sites for compatibility, but only for 3rd party extensions. The "Fiji" application is expressible as net.imagej:imagej+sc.fiji:fiji in Maven terms—we just need an updater smart enough to understand that.

    Steps we will do before (1) above include:

    • Merge the PR.
    • Release a new pom-scijava.
    • Update fiji/fiji to extend that version of pom-scijava.

    But those steps only make it so that fiji/fiji depending on EC artifacts don't have to declare versions explicitly. The fiji component still needs to actually depend on them for them to be part of Fiji.

    Igor Pisarev
    @igorpisarev
    @axtimwalde Do you only insert and remove elements, or also update the existing ones too? If you need to update them as well and want to do it quickly, a priority queue would not suffice since it doesn't offer fast lookups based on the key. On the other hand, TreeMap or similar uses a single comparator for both lookups and sorting, so this would not suffice too
    Maybe you can have both HashMap<Long, Int> and TreeMap<Int, Long> (or similar to account for multiple values with the same Int) and keep them in sync to do all operations efficiently, potentially at the cost of having to deal with objects instead of primitives. I did something similar in paintera to create a prioritized task queue: https://github.com/saalfeldlab/paintera/blob/master/src/main/java/org/janelia/saalfeldlab/util/HashPriorityQueue.java
    Stephan Saalfeld
    @axtimwalde
    @igorpisarev yes, with objects it is relatively straight forward, but it's not an option because of the memory overhead. BTW, as always, there may be a shortcut for the actual problem that will make me get away without any of that, but I feel that this is about the tenth time that I am looking for something along those lines and then write a special purpose solution ;).
    Michael Doube
    @mdoube
    @ctrueden future goals look great! Would using a Maven-like updater mean there may be a possibility of version skew? I guess the updater could check the scijava POM, and use the version there, unless the plugin developer specified some other version(which would I assume be firmly discouraged). Getting artefacts automagically from a single central location makes much more sense than manually copying them to another server.
    Michael Doube
    @mdoube
    It's described on the Development Lifecycle page.
    Ah yes, I shall RT(F)M...
    Jan Eglinger
    @imagejan
    imagej.net seems to be down?
    Curtis Rueden
    @ctrueden
    @imagejan Sorry to say it's going to be down for several hours, as we recover from an exploit. Will bring it back up as soon as we can.
    Same for the update sites.
    Jan Eglinger
    @imagejan
    ah, good to know that you’re on it! And sorry for you that you have to do that during vacation :-/
    Curtis Rueden
    @ctrueden
    You reap what you sow, yeah? I should've cleaned things up sooner. It's OK; the setup will be much better afterward.
    Curtis Rueden
    @ctrueden
    I brought the update sites back online, as well as downloads.imagej.net, but we're not yet ready to bring back imagej.net. I fear that may take a few days. For those interested, the forum thread about it is here.
    Curtis Rueden
    @ctrueden

    Ahh, I just found the craziest bug in imagej-updater. When updating an installation, the updater 1) checks for changes, 2) downloads new JARs and drops them into place (on macOS at least, since there are no file locking problems), and then 3) tries to write out a new db.xml.gz file to the local installation recording the current state.

    I am starting from a Fiji with pom-scijava-29.0.0-beta-3 artifact versions locally (populated by mvn scijava:populate-app), and then doing an update-force-pristine to pull down the latest from the update site—this downgrades a lot of JARs, which is what I want. But the updater fails on step (3) afterward, because when invoking the XMLFileWriter, it leans on Xalan, which invokes the ServiceLoader mechanism looking for service plugins, which then tries to iterate the classpath looking for META-INF/services/... entries in the JARs, but some of the JARs have now been deleted, so it fails with java.util.ServiceConfigurationError: java.nio.charset.spi.CharsetProvider: Error reading configuration file. 😱

    Cautionary tale: do not delete parts of your classpath during execution! 🤣
    Curtis Rueden
    @ctrueden
    @/all Read-only imagej.net is back online!
    Jan Eglinger
    @imagejan
    :trophy: :heart:
    Christian "Tischi" Tischer
    @tischi
    @ctrueden :heart:
    @frauzufall I'd please need another Update site, called CATS
    Stephan Saalfeld
    @axtimwalde
    I would like one too, called DOGS
    Oh and RATS
    Christian "Tischi" Tischer
    @tischi
    :smile: ...but I seriously need the update site for this: https://github.com/embl-cba/cats/blob/master/README.md
    Curtis Rueden
    @ctrueden
    @tischi @axtimwalde The following update sites now exist:
    • CATS with authorized user Tischi
    • DOGS and RATS with authorized users Axtimwalde and Saalfeld :stuck_out_tongue_winking_eye:
    Kyle I S Harrington
    @kephale
    RATS is actually legit, but since it is ITK probably unlikely that they'll make an update site https://www.iibi.uiowa.edu/rats-rodent-brain-mri
    Stephan Saalfeld
    @axtimwalde
    Thanks, feeling obliged to use them now with valuable content so that I can appropriately respond to Twitter rambling about CATS ;).
    Deborah Schmidt
    @frauzufall
    @tischi I'm not involved in the server administration, I was just trying to coordinate help on the forum :) @turekg, @etadobson and @ctrueden are the people to ping I guess.
    Curtis Rueden
    @ctrueden
    @axtimwalde Perhaps you could finally roll out "The Finger" or perhaps "The Paw" 🤪
    Stephan Saalfeld
    @axtimwalde
    Ineed, this got lost somehow, right? But wasn't it about ROIs, that actually happened, didn't it?
    Curtis Rueden
    @ctrueden
    Yeah, IIRC, Hanchuan Peng released "the virtual finger" and you expressed amusement/bafflement/scorn, and said if you ever decided to quit the community you would release "The Finger" before quitting. 🤣
    Not to suggest in any way, shape or form that you should quit the community! Please stay! 🤗
    Stephan Saalfeld
    @axtimwalde
    I think it was contingent on something that we had discussed but not resolved for too long, and I think it was ROIs, but ROIs are there now, so I think I can stay foir now ;).
    Anyways, there is a discussion on Twitter about libraries and software and I think Twitter is not a good medium for discussions but only for bullying, advertisement, and snarky jokes.
    There is something interesting in this discussion though that we should probably get into image.sc
    What is interesting for me is how API should satisfy or shape expectations and concepts of potential users and developers and I do not have a good answer for that.
    Stephan Saalfeld
    @axtimwalde
    I.e. should an API that targets image processing have a method to resize an image? What should that method do?
    Curtis Rueden
    @ctrueden
    Sounds like an interesting discussion. I tried to find the thread, but don't think I succeed. This one is interesting but not exactly about API design.
    Stephan Saalfeld
    @axtimwalde
    It forked quickly and Twitter sucks with that: https://twitter.com/haesleinhuepf/status/1283116973723996162
    It's impossible to do a discussion on Twitter
    Christian "Tischi" Tischer
    @tischi
    I just wanted to second here that I find it a very questionable development that Twitter currently seems a more active forum for discussion of bioimage analysis than, e.g. www.image.sc. Maybe someone active on twitter could tweet this to start a discussion about this ;-)