How do you distinguish macros you have posted already?

What are some of the ways people use to distinguish macros they have posted from ones they use privately or are still working on intending to post? There are several awkward scenarios; the ones that bother me are:

  1. I am developing a group and finally want to post it.
  2. I post a macro or group and keep working on it for an update.
  3. I am using a macro or group privately and don’t expect to post.

There is also the whole question of how to distinguish macros and groups obtained from other people.

I’ve tried a number of things. So far the best, but still unsatisfying, solution I use is:

  • prefix private and evolving groups with a weird character (which I choose to alphabetically group related groups)
  • make a copy of the group when I want to post it
  • remove the weird character
  • disable the group (both out of consideration for people uploading it and so I don’t have keystroke duplicates)
  • post

The weird prefixes don’t necessarily tell me whether or not I have posted already. The way I have often resolved this problem is to prefix groups being developed with the intent to post with the character ⟹ and groups I have already posted with ➜, then keep developing the ⟹ groups and look for the ➜ equivalent for posting again. This approach requires me to remember to remove the ➜ before posting the group/macro. It also requires me to realign the private copy with the export, which is so difficult a problem that I usually just start over, making a new copy of the private group and deleting the old.

I expect other people will come up with other important patterns and am looking forward to hearing from them.

I have 500 macro groups (!!). I didn’t even realize I had so many, just that I was getting increasingly frustrated handling them. Similar issues arise when importing other people’s macros and groups, compounded if you want to put imported macros into a group of your own making or add them to one of your own (e.g., someone’s single Safari macro to your group that is only active in Safari).

What would really, really help here in so many ways would be the introduction of group “collections”. I don’t know how to express that so it doesn’t sound that I am looking for a complete hierarchical group structure, and groups are already “collections” (of macros). But the time may have arrived where it is worth thinking seriously about adding one top-level of collapse/expand collections that contain macro groups.

Standing back and looking at the big picture, that is a very interesting post.

For discussion, please allow me to take a skeptical point of view.

KM's search function is so easy and so fast, how would "collections" be better for your work?

Asking because I've been using KM for 5 years, and have only 24 macro groups.
I compare that to your 500, and start to wonder if I'm not doing something that I ought to be doing.

And the only reason that I have 24 groups, is because groups is the only place to specify "available" choices, like this example:

.


If it were possible to specify "available" macro-by-macro, then I would have only one macro group, for all macros.
Would use dynamic "smart groups" and ad-hoc searches.
Seems so much faster and easier than taking time to manage "collections".

What am I missing here?

I have a document in Quiver (although it's irrelevant what app the document is in), and when I post a macro, I add it to my Quiver document, complete with URL to the post.

I actually have a workflow that allows me to update my GitHub project from my Quiver documents. It keeps my GitHub project in sync.

Interesting approach.

It just gave me an idea. I have a macro I always use for uploading my macros. So I could easily add a log file entry for the macro being uploaded.

Since a lot of the macros I upload are in response to another users question, I try to include in the ReleaseNotes Comment for the macro a link to the users question.

1 Like

Skepticism is good, especially with me, since I get easily carried away with grand plans or extra fine tuning.

Actually I miscounted — only 150 groups.

  1. There is no way (that I know of) to search KM groups, so I am left scrolling through my long list. Basic UI Design says that once you have a long list — and 150 qualifies — the list should be subdivided through one mechanism or another.

  2. My collections would have cognitive significance — for example, hacks, large integrated sets, things I have already exported, individual downloaded macros, collections of related groups of macros.

  3. Many groups are spawned by the need for a particular kind of activation.

Here are some concrete examples:

  • I have 30 groups that are each active for one application. I would like to put them all in one collection. (I am surprised there are only 30, actually, as I use a large number of applications.)

  • I would like to put groups I am working on with the intent to post in one collection.

  • I have an annoying 10 groups that each have 1-4 macros related to a particular application, but activated under different conditions, which I would like to bury in a single group.

  • I have about 25 deactivated groups that gather examples and macros I have downloaded.

  • I have about 25 macro groups I have downloaded KMFAM, MIM, etc.).

  • I have about 20 groups I would like to collect in one place having to do with KM development: groups for each of Experimentation, JXA, KM Experimentation, Swift, AsObjc, Python/Perl/Terminal.

  • Some of the groups I have posted, or hope to post, are small, but need to stay together for posting; it would be better if those were in one collection.

I could go on, I guess. But there are some ideas. Probably the one standout is groups that each have different activation criteria, perhaps as simple as when a particular application is active.

@peternlewis: Stay calm, the next paragraph is conceptual only.

I am glad you mentioned smart groups. I meant my OP to include an idea that I haven't tried whereby I could include a classification comment in each macro that would list keywords that could be matched to constitute a smart group. (for example, a keyword for "Posted"). Well, it took the computer world a long time get there, but the Tag meme won out, and I guess if macros -- or even groups -- could have tags it would give me quite a bit of what I want.

