by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    benkrikler
    @benkrikler
    Does anyone have or know of a good entry-level numpy and / or uproot tutorial for a student who is transitioning from C++ to python?
    Hans Dembinski
    @HDembinski
    Hey all, I did some experiments with allocation in pybind11, that I want to share:
    https://github.com/HDembinski/pybind11_allocation_cost_demo
    It is all the in readme, feel free to check out the code and try the benchmarks for yourself.
    tl;dr: avoid allocating temporary objects from the Heap if you can, but don't worry about it too much. In most cases, it won't make a big difference.
    Jim Pivarski
    @jpivarski
    benkrikler
    @benkrikler
    Thanks Jim, that's great! Love the "why python" bit of the first notebook too. Can I re-use some of that material (with appropriate citations) in some up-coming talks of mine?
    Jim Pivarski
    @jpivarski
    @benkrikler You can we use the material without citations. Except for the parts from Jake Vanderpl
    Jake Vanderplas—which I cited as "stolen from" because I didn't explicitly get permission from him. (I think you can do the same, with citation.) They are good graphics, though.
    (Gitter submits a message when you go into another app to check on the spelling of something...)
    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. :)