Keeping Simple Sequencer Simple

Issue #894 closed
Peter Morse created an issue

I have watched with interest the appearance of "Start of first targets options" and "End of Last Target options" for the Simple Sequencer in recent builds. I would like to start a discussion of these features as I have serious reservations about whether they belong in the Simple Sequencer. I am not sure of the thinking for the final form of these options as I have seen various implementations in the daily builds. Nevertheless, I don't think these options should be implemented.

First, these features duplicate functionality already in the Advanced Sequencer.  One could argue that the Simple Sequencer is itself a duplication, but I do think there is a need for the Simple Sequencer as a place to gather targets and to automate exposures. I think the advanced sequencer is appropriate for users that have a permanent observatory that is automatable. On the other hand, the Simple Sequencer is great for users such as me who do not have a permanent setup and who are primarily interested in automating exposures. The start and end options in the simple sequencer are a bit of a puzzle. I have seen two different implementations in the daily builds: one where the pre and post options are fixed and not optional; and one where the pre and post options are selectable but a subset of all options. Nether is a good approach in that they both assume a minimum subset of pre and post options are appropriate for all users. On the other hand, all pre and post options are available in the advanced sequencer rather than a limited subset.

Second, these features are making the Simple Sequencer form a mess. Not only is the form getting excessively crowded but it is mixing two different concepts. One concept is a single target as represented by the target tab and the other concept is the target set which applies to all the tabs. In case of the advanced sequencer, these concepts are represented by the linear flow of the three sections of the sequencer. The Simple Sequencer, on the other hand, has the tab list of the targets followed by the target set pre/post concepts side by side below the tab list. The result is the top part is for the one selected target and the bottom applies to all targets. This is not a good visual representation of the two concepts together.

Third, it appears that the Simple Sequencer is being designed as a place to gather targets for possible copying to an advanced sequence. I agree with that approach as the Simple Sequencer is where you can import target from Telescopius and otherwise plan targets. However, when you copy a simple sequence to an advanced sequence the question becomes what to do with the pre and post options. One could ignore the options or somehow merge them into the pre and post options of the advanced sequencer. In the latest build I tried, copying to the advanced sequencer added the pre and post options to the targets directly in a way that did not make sense to me. This is one more area where the pre and post options do not seem to fit with the simple sequencer.

When I image, I manually connect equipment, cool the camera, align the scope, etc. I then start one or more automated exposure runs. When I finish, I manually reverse the process, so the pre and post options are just a hindrance for me. If I ever want more automation, I know it is available in the advanced sequencer. I understand I am late raising this issue as it is well along in its implementation. However, it is not too late to step back and ask if these options are adding something new and different from the advanced sequencer or do they represent code bloat, complexity, and add another concept to an already complicated form. The question to ask is whether a Simple Sequence user will find these features more useful than the in advanced sequencer or are they just a duplication of function. Let’s keep the Simple Sequencer true to its name and not allow feature creep to distort its simple purpose.

