PLEASE COMMENT: IMatch Anywhere File Lens: Keywords

Started by Mario, September 30, 2017, 06:50:31 PM

Previous topic - Next topic

Mario

The next generation of IMatch Anywhere will allow users to update metadata directly in their browsers. See related threads below for more info.

Over the past couple of days I was busy making design decisions for the keyword editor which will be part of the File Lens in IMatch Anywhere.
This editor will allow you to edit keywords for one or multiple files. Let me know what you think - now is the time to shape things.

As with all features in IMatch Anywhere, one of the key design goals is simplicity and responsiveness, which means it must adapt to various screen sizes and devices. From smart phones to 8K TV sets.
It must also be usable on touch devices with on-screen keyboards (tablets, smart phones).

Designing such a thing is harder than it looks, and I went through several designs and did a lot of thinking. What I'm currently thinking as a very usable solution looks like this (click to zoom):



On the left you have an input field where you can type in new keywords. This field is linked to the thesaurus and provides intelligent suggestions. Keywords in the thesaurus starting with the text entered by you are presented on top, keywords containing the text are shown below that.



Below the input field you see the keywords currently assigned to the file.
When you click or tap a keyword, it is removed from the file. Removed keywords are displayed in red below the current keywords - for an easy undo.

On the right side you see Favorite keywords. You can create new favorites by dragging keywords from the left section to the Favorites Panel.
To add a Favorite keyword to the current file(s) you just click/tap it.

The Recent panel shows the recently used keywords and is automatically maintained by the system.
To add a recently used keyword to the current file(s) you just click/tap it.

The Suggestions panel will provide keywords suggestions provided by IMWS (or maybe in the future by an cloud-based AI which analyzes image content and makes suggestions).

The Thesaurus tab will present the thesaurus in some form. I'm still working out how to present a thesaurus with potentially thousands of elements in a relatively small screen space. I have some ideas, I'll keep you posted.

-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Jingo

Wow... I like it Mario... I really like it!   It might just be my eyes - but I would only suggest brightening up the blue and red text color for the keywords... they seem a bit dark to me against the darkish background.  I like the layout though - really clean and easy to figure out what you are doing.

Also, I think the "empty star" is standard in IM (to clear the rating) but perhaps a slash through the star (like you have for the circle) might be more clear?

Will selecting multiple images allow you to make both global edits (add the same keyword to all selected images) as well as individual edits (only mark certain items as 3 stars)?  Or - is the editor and all or none type of setup for simplicity?

Thx for sharing... love it!

Mario

There is currently no slashed start in the icon library I use for the web. Maybe in the next release.
The colors etc. are sill fluid, I first try to get the feature working and then do fine details. Incorporating feedback from beta testers etc.

There is some animation going on when you add / delete keywords or favorites, this makes it even easier to follow.
Changing the order of favorites is done by simple drag & drop - and while you drag a favorite a trash can is displayed so you can easily dispose unwanted favorites. Pretty intuitive.

The File Lens has a "all files / single file" switch on the bottom left. You can either apply the changes you make to all files, or to individual files.
You can switch the mode any time (with an implicit save when needed) to, say, first add a copyright notice to all files, then rate, label and tag individual files.
Very similar to the IPTC editor we had in IMatch 3  ;D

For keywords there will be a "add all / replace" mode when more than one file is selected.
Mode A: You replace the keywords of all selected files with the keywords of the 'template' file you see.
Mode B: You add/remove the same keywords you have added/removed to/from the template file - retaining the keywords already in the other files.

This keeps things reasonably simple while still supporting the most common cases.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Kucera

Hi,
Some way to use the Excire plugin, if it gets implemented for IMatch, probably would be useful in the File Lens as well.

And a question rather than a comment: Will there be a similar interface for working with Categories, or are you veering off Categories in favour of Keywords for the future?
Just wondering if I should start thinking about switching my categories to keywords instead  :). So far I prefer categories, because I cannot quite see the need to have all the info inside the photo (pretty much 'home' use only for my photo collection.

Regards Emil

Mario

#4
There is currently no progress with Excire. I'm waiting for feedback from them.

If you look at the File Lens, you see a tab labeled "Categories" right next to Keywords. Categories will never go. They are so much more powerful than simple keywords.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Kucera

Should have known that IMatch will always be way ahead of my thinking. Thanks for making a great program better and better all the time  :)
Regards Emil