What criteria would you use for smart groups?

One of the things you are missing is my obsessive drive to fight my chaotic work habits with over-organization. Besides, I am an old-time data structures guy, when there used to be people who actually designed, implemented, and taught data structures. No matter how complex something is, I'm comfortable as long as it has coherent and consistent structure.

Oh, no!! Now I'm going to run off and start programming a Numbers spreadsheet with a dozen or two columns regarding the status of a macro/group, its origin, relationship to other macros/groups, relevant Forum/Wiki pages, my own categories, icon, source of icon, whose ideas I used, what ideas it demonstrates, ugh, ugh, ugh. As if I don't already spend more time in KM and this forum than doing real work.

Um, a simple text document will do the trick.

I was thinking more along the lines of a SQLite DB . . .
or a simple text document. :wink:


BTW, note to all:

If you post all of your macros to the "macro" category, you can get a list of them by this forum search:

`@YourUserName #macro in:first`

I would image an enterprising, motivated, programmer-type could determine if a macro has been uploaded by:

* Get the name of the currently selected macro in the KM Editor app
* Run and capture the KM Forum search I just posted
* Determine if the selected macro is in the list
1 Like

Many thoughtful comments.
Thank you, @MitchellModel, for taking time to think and to post as you did.

Very helpful for me to learn how you organize macros and groups.
I hope equally useful for you to write about it.
.

[quote="MitchellModel, post:5, topic:5536"]
There is no way (that I know of) to search KM groups, so I am left scrolling through my long list ... I could include a classification comment in each macro that would list keywords that could be matched to constitute a smart group. [/quote]

In return for your time and effort above, here's one way to search KM groups.
No need for scrolling through that long list of groups.

This method does everything within KM.
Nothing outside of KM.
No tags.
No feature requests.

Works in Smart Groups as well as simple, ad hoc searchs.

Create one macro in each group that is empty and disabled [ X ].
All you do is type keywords in the macro's name field.
No triggers.
No actions.
No comments.

When you search the result set will appear in the "Macros" column.
Down arrow will show each macro plus group for each macro.
The essential element is in upper, right corner, in tiny, gray letters:
the name of the macro group.

2 Likes

Clever, clever, clever. Wish I had thought of that. By the way the search would work if those "key words" were in a comment in the disabled macro. A macro group key word facility! This technique should be disseminated more widely.

One thing to keep in mind is that innocuous words will catch many more macros than you would want, since the matches look everywhere -- comment titles, comment bodies, variable names, action names, tokens, menu names, script terms, etc. The keywords would need to be distinguished by prefix, suffix, or enclosure, e.g.:

  • /keyword
  • [keyword]
  • keyword!

If the macro contains just comments, it doesn't matter whether or not its disabled — personal preference whether to see it grayed out or not in the macro list.

One could imagine some kind of tag facility for groups, macros, and even actions being added to KM, but that would entail a serious upheaval.

Here's an example of what I might use:

1 Like

Very orthogonal !

Solves this problem quickly, and with complete flexibility.

I like it.

1 Like

@ccstone (Chris Stone) established a convention of using text tags years ago that I use.
The format is:
@TagName

no spaces are allowed, but the search is case insensitive, so caps don't matter. I use caps just for readability.

A KM search will find macros that have these text tags in any Macro Name or Action contents.

I find this works very well. Use of the "@" eliminates almost all false positives.

BTW, this approach also works well with Spotlight in text files, like script files.
I often use a Spotlight Search like this:
kind:script @tagname

There is a problem with all the proposed solutions, including mine. The OP asks specifically about distinguishing posted macros/groups from others. We had an interesting discussion about tagging, but lost sight of the original goal. The problem with tagging a group (with a special comment macro), a macro (with a special comment action), or even an action (with a tag in its name or the script it contains) is that you’d add the “uploaded” (or whatever) tag after you post, which means that already your group/macro is different from what you posted and you have to remember to remove the “uploaded” tag before you post a new version.

What's wrong with this:

Why would you add this after you post? I'd add it during the posting process.

The bottom line is that if the user doesn't do something to keep track of uploaded macros it won't get done.

Thus the case is made for automating the process as much as possible.

-Chris

Useful, but not the same. It answers the question "have I uploaded this macro?". It doesn't distinguish them in terms of an editor workflow so that you could identify, search, etc. the ones already uploaded.

This recreates the original problem. If everyone tags their macros with @uploaded or the like then how do I distinguish my uploaded macros in the KM editor from other people's?

To make this more concrete, suppose I want a Smart Group that collects all the macros I have uploaded.

(It's not a great example because it doesn't capture groups that have been uploaded where I indicate that in a comment for the group not in each macro.)

Your macros contain a comment, "Created by: MLM".
Unique to you.

Search: "@uploaded" AND "Created by: MLM"

You've probably, just now, mentally created the text expansion to do that.

2 Likes