Computer: Programming
Et cetera software option   (+7)  [vote for, against]
Like "Redo", but more smarterer.

In Word, Excel, Illustrator and half a dozen other applications, I often end up doing repetitive things.

For example, in Excel, I might take a row of 8 cells and plot them as a histogram, then modify the histogram to look how I want it, then move it so it sits just to the right of those cells. Then I do the same thing for the next row of 8 cells, and the next...

Or in Illustrator, I might select both ends of a nearly- horizontal, carelessly-drawn line, and make them level so the line is perfectly horizontal.

Or a million other things.

I suspect that, if I knew what I was doing, there would be a way to create a macro or something in each of these applications. But this would be tedious, and probably different for every application.

So, along with the "Cut", "Copy" and "Paste" and other fairly universal menu options, I'd like an "Et cetera" option.

The application would look out for a series of repeated actions and, after a series of actions had been done three or four times in a row, it would enable the "Et cetera" menu item. Thereafter, selecting "Et cetera" (or Option-E or whatever) would apply the "Et cetera" to the next appropriate thing. So, in the Excel example I described, Option-E would take the next row of data, create the histogram, modify it, and align it to that row of data on the page.

The software would have to be fairly smart - but then again I don't pay Adobe £199 just to change the shape of the cursor. The application would have to figure out that a series of actions were being performed repetitively, and intelligently select the next target for that series of actions. It would not always get it right - but then a simple "undo" would leave me no worse off.

And yes, I know that many applications include a "Redo" option that will repeat the very last action (such as inserting a row of cells in an Excel table), but this generally only applies to a single, simple action. I want something that can tell that I'm doing the same _sequence_ of actions repeatedly, and effectively create a macro on the fly.
-- MaxwellBuchanan, Jan 12 2016

Excel has a flash fill feature that does pretty much this in a very limited way https://i.imgur.com/EprxW31.jpg
via /r/coolguides [notexactly, Jan 18 2016]

Undo the last 5 minutes Undo_20The_20Last_205_20Minutes
[theircompetitor, Jan 18 2016]

Macros?
-- csea, Jan 12 2016


//Macros?//

// if I knew what I was doing, there would be a way to create a macro or something in each of these applications. But this would be tedious, and probably different for every application.//

//How wide is the detection?// Tricky.
-- MaxwellBuchanan, Jan 12 2016


This would be completely doable using existing predictive typing algorithms, like the smartphone kind. Each action is a "word" and the program after a while says "oh you're 'typing' that again" and spews out the desired series of "words" and executes them.
-- the porpoise, Jan 12 2016


It's not tricky to do this if you can reduce your problem entirely to a iterative pattern of key strokes. There are general-macro recording programs that will let you record a sequence of key commands, for which you would typically input the first iteration of whatever task you're doing. After that, you hit the stop button, and then press the repeat button however many times you need.
-- Cuit_au_Four, Jan 12 2016


//There are general-macro recording programs//

I wonder how intelligent they are? For instance, in my Excel example, the macro would have to figure out that I want to move the histogram to line up with the corresponding row of data on the page - that's not a simple repetition of keystrokes. That's why I think that each application would need its own "Et cetera" functionality.
-- MaxwellBuchanan, Jan 13 2016


//intelligent//
//Excel//
-- lurch, Jan 13 2016


Actually, once you find your way into VBA for Excel (or any of the rest of the Office suite), then it's just a matter of figuring out "ok, what word does Microsoft use to describe the concept I'm thinking of?" (Ok, there's more to it than that, but it's a much lower level of complexity - like phonetically converting the Voynich manuscript to Linear-B)

In Illustrator, try holding down the shift key while you draw that horizontal line.
-- lurch, Jan 13 2016


+ although I think macros and a macro editor should be a must for every serious software that has editing capabilities.

I wonder what the Et Cetera button on Halfbakery will do.
-- pashute, Jan 13 2016


//it's just a matter of figuring out...// that's what I want to avoid. I have enough figuring out to do in the rest of my life. If I do a series of actions which is clearly repetitive, I want the software to be able to figure out what I'm doing - to extract the repetitive components of my actions, and apply them to consecutive instances.

Everyone has been there - doing the same actions over and over, because they're not just the simple, single steps that the "Redo" option can cover. If I can see that I'm doing something repetitive, the software ought to be able to see it too.

I don't insist that the Et cetera function be able to handle every situation, and I don't mind if it sometimes fails to "get" what I'm doing - as long as it works quite a lot of the time.
-- MaxwellBuchanan, Jan 13 2016


