Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Patrick Scheibe
    @halirutan
    reference[i_] := {notebook, codecell}
    The only slightly non-trivial part is, how I can store i in the definition of the current rule without breaking anything. But let's assume we have this solved, then I can extract i from each rule and with the help of reference I know instantly where it is defined. I know the exact cell inside the notebook.
    So in the best case, I can create for each used rule in Steps[Int[expr, var]] a button, that automatically opens the right notebook and cell where this rule is defined.
    Albert D. Rich
    @AlbertRich
    @halirutan Instead of storing the source file reference in the definition of the rule, store it in a comment before the rule. Then in the show step rule modification pass, include the reference in the rule.
    Patrick Scheibe
    @halirutan
    @AlbertRich When you use modifyRule, you only have the DownValues. Comments were already stripped and you cannot access them. Already thought about a simple solution like this.
    When loading a .m rule file with Get all comments are ignored and you can never access them again.
    Albert D. Rich
    @AlbertRich
    Instead of going to the DownValues, you parse the .m file reading the comments and the rules, inserting the step info and define the rule right then. If the person is NOT modifying rules to show steps, the rule should be clean.
    This would eliminate the ModifyRule pass.
    Patrick Scheibe
    @halirutan
    @AlbertRich Mathematica might reorder some of the Int rules, so the order in which they are loaded might not be the order in which they finally appear in DownValues.
    Albert D. Rich
    @AlbertRich

    @halirutan Forget assuming anything about DownValues. I propose:

    1. Building .m files for the Rubi package like you currently do but with comments giving Reference, Derivation, Basis, and the rule's source file location. E.g. the comment "Derivation: Integration by parts"
    2. If loading without step information, load the .m files as Mathematica normally does. Thus each rule would be free of any step info.
    3. If loading with step information, parse the .m files yourself extracting the comments and rule definition. Then define the rule with all this step info. Thus each rule would only have to be defined once, and there would be no second ModifyRule pass. Yea!

    Obviously this is a long term project, I am not suggesting you do now.

    Patrick Scheibe
    @halirutan
    @AlbertRich Yes, I though about something similar already because modifying the rules when $LoadShowSteps=True is so slow. I have more performant suggestions how to do this, but, yes, this is a long term project.
    Albert D. Rich
    @AlbertRich
    @halirutan Over the years developing Rubi, I have dreamed up numerous Rubi-based projects like the above that I don't have the time or talent to implement. Would it be appropriate to list those projects in the Rubi Wiki to encourage others?
    Patrick Scheibe
    @halirutan
    @AlbertRich Well, I would like to say yes. The truth is that I only have met a handful of people who are willing and who have the abilities to join more complex projects. But it would hurt to describe on the Wiki what future things you would like to see in Rubi.
    Albert D. Rich
    @AlbertRich
    @halirutan I thought the whole purpose of GitHub was collaborative software development.
    I assume you meant "wouldn't"...
    Patrick Scheibe
    @halirutan
    @AlbertRich Yes, what I believe is that we can (a) make it more popular for the interested user and (b) might be able to attract this rare kind of Mathematica expert who is willing to join.
    (a) will definitely be the case. To which degree, I'm not sure.
    Albert D. Rich
    @AlbertRich
    @halirutan You mentioned you were going on vacation soon? Where are you headed?
    Patrick Scheibe
    @halirutan
    (b) I would really like to hope this happens. But I have to say that for instance my Mathematica plugin for IntelliJ has right now 47000 downloads and it is open source from the beginning in 2013. Although I have support from various users that test things and report bugs, the one genious programmer, that knows Mathematica and Java well and jumpes on board is still missing.
    Albert D. Rich
    @AlbertRich
    @halirutan I feel your pain. :smile: My experience with Rubi has been similar.
    Patrick Scheibe
    @halirutan

    @AlbertRich

    @halirutan You mentioned you were going on vacation soon? Where are you headed?

    Yep, in a few hours. We go to Bavaria, you know the part of Germany where beer is even more popular than in the rest of the country :smile:

    Albert D. Rich
    @AlbertRich
    But you don't like beer...
    Patrick Scheibe
    @halirutan
    That's why I mention it.
    Albert D. Rich
    @AlbertRich
    I won't bother you till you return. When will that be?
    Patrick Scheibe
    @halirutan
    @AlbertRich Next week. I hope I can do some things on my laptop. After all it's my vacation too, but with full-time action of four kids, I have to see how this turns out.
    @AlbertRich What do you think? If we make another button on the web-site for the test suite that links to your page, are we then ready to spread it to the world?
    Albert D. Rich
    @AlbertRich
    @halirutan Yup, that would do it.
    Patrick Scheibe
    @halirutan
    @AlbertRich Then I hope we can manage this in the next days.
    Albert D. Rich
    @AlbertRich
    @halirutan Have a great time on vacation. Please email me a family picture at a scenic spot. Aloha from Hawaii, Albert
    Patrick Scheibe
    @halirutan
    @AlbertRich Will do!
    Albert D. Rich
    @AlbertRich
    @halirutan I'm off to my local pub. Bye.
    Patrick Scheibe
    @halirutan
    See you.
    Patrick Scheibe
    @halirutan

    @AlbertRich Hey Albert. As a first step, I would ask Jed for his GitHub name and invite him to our chats. Then we can talk about how much he knows about collaborating through git. In general, everyone can contribute easily even if he is not part of our dev-team which has direct access to the repositories and this is the usual process:

    1. He "clones" our repository, which means nothing more than making a local copy of it through git (git is actually a program that lets you do this)
    2. He makes changes locally and pushes them online to his GitHub.
    3. Then he requests a review so that we have the chance to look if his changes break anything before pulling his additions into our official repository (called a Pull Request).

    This is the usual way and anyone on GitHub knows it, so I'm sure Jed is also familiar with it.

    But first things first and we need to discuss how exactly we implement everything so that it works out in the end.
    If you like, I can write a mail both to you and Jed.
    Albert D. Rich
    @AlbertRich
    @halirutan Thanks for the explanation how GitHub works. Yes, please email Jed and copy me.