by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Hans Dembinski
    @HDembinski
    I have a contributor for boost::histogram who wants to remain anonymous. It turns out that this is surprising difficult.
    https://opensource.stackexchange.com/questions/7147/declaring-copyright-anonymously?newreg=5ec7ccfb79d947bd8cdbd3208f2b880c
    Eduardo Rodrigues
    @eduardo-rodrigues
    To avoid the pain, can you now ask him to give you full ownership? Unless he is making a major contributor, I would not bother to handle this special case, being pragmatic.
    Hans Dembinski
    @HDembinski
    To my understanding, this doesn't solve the problem, because there has to be a legally valid documented way of transferring the copyright. Any legally valid transfer of ownership also requires the other party to be identified - to my understanding.
    Hans Dembinski
    @HDembinski
    Putting things in the public domain is not easy, because many jurisdictions by default give full copyright to the creator if no statement is made. One has to actively declare to waive the rights, but such a statement remains ambiguous if the person who waives their rights remains anonymous.
    If this was valid, one could copy some copyrighted code, then publish this anonymously in the public domain. It would still be illegal to do this, but there would no one to prosecute and hold accountable.
    Any party who uses such code would be at risk of getting charged with lawsuits still, without being able to shift the blame elsewhere. So companies would not risk to use such code.
    Eduardo Rodrigues
    @eduardo-rodrigues
    I understand that route is tricky. Brute force: if I email and give you a piece of code for you to commit as yourself, basically, then that's the end of it, no, since all seems effectively to be yours, and I'm agreeing? The fact that it came from me is irrelevant by construction. Otherwise it gets vicious, I take your comments ...
    Hans Dembinski
    @HDembinski
    If you send me some code that I publish for you under my name, I could be liable for copyright infringement. You could decide to later sue me or worse, your code could be intellectual property of a third party, which could then sue me.
    I can prevent the first case by maintaining a legal record of that transfer of the copyright, but this is additional hassle for me. I would still get in trouble for the second thing, even though I could defend myself with that legal record of transfer of copyright
    Hans Dembinski
    @HDembinski
    A copyright expert says: copyright notices are bogus https://lists.boost.org/Archives/boost/2015/09/225605.php
    Jim Pivarski
    @jpivarski

    I've started following the [uproot] tag on StackOverflow, and will follow an [awkward-array] tag if somebody creates a question about Awkward there.

    (Tags can only be created on a question about the topic. There happened to be an old question about uproot that I could add the [uproot] tag to; if anyone asks an Awkward question and doesn't have >1500 reputation to create a new tag, point me to it and I'll add the tag—and answer the question.)

    I've created a link on the uproot README pointing to uproot questions, and I'll do the same for awkward when it comes up. (https://stackoverflow.com/questions/tagged/uproot)

    Just like GitHub issues, I'll get an email when somebody asks a question, but unlike GitHub issues, StackOverflow is intended for usage questions and don't "go away" once answered.

    Lukas
    @lukasheinrich
    Hi
    what's the procedure to create a sub-community to PyHEP?
    we'd like to craete a PyHEP-fitting one to discuss some stats related issues
    cc @cranmer @mayou36 @feickert @kratsg
    Eduardo Rodrigues
    @eduardo-rodrigues
    Hi @lukasheinrich, HSF WG conveners are admins on the account. I can create the room for you if you want ...
    (No big deal, just that somebody needs to have the admin rights ;-).)
    Jonas Eschle
    @mayou36
    yes that would be good, thanks
    Eduardo Rodrigues
    @eduardo-rodrigues
    Jonas Eschle
    @mayou36
    Thanks! I would like to invite everyone to this channel who is interested to have more detailed discussions on the current efforts in the Python fitting tools such as (but not limited to!) zfit, pyhf and libraries around it, especially high level statistics/inference libraries.
    Jim Pivarski
    @jpivarski

    I've started following the [uproot] tag on StackOverflow, and will follow an [awkward-array] tag if somebody creates a question about Awkward there.

    A few questions have come in on [uproot] and one of them was actually about [awkward-array], so I took that opportunity to create the second tag. Apparently, I can only set up email notifications after the tag has existed for a little while (some database needs to sync), so I'm listening to [uproot] now and will be listening to [awkward-array] soon.

    Henry Schreiner
    @henryiii
    Was Python 3.8 released just for PyHEP? :)
    Eduardo Rodrigues
    @eduardo-rodrigues
    :D
    Matthew Feickert
    @matthewfeickert
    :)
    Henry Schreiner
    @henryiii
    I'm having issues with Gitter, trying again:
    What are the imports many working in HEP + Python might need? Not counting general ones, like numpy and tensor flow. Here's what I have so far:
    import boost_histogram as bh
    import uproot
    import zfit
    
    from particle import Particle
    from iminuit import Minuit
    from decaylanguage import DecFileParser
    
    import ROOT
    Matthieu Marinangeli
    @marinang
    hepunits, uncertainties ?
    Henry Schreiner
    @henryiii
    Maybe from hepunits import units as hu? I need imports that won't conflict with general tools too easily. And from hepunits import constants as hc
    Uncertainties is probably a good one. Pint should be there too, even if it not used in those packages explicitly
    Eduardo Rodrigues
    @eduardo-rodrigues
    All fine with the examples above.
    hepunits package: I had given from hepunits import units as u as an example in the README, as I doubt anyone will use u. in general. But I'm also fine with ... as hu.
    Eduardo Rodrigues
    @eduardo-rodrigues
    Hi @/all, a little announcement:
    Software Carpentry Workshop to teach fundamental research computing skills at CERN from 27-29 Nov, 2019. The indico page to register is here: https://indico.cern.ch/event/834411/.
    It is jointly organized by the Hep Software Foundation (HSF, https://hepsoftwarefoundation.org/) and IRIS-HEP (https://iris-hep.org/).
    The organisers are looking for volunteers to act as helpers, saying that "you do not need to be a super expert (remembering difficulties you have had will help you relate to the students). If you are a comfortable intermediate user that will be enough."
    Like teaching and have some time? Sign-up for 1/2/3 days via the following doodle https://doodle.com/poll/7n9dpbhhmyk9hcm2. I just did.
    Thanks.
    Jim Pivarski
    @jpivarski

    Not every library needs a two-letter abbreviation. I think that hepunits loses usefulness if its usage involves weird u.MeV type things. I think there's an argument for

    from hepunits import MeV, GeV, mm, cm
    
    0.510 * MeV   # electron mass
    125.2 * GeV   # Higgs mass
    0.456 * mm    # B0 ctau
    2.685 * cm    # K0 ctau

    since these objects exist primarily for readability.

    By the way, Awkward's official two-letter abbreviation will be ak:

    import awkward1 as ak

    as in "ak! ak! this array is so awkward!". I've seen some

    import awkward as awk

    in the wild and I want to avoid mental overlap with Awk (which is a rather nice language for its domain, but still).

    Eduardo Rodrigues
    @eduardo-rodrigues
    Jim, I've been using hepunits exactly as you describe above but reckon u.MeV is clear too. Clearly the above works just fine for small things but bigger files may want to be safe(r) with u.MeV and alike. Anyway, largely a matter of taste.
    Agreed that ... as awk is not a good option ...
    Jim Pivarski
    @jpivarski

    These are about recommendations. I don't think I'd recommend

    import hepunits as u

    which is an extra step (as u) for the sake of having a name around that's more likely to get clobbered than MeV or GeV. For instance, there could easily be a step in a calculation like

    u, v  = math.cos(theta), math.sin(theta)

    that silently clobbers the u, but

    MeV = ...   # ?

    would not be likely at all. It's about the names humans are likely to use and notice as being different. I wouldn't recommend

    from hepunits import *

    though. A given script is probably only going to use a couple of units, and pulling them into the namespace deliberately is not an abuse.

    Eduardo Rodrigues
    @eduardo-rodrigues
    For sure from hepunits import * is to be banned. No doubt. I explicitly import exclusively what's needed.
    Jonas Eschle
    @mayou36
    MeV and GeV may be not a problem, but mm, cm? I agree it looks nicer, but for larger files having a nice abbreviation that can be used would be indeed helpful.
    Henry Schreiner
    @henryiii
    I’m working on setting up something nice with PyForest, and (depending on the final implementation), it needs clear names. Making all unit abreviations would be a no-go.
    benkrikler
    @benkrikler
    That package scares me a bit! Seems very "unpythonic" in terms of "explicit is better than implicit"
    Henry Schreiner
    @henryiii
    It’s only for interactive work - it’s fantastic with IPython. It saves most of the typing of quick interactive work, and when you are done and you want to make a script out of what you’ve done, you can just call active_imports() and get the list of imports you need to paste into your script. :)
    Jonas Eschle
    @mayou36

    It has the from pylab import * touch, which is now, for good reasons, depreceated. For IPython, I have a startup script full of import package as pkg with suppressed ImporError warnings, because yeah, it's otherwise pain.

    It’s only for interactive work

    I see the use case, and it's nice. But I also see the abuse cases and prefer e.g. template python modules combined with an "optimize import" in my IDE that removes all unnecessary imports. No magic, just clean...
    (or better, what I actually do: an editor that imports modules like np, pd with a single shortcut when I use them)

    Henry Schreiner
    @henryiii

    For IPython, I have a startup script full of import package as pkg

    This is exactly what it can and should be used for - and your start up script slows down your IPython startup time, even if you don’t use all the packages. If you copy your start up script to ~/.pyforest/user_imports.py, you will have instant startup times again, and things get imported when you use them. And you gain the ability to quickly see what you have used. I don’t use the from pyforst import * at all, it’s just an extention to IPython. I rather which that wasn’t there, for misusage issues.

    Jonas Eschle
    @mayou36

    ...copy your start up script to ~/.pyforest/user_imports.py

    I was in fact not aware of that, thanks! That sounds really useful then (also because this can't be abused in a script).

    Henry Schreiner
    @henryiii
    I haven’t been using it very long (and user_imports was just added), but it’s great to quickly use bh, plt, and np without having to type them every time I start an IPython session. When testing things like reprs I only write about 3 lines of IPython, which can become 5-6 lines with imports.
    Luke Kreczko
    @kreczko
    @henryiii What happened to https://bitbucket.org/henryiii/pygdml/src btw?
    We are currently discussion a pythonic GDML implementation to do comparisons and came across your package
    there are some other packages that try to solve this problem (describing geometry in python, exporting/importing GDML), but nothing that is published on PyPi
    Henry Schreiner
    @henryiii
    It became good enough to export my GDML datafile from blender so I could use it in Geant, then I forgot about it, I believe.
    I used blender to convert a topographic map into a mesh that I then converted to GDML so it would work in Geant.
    It also produces C++ code, which is the one I think I ended up using.