Comments (14)

  1. Stefan B repo owner

    The advanced sequencer is by no means designed for stationary setups. I for example myself don’t have a stationary setup, but will use the advanced sequencer due to the big flexibility to design the sequence.

    As for the simple sequencer, this needs to serve a couple of use cases. In the old builds the options for the sequencer, where the advanced sequencer was not yet available as well as previous releases, these were placed inside the options, as there was only one sequencer. Although the place there didn’t make much sense as it was too hidden.

    Now with the simple sequencer and the advanced sequencer, the simple sequencer is there for users that want to do their imaging run like before and don’t want to step into building custom sequences. For this some of the options that were previously available have been removed (dome stuff and external scripts) and only the most core elements that many people have in common are there. This is having a cooled camera and a telescope - so cooling and warming the camera as well as parking the mount at the end - this has also been requested often. (The meridian flip is a bit of an oddball here)

    When converting the sequence to the advanced - the pre instructions go to the top and the end instructions to the end. Some of the conversion logic could potentially be improved.

    On a side note: At the start of the nightlies, there was a lot of backlash from some users that do absolutely not want to transition to the advanced sequencer, but want the simple sequencer like in previous builds because it is too complicated for them. This approach here is the middle road to still have a sequencer to fit many needs without having to use the advanced one.

    Personally I won’t use the simple sequencer again for my imaging runs anytime soon.

  2. Peter Morse reporter

    Thanks for the history of these items but I still wonder if they are not a needless duplication of the advanced sequencer. Whether a user has an observatory or not is irrelevant, I just used that example for illustration not to suggest that was the only usage.

    If these options remain, then the UI needs to be redesigned to clearly delineate those items that apply to the selected target and those that apply to the target set. As part of the redesign, the “Sequence mode” control needs to move into the target set portion of the form as it is not target specific. Briefly thinking about it, having the pre items above the target items and the post items below makes visual sense. Perhaps those sections (and maybe the target section) can be collapsible to help the crowding. However, this begs the question doesn’t that design start to turn the Simple Sequencer into another advanced sequencer?

    Based the the history you laid out, perhaps it is time to clearly articulate the purpose of each sequencer which will help guide the design. The advanced sequencer is obviously the sky’s the limit for features. So how do we draw the line for the Simple Sequencer? I think we can agree that target planning or import is a valid purpose. So the gray line comes down to the degree of automation. I think exposure automation should be in. Meridian flip, guiding, and dither are valid parts of exposure automation. It’s the remaining subset items that are in the gray area and they are what contribute to the form clutter. So how does one determine the minimum subset to include? No matter what you pick it will be wrong for some set of users. Thus I'm arguing for very limited automation (just exposure control) with the idea that the advanced sequencer is always available. If users are balking at using the advanced sequencer perhaps that suggests a UI review to improve usability of the advanced sequencer.

  3. Dale Ghent

    I don’t think this is as big an issue as it’s made out to be. I also think the names of each clearly denote the intents of each. Mechanically, Simple Sequencer is a subset of the tools available in Advanced, just with a different UI (under the hood, Simple Sequencer is built around the Take Many Exposures instruction in Advanced Sequencer.)

    Simple Sequencer is a reimplementation of what I’ll call the “Legacy” sequencer of 1.10 and prior. People who use 1.10 and are accustomed to only it and, remember, quite a few people still use 1.10 because it is the current Stable branch. When 1.11 eventually supersedes it as the new Stable, these folks will start upgrading and be confronted with a choice of continuing with the “legacy” sequencer in the form of the Simple Sequencer, or moving to Advanced.

    The goal is not to punish people for sticking with Simple. Simple isn’t meant to be a temporary stop, even though I think we all can agree that Advanced is where it’s at. We’ve opted for the carrot instead of the stick here - plugins and the wealth of functionality they bring are available only in Advanced. Dome and other automata are available only in Advanced. Dome’s existence in the Legacy sequencer was fleeting and never something that anyone saw, as it existed there briefly early in the 1.11 dev cycle, before Advanced Sequencer landed. As Stefan explained, it was removed when Legacy was gutted from the early 1.11 codebase and was purposefully not reimplemented in Simple when that came into existence after Advanced replaced Legacy.

    Looking at the current set of Simple functionality, it mirrors 1.10’s Legacy functionality, and the start and end of sequence options make sense. They are spartan and I think totally within the realm of appropriateness for Simple. If anything, they’re better organized now into the two separate start/end sections to make them visually clearer in their purposes. There’s no further intent or talk of adding to that list, so I really don’t know what the deal is. Advanced is more than just about raw bits of function, it’s the ability to place that function where you want it in the flow.

  4. Peter Morse reporter

    Some of what we are each saying is perspective. I’m new to the code base so I ask questions based on little historical knowledge but rather looking at NINA as it is today. Backward compatibility is an important issue for sure but sometimes as a code base evolves it can get into awkward situations that would not happen if not for the historical flow of the project. So I’ll try to keep in mind the history and please accept the observations of someone looking at NINA as a newbie.

    Please help me understand how the pre and post options are supposed to work. I’ve seen two different views of these options. In one, the pre and post options are just listed with no apparent way to change them. In the second view, the options are displayed as controls that can be changed. I assume the latter is the preferred view but I don’t understand where the other view is coming from. I tried looking at this issue again today but the build is broken.

  5. Dale Ghent

    Build’s not broken. You likely need to refresh your local git LFS repo as some SDK DLLs were updated today.

    I’m not sure what the mystery of the start and end instructions are. Simple offers to cool or warm the camera. It uses the default cooling parameters as laid out on the Equipment > Camera screen, as is done with the Legacy sequencer in 1.10. The same operations under Advanced offer local knobs to adjust the temperature setpoint and duration, with the defaults being the same settings on the Equipment > Camera screen. Meridian flips and park/unpark are optionless in both Simple and Advanced. Meridian flip uses the parameters laid out under Options > Imaging.

    So really, the only start/end instructions in Simple that have additional options in Advanced are the camera cool/warm ones. In both cases the defaults are taken from what the user has configured under Equipment > Camera, and Advanced cool/warm instructions allow the user to specify parameters that are different from the default. Their incarnation in the Simple Sequencer interface is… simple and mirrors how the same options act in Legacy.

  6. Peter Morse reporter

    I updated LFS and it is still broken with references to OxyPlot. I also did a Restore GetNu Packages.

    In some views I’ve seen it just lists the start and stop options with no option to change them - that is what is what I am asking about. Other times I see a view where you can change them. When I can get a good build I’ll send you a screen dump of what I’m talking about.

  7. Peter Morse reporter

    OK, I answered my own question which adds further to the need to change the layout. If you don’t have the main window wide enough, it clips the pre and post controls leaving you with no clue that you can change the options.

    Would everyone be amenable to redoing the layout of the Simple Sequencer so that the pre options are above the targets and the post options are below the targets? Also, move the “Sequence Mode” above the targets. And, generally checking the layout for various window widths. I think this layout will actually take less space than the current side-by-side because it looks like each section can be one line of controls.

    PS, At the moment the develop branch build is still broken for me even after doing a LFS update.

  8. Dale Ghent

    It’s still not clear what the actual problem is. I think you’re taking a very inflexible look at a very subjective thing. To add, the bottom area is where the start/end options exist in 1.10.

  9. Stefan B repo owner

    The sequence mode is target specific.

    Moving the start options on top further reduces the page space.

  10. Josh Jones

    Boy, I am fairly new to NINA but really liking it. I really wish the park dome was an option on simple sequencer… advanced area is very configurable, but I like the simple sequencer options of just basics… park scope, park dome, etc… just a user and his 2 cents worth.

  11. Dale Ghent

    Hi Josh. This is a thorny subject for sure and I realize that, on its surface, closing a dome has the appearance of being simple task in and of itself. But it sets a bad precedent for Simple Sequencer and it’s a slope we don’t want to edge towards. We feel that, if everyone got what they wanted in Simple Sequencer, it would no longer be Simple and we would be back to confronting the design considerations that prompted the invention of Advanced Sequencer.

    There have been many requests to add various bits of function to Simple Sequencer. Individually, these requested items might seem simple and innocent in terms of complexity, but as a whole, that is not the picture. Parking domes will undoubtedly lead to opening and syncing domes. And if you have a dome, then a desire to use safety monitor devices will likely surface at some point. Then the people who have wanted inter-exposure delays will point to that and say “but what I want is even simpler than what dome users got, why can’t I get want I want”, and then people who want logic to start or stop a sequence at a certain time will point to all that and say “hey, all I want to do is start my sequence at a certain time, and they got dome control and inter-exposure delays”… and on and on. Eventually, Simple Sequencer will no longer be simple.

    We’ve decided to draw a hard line on this topic and Simple Sequencer will stay pretty much as-is. Of course, there is always the chance that this stance might change in some way in the future but, currently, the team overwhelmingly agrees that Simple Sequencer should stay as it is, and any further function beyond its capabilities - stuff we feel is truly Advanced such as dome management and its paraphernalia - is material that would find Advanced Sequencer a better place to operate in.

  12. Josh Jones

    Dale, no worries, I get it… just feedback. I didn’t make it and I’m just enjoying using it, so not criticizing or hoping it gets in there or anything, I’m going to for sure jump into advanced sequencer for it.

    Just my thought on the process though, is I like your hard line in each area, that totally makes sense. I see basic or simple tasks in each area though (camera - on/off), or you have telescope (park/unpark), or guiding (on/off), and I do see dome (park, unpark) as a good alternative there as it is taking basic function out of each complex system…

    and then if users want advanced they go there for more automation… to me seems like a good logical way to break down the line between simple/advanced. but I get it… I build software myself… great tool you guys have here.

  13. Log in to comment