tmcgill

Quote from: Mario on September 30, 2017, 06:50:31 PM
The next generation of IMatch Anywhere will allow users to update metadata directly in their browsers.
You're going to make me buy an iPad, aren't you...

One key question for this capability: Is there a mechanism for synchronizing those updates with another copy of the same database? Right now I have (and I understand that the ordinary deployment scenario is) a deployed copy of my IMatch database for IMA. I have to make my changes in IMatch and then the database is copied over to the system where the IMA service is running. I love the idea of sitting on my couch or in bed with a tablet, doing basic organization and categorization tasks, then coming back to IMatch for the pieces that require more heavy lifting, but as deployed right now, there's no way for hypothetical IMA-based changes to ever get back into the master IMatch database.

What is the scheme you envision for allowing changes to be made from both places without the results existing in only one?

Mario

If you want to make changes to your database via IMA you must settle on one database.

The deployment scenario you mention can of course only work in an environment where the database published by IMatch Anywhere is not modified. That's the classical "DAM Server" approach.
If you want to use the updated database with IMatch Desktop, you will have to shut-down IMWS in order to open it. IMWS and IMatch need exclusive access to the database.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Jingo

Quote from: Mario on January 10, 2018, 07:54:01 PM
If you want to make changes to your database via IMA you must settle on one database.

The deployment scenario you mention can of course only work in an environment where the database published by IMatch Anywhere is not modified. That's the classical "DAM Server" approach.
If you want to use the updated database with IMatch Desktop, you will have to shut-down IMWS in order to open it. IMWS and IMatch need exclusive access to the database.

Hmm... so, is there a way to share a single database between IMA and IMatch currently or is this something that will be possible once editing within IMA is available?  I thought we HAD to use a copy of the database currently.

Mario

You only need a copy when you want to publish a database with IMA at the same time you work with the database in IMatch. Both need exclusive access to the database so you cannot open the same db at the same time in IMA and IMatch.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Jingo

So - that means stopping the IMA service each time I want to use Imatch even if there are no users currently connected to the database via the webapp?  Is there a way to sense that the database is already engaged via the service and ask the user upon starting IMatch if they wish to stop/start the service upon begin and end of IMatch? 


Mario

Quote from: Jingo on January 10, 2018, 10:08:25 PM
So - that means stopping the IMA service each time I want to use Imatch even if there are no users currently connected to the database via the webapp?
Precisely. IMWS needs full control over the database and opens it in exclusive mode. Same as IMatch.

QuoteIs there a way to sense that the database is already engaged via the service and ask the user upon starting IMatch if they wish to stop/start the service upon begin and end of IMatch?

Did you try it?
IMatch will tell you. At least that the database is locked. And when it detects IMWS running it will tell you so as well.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Jingo

Quote from: Mario on January 11, 2018, 08:58:00 AM
Quote from: Jingo on January 10, 2018, 10:08:25 PM
So - that means stopping the IMA service each time I want to use Imatch even if there are no users currently connected to the database via the webapp?
Precisely. IMWS needs full control over the database and opens it in exclusive mode. Same as IMatch.

QuoteIs there a way to sense that the database is already engaged via the service and ask the user upon starting IMatch if they wish to stop/start the service upon begin and end of IMatch?

Did you try it?
IMatch will tell you. At least that the database is locked. And when it detects IMWS running it will tell you so as well.

No - I didn't try it yet but will... I currently use 2 databases which need to be kept in-sync.  Fine for now - but once editing is available via IMA - I would only want to have a single database and this presents the issue.  Having to manually shut down the IMWS service each time I want to use IMatch is not ideal... but - if the software would just provide an option to stop on open and restart on exit - that would solve it.

Mario

If you need this, create a small batch file which shuts down IMWS and then starts IMatch.
It should also be doable via an app, which uses ShellExcute. This would require Admin privileges of course, normal users cannot shut-down services.

Adding such a functionality to IMatch would also require elevation and Admin privileges for shutting down the service etc. This may open potential security issues, maybe trigger virus checkers or cause issues with software execution policies or software which checks software for API functions being called.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Jingo