I recall Sketchup having something like this. If you extruded a couple of objects to 6.45", it would set the next object to extrude at 6.45" thereby saving you a couple of keystrokes (those keystrokes would instead be expended if you did not want to extrude to 6.45"). If you midpoint snapped a few lines, it would make the midpoint snap easier to find or a higher priority in case of overlying snaps. Etc, etc. It was quite a handy little drawing program.
-- the porpoise, Jan 13 2016


//I wonder what the Et Cetera button on Halfbakery will do//

Probably recreate [travbm].
-- RayfordSteele, Jan 13 2016


This is a serious KI problem which Roger Schank tried to solve with scripts which gave the software a clue what to expect in standard situations. For the Etcetera function the software would have to understand the intentions and concepts of the user, like "Extruding a plane to a 3-d corpus" in Sketch-up, or like "Put a black bar over the eyes of any person in this photo" in Photoshop. I doubt that a software implementation will come anytime soon. -- Meanwhile hook your computer up to a 3rd world IT sweatshop, have your personal attendant watch what you are doing and let her take over when you become bored. Then watch her making the same mistakes like you.
-- Toto Anders, Jan 18 2016


//the software would have to understand the intentions and concepts of the user//

Yes, which is why it needs to be implemented on a per-app basis (rather than, say, some platform-based function).

I still think it's doable, at least to an extent. In the Excel example I gave, it should be easy enough (after I've done 3 or 4 iterations) for the software to realize that I'm selecting each row of 8 cells in turn; creating a graph of a certain type from those cells; changing the font on that graph to a different one; and moving the graph. The only "subtle" thing is where I move the graph to; but the software ought to be able to tell that the relative positions of the data cells and the graph end up being the same every time I manually move the graph, and therefore infer that I want the graphs next to the cells.

Yes, there will be a thousand different circumstances in any app, and the Et Cetera function will be a major piece of programming, but what else am I paying Adobe or Microsoft for? I don't think this is significantly more difficult than, for example, search engine software that figures out what I want (fairly successfully) from a vague and ill- defined query.
-- MaxwellBuchanan, Jan 18 2016


If your last 25 years have merely been an iteration of simple sequence of events, then maybe it wouldn't be such a bad thing...
-- MaxwellBuchanan, Jan 18 2016


(marked-for-tagline)

" But this would be tedious "
-- normzone, Jan 18 2016


Machine Pareidolia

That is to say, if you took this concept far enough, then your app would probably start to develop superstitions and conspiracy theories. That could be quite interesting to watch.
-- pertinax, Jan 21 2016


//if you took this concept far enough//

Yes, it would be nice if the software learned my foibles, but realistically that's not going to happen. Just extracting the common elements from a repeated series of actions would be good enough for me.
-- MaxwellBuchanan, Jan 21 2016


From Bruce Sterling " Zeitgeist " :

" Many software merchants made the profound mistake of selling the best software they could make.

Luckily, a study of strategies for information pricing had made it clear that this was not the best source of revenue in a true Information Economy.

People became nervous and unhappy if they were sold decent software at a decent price. Decent software should only be offered at a terrifically high, premium price, and loaded down with extras and unnecessary but psychologically reassuring bells and whistles.

Then, the middle tier of the market should be offered a cheaper, but still expensive, crippled version of the original software.

And newbies and students and bottom feeders, in their many sorry thousands, were to be sold a barely functional, piece-of-shit, value-subtracted version of the product. "
-- normzone, Jan 21 2016


If you can reduce your problem to a pattern of keystrokes, then general macro-recording software such as AutoHotKey can be used to repeat the pattern. Full-featured text editors like Vim and Emacs have this functionality built in.

On the other hand, I don't know of any macro-recording software that would let you incorporate mouse movement in that manner.
-- Cuit_au_Four, Jan 23 2016


// I don't know of any macro-recording software that would let you incorporate mouse movement in that manner.//

Exactly, and that's what I want built into Excel, Illustrator... those things. The app knows where my mouse movements begin and end, and it knows where things are. So, if I move three things, and the only common factor in the movements is that they (for example) start by grabbing the most recently-created graph and end at a constant offset from the location of the graph's data, the software ought to be able to figure out that I want the graphs positioned just to the right of the data they were made from.

Put it this way. If someone were watching over my shoulder, they'd quickly deduce "Ah yes, he's moving each graph to sit next to the data it was made from" or "Ah yes, he's stretching each graph to be the same width". That's what I want the Et cetera function to do.
-- MaxwellBuchanan, Jan 23 2016


/// If someone were watching over my shoulder, they'd quickly deduce "Ah yes, he's moving each graph to sit next to the data it was made from" or "Ah yes, he's stretching each graph to be the same width". That's what I want the Et cetera function to do. //

That used to exist. It was called Clippy.
-- notexactly, Jan 24 2016



random, halfbakery