occam-ra / occam

OCCAM Reconstructability Analysis Tools
Other
20 stars 14 forks source link

make file based installable and executable OCCAM #44

Open venkatachalapathy opened 5 years ago

venkatachalapathy commented 5 years ago

I know currently the only way to install OCCAM in Windows is via some virtual box based environment (correct me if I am wrong).

I was wondering if it would be easier to use gnu make to install and execute OCCAM on a shell. I know this is a bit prehistoric but two C++ packages that I've run on my laptop do this, stan and SNAP, the former is a Bayesian statistics package; while the latter is a social network analysis package. Both the input and output are txt files ready for further processing.

Is this something we can do with our current version of OCCAM? And won't this bypass the need to have a server?

If we do this, then one could potentially run OCCAM on Windows via MinGW or cygwin, making it easier.

Even if this is not possible currently, am I right in assuming that once we have a python package version ready in the next few months, we could -at that point- make it easier to run OCCAM on Windows?

gdcutting commented 5 years ago

This is something I've thought about a bit. I think offering an occam executable (or at least a non-web version) is definitely a good goal. I would say that this, like a lot of similar things, is going to be quite a bit easier after we do some structural improvements to build out the python and pare down the c++ (rebalance the code between the layers).

We could definitely do this with the current version of OCCAM. The question, as always, is just priorities. I'm inclined to say let's wait a couple months until we have a functional python package. There's an argument to be made on the other side, though, that it might be worth doing in the shorter term.

My instinct is to do this after some restructuring, though, because I anticipate enough codebase changes over the next few months that I'm not sure it makes sense to commit too heavily to the current codebase - if we do an executable/gui version, it will have to be redone once the codebase is updated.

This is part of the larger conversation about partitioning development, particularly with reference to the Capstone project. We want the team to do their own work, while providing recommendations and guidelines to ensure that process goes smoothly. I think we have a pretty clear idea of what they are going to work on (python development and packaging), but I want to identify the best places to work alongside of them, so the core OCCAM team can be productive while not stepping all over the capstone work. So maybe this issue is one area to do that...

gdcutting commented 5 years ago

There's a couple of related issues here. Joe suggested providing pre-compiled binaries for main platforms (linux, windows, OS X), which is a good idea because it would save people having to do their own build (my machine was already set up for that but I forget that's not the case for a lot of people). Linux binaries would be easiest since we already have compilation working on linux. OS X would be next (I think we're close to having OCCAM compiling on OS X). Windows is third, since I have a Windows setup on one of my machines, but no developer tools installed, so would have to do further setup before working on that.

Related but separate is providing an executable. My idea of the easiest way to do this would be to combine the search and fit python command-line files (which are working), leave the current output format, and add a text menu and some basic flow control that uses the ocUtils helper, and then use one of the executable conversion packages to generate an executable from that. Then we would have a single (text-based) executable OCCAM application (not very pretty but at least a working start). Maybe this is something the capstone team could do? Or maybe after they do their work, then it will be easier to put together a working executable.

More suggestions appreciated on this...