Planning for the workshop


With the upcoming Bertini workshop to be held at Notre Dame, May 23-25 2016, I have a lot to do! Here is a brief list of what I'd like to get done. (it's an optimistic list)

  • Complete the Pull Request for the AMPTracker
  • Audit the library for thread safety
  • Finalize the license for Bertini 2
  • Completely flowchart the 0-dim, NID, and Regen-Extension algorithms, and all constituent parts
  • Factor out common functionality for the three algorithms, and design and implement policy-based components.
  • Fully implement 0-dim solves
  • Fully implement m-homogeneous start systems
  • Implement the NID algorithm
  • Implement UserHomotopy algorithm
  • Significantly advance the Python bindings for Bertini 2
  • Groom the logging features for the library
  • Expand documentation, including the docstrings for the Python bindings

Can you help? If so, give me a shout! I have opportunities for people of all skill levels, from programming noob to guru, and from NAG noob to guru. I am passionate about the Numerical Algebraic Geometry community and software, and would like you to be a part of it, too!
B2 repo redo


I did it! I nuked the Bertini 2 commit history from Github!

Mistakes were made, lessons learned. The major lesson I learned, and helped teach my team (sorry, team) was to

never rebase a public commit

which, yes, I know, is Git 101. But at the same time, it's not. The consequences of rebasing or rewriting history do not become clear until you have experienced them -- or at least, that was how I learned it.

Here's how it happened.

In the beginning, there was ignorance. Temporary files and junk got committed to the Github repo for Bertini 2. The files kept getting updated with successive commits. The stupid .DS_Store file from Mac OSX made repeated appearances.

So the download size of the repo kept growing. Cloning a library which essentially did nothing took 300 MB. It was absurd. And .DS_Store caused problems for more than one developer. So I pulled out the big guns.

BFG Repo cleaner was called in. Down flew the giant, removing all instances of .DS_Store from all commits in the official bertiniteam b2 repo. And history changed.

Literally, history changed. My personal development fork, once the source of all my bertini 2 work, de-synced from bertiniteam. Every commit which had been re-written by BFG now appeared to be a duplicate.

So, when I went to do a Pull Request into bertiniteam/b2 in December, I had several hundred repeated commits. They looked duplicate. Except that the hash was different, now. And no amount of hair-pulling could re-sync the repos.

I had several options, all of which amounted to nuking the repo from orbit. So I did. After much discussion, it became clear to me that a total wipe of the repo, and of every dev's fork, was essential. Again, sorry team!

Over winter holiday, I committed to the nuclear path for the repo. I deleted the entire commit history, deleted my personal fork, and started over. But the benefit is that no .DS_Store ever made it into the repo. There are no XCode bits and pieces that a casual cloner gets when cloning. It's nice and clean.

I just have to never do it again. Never change history. And you'd think that'd be obvious for me, with time travel being my favorite movie genre. Speaking of, you should watch Timecrimes.