#14
Quote from: Mario on January 11, 2018, 01:37:14 PM
If you need this, create a small batch file which shuts down IMWS and then starts IMatch.
It should also be doable via an app, which uses ShellExcute. This would require Admin privileges of course, normal users cannot shut-down services.

Adding such a functionality to IMatch would also require elevation and Admin privileges for shutting down the service etc. This may open potential security issues, maybe trigger virus checkers or cause issues with software execution policies or software which checks software for API functions being called.

I've tried to create a script that shutsdown/starts the service before (using Powershell and by generating an exe that could before and after my synch software) to allow this to be automated and run along side my backup software.... but the service seems to take a long time to shutdown and start sometimes.  And - even with wait calls within the powershell bat file - the sync software fails because IMWS still has the database engaged via the service.

Do you have a script or executable that starts and stops this successfully?  I've tried numerous commands and none have reliably done the job.  Thx! - Andy.


*EDIT*  Well.. I found something that might be promissing via PsService... I was able to query and then stop/start the service via an elevated cmd... now, I have to see if I can create either a bat or exe that will run as admin both before and after a sync... stay tuned!!

Mario

When you stop the service, IMWS has to shut-down the database engine. Depending on what the engine is currently doing, this can take 5 to 60 seconds.

You need a way to shut-down the service and then wait until Windows reports the service as stopped.
net.exe waits for the service to stop. If you use PowerShell commandlets like Stop-Service you will need to poll.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Jingo

Thx Mario - was just able to figure out how to get this work....  don't know why this didn't work for me in the past - but I guess when you try again and again - eventually you get it to work. 

So - for those that might need this in the future, this is what I did to get this to work.


  • Stop: C:\Tools\Psservice64.exe stop "ImatchWebService"
                TIMEOUT 90
  • Start: C:\Tools\Psservice64.exe start "ImatchWebService"
[li]Setup your Sync program to copy your IMatch DB to your IMA DB folder - this will either sync them together (for the future ability to edit in both) or just perform a backup.  I'm using SyncbackPro for this - the software lets you setup a before and after program execute.. I run the Stop before the sync and Start after the sync to stop and the start the service... the delay in the Stop ensures the service has ample time to shutdown before the copy is started - otherwise it will fail.  I have Syncback setup to run at 4:30am each day... it will send me an email with success/fail details so I can ensure it has run ok if changes were made to the IM database.  Easy... Peasy!
[/li][/list]

Hope this is helpful.... Andy.

tmcgill

Just a note that synchronizing two databases by file copy is a dangerous operation when both sides might be changed. Watch out for clobbering one side's modifcations or the other.

Mario

Why do you use  PSService64.exe not the the built-in net.exe in Windows?
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Jingo

Quote from: Mario on January 11, 2018, 06:50:32 PM
Why do you use  PSService64.exe not the the built-in net.exe in Windows?

Well... because it works... I tried using net.exe and Stop-service before (there is a thread on here someplace about that) and it never worked... PSService64 worked on the first try so I'll stick with it (from a very trusted source... I use about 10 of SysInternals tools on my computer network and they are truly wonderful and free).

Quote from: tmcgill on January 11, 2018, 06:45:20 PM
Just a note that synchronizing two databases by file copy is a dangerous operation when both sides might be changed. Watch out for clobbering one side's modifcations or the other.

Agreed... I might switch to a single DB when editing is enabled... or, I'll just modify my syncback job to run anytime IMatch I started (syncback is always running in the bkg and it has job controls that allow the job to run whenever a certain program or event is triggered).. it will then copy the DB's between the 2 folders using the newer version (last modified date) as the key to sync the folders...

tmcgill

Quote from: Jingo on January 11, 2018, 07:10:19 PM
Agreed... I might switch to a single DB when editing is enabled... or, I'll just modify my syncback job to run anytime IMatch I started (syncback is always running in the bkg and it has job controls that allow the job to run whenever a certain program or event is triggered).. it will then copy the DB's between the 2 folders using the newer version (last modified date) as the key to sync the folders...
You might need to do it the other way around- set a shortcut to trigger your Syncback job with a post-execution task of launching IMatch, because I suspect Syncback won't be able to do its work after IMatch is already started. And even if it succeeds, it may well copy it the wrong direction, if IMatch makes a modification to the database file the moment it is begun, before Syncback does its comparison.