"Today over the years"

Started by harrylah, December 15, 2021, 02:53:56 PM

Previous topic - Next topic

harrylah

Hi friends,
I use Amapzon Prinme for uploading my images to AWS as a backup (n.b. free of charge, if you mind a couple of limitations). The Android app then shows me what images are available for <today> over the years - which frequently brings up great memories.
Now, considering I have dates for all my images in IMatch, how would I accomplish the same? I was thinking of some filtering on the XMP fields, but don't seem to manage get the <today> into that filter...
Any suggestions?
Best
Harry

Mees Dekker

I've had sort of the same wish: show pictures that were taken in a specific month, over the years. I created a datadriven category that sorts all pictures into their respective months. See attached screenshot.

Now this only groups/sorts pictures by months, but I suppose it would rather easy to add a second level for each day.

No automatic update, because this category needs some time to search the entire database.

Hope this will get you started.

Mario

#2
Interesting. And quite easy to do with a variable-based data-driven category.

If you use this variable

{File.DateTime|format:MM-DD;is:{Application.DateTime|format:MM-DD},Today's Photos,}

and the settings shown below, you'll get a category named Today's Photos which shows all photos take on the same date as today.
Use a category name of your liking and change the Today's Photos in the variable to whatever you prefer.

Depending on the number of files in your database you can let this calculate automatically (< 100,000 I'd say) or set it to manual update.

The variable compares the month and day of the image with the month and day of today. Simple.
Probably you could also do things like "One Year ago" by using the math variable function to subtract one year from today's year and use that to find all images taken at the same date a year ago. Or two years. Or four years...

For example: {Application.DateTime|format:YYYY;cast:int;math:sub,1}-{Application.DateTime|format:MM-DD} gives today's date - one year ago.
You can use that with is: to find all files taken one year ago.

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

harrylah

Thanks a lot for the suggestions, Mario's solution does exactly what I had been looking for. Just one more thing: I'd prefer to have the filteres values grouped by the years, not everything in one single category.
My attempts to add a second level with auto grouping on the first 4 digits of XMP::exif\DateTimeOriginal\DateTimeOriginal\0 yielded unexpected results: the query took looooong and ended up in way too may results which also were not of <today>...

harrylah

I'm almost there. I figured out that I need to limit the results in Level 2 on the parent category ("Today's Photos"), then I got a close to perfect tree, just that all the year entries are doubled now. But that is so close to what I had intended that I'm happy now. :-)
Merry Christmas, all!

sinus

That is interesting, Harry

A good idea. It is, I think, the same, when journalists talks "Today since 20 years this event happens ..." or since 10 years or 50 and so on?!
This fits also very good in my personal timeline.

Have a good time.  :)
Best wishes from Switzerland! :-)
Markus

sinus

Wanted to stress:

This is really quite a nice thing.
I call it "today before x years" ....  ;D

Say, your birthday-photos or New-Year: with variables like this you can get, what has been before 5 or 10 and more years.

Quite nice, thanks, Harry.

I love variables and together with IMatch you can do astonishing things.
Best wishes from Switzerland! :-)
Markus

JohnZeman

I agree this is really nice.

I'm not a professional photographer so my photos are very sentimental to me.  Following Mario's instructions I created such a data-driven category and when I refreshed it the very first image at the top was a photo I had taken 18 years ago today.  It was the day we moved our youngest daughter out of college to a city 700 miles away where she would begin her new life.

I love it, and I will be checking this category every day, thanks for posting this topic Harry.

Mario

I think it might be worthwhile to make this part of the IMatch Standard Category Set...?
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

JohnZeman

Quote from: Mario on December 29, 2021, 12:32:58 AM
I think it might be worthwhile to make this part of the IMatch Standard Category Set...?

+1  I agree!

zematima


sinus

I agree also of course, but I wonder, how it would looks, because we can let group them on years or month, not grouping and so on.
I am still looking for this ...

But yes: a big +1 this was a good idea from Harry  :)
Best wishes from Switzerland! :-)
Markus

Mees Dekker

+ 1 here too.

Can we also do a +2  :D

Mario

#13
The trick will be to make this somewhat elegant...

When you use the following variable for a data-driven category, your files are organized based on today, -1 year, -2 years, ... -n years:

THIS VAR DOES NOT WORK, SORRY. I NEED TO RE-THINK THIS when I have more time

{Application.DateTime|format:YYYY;cast:int;math:sub,{Application.DateTime|format:YYYY;cast:int;math:sub,{File.DateTime|format:YYYY;cast:int}}}-{Application.DateTime|format:MM-DD}

You get categories like this (assuming today is December 29., 2021):

...
2019-12-29
2020-12-29
2021-12-29

and each category contains the files from that day.
When you refresh the category tomorrow, you'll get

...
2019-12-30
2020-12-30
2021-12-30

instead. Which is functionally correct (and, frankly, giving that we only have used a variable and data-driven category, quite awesome).

What I would prefer, though, would be something like this:

One Year Ago
Two Years Ago
...
10 Years Ago

I don't see a way to do this with a data-driven category. I'm pondering to add a special category formula operator for this (alongside formulas like @Metadata or @Attribute).
Some operator which compares the current date with the date of each file in the database and a user-specified offset.

For example:

@YEARSAGO(1)
@YEARSAGO(2)
...
@YEARSAGO(10)


Having such an operator would allow us to produce the Today over the Years categories, with neat names (and translatable).

Another idea (probably more visually pleasing) would be some sort of extension for the Event View. Maybe a sidebar or something, which shows the past 10 years as clickable items under a Today over the year's headline and when you click on one of the "boxes" the file window shows the files...


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

sinus

#14
Quote from: Mario on December 29, 2021, 09:23:53 AM

What I would prefer, though, would be something like this:

One Year Ago
Two Years Ago
...
10 Years Ago


Hmm, I do not get this, sorry. 
I have now a DD-cat like in the attachement, but you want something else (better)!?
(e Heute vor datebasiert)
Best wishes from Switzerland! :-)
Markus

Mario

That's similar to what my variable from above produces.
Not sure if this is good enough.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Mees Dekker

When I use Mario's last suggestion, I get all pictures taken in a particular year, not just the pictures on the specific day in that particular year. Am I missing something?

sinus

Quote from: Mees Dekker on December 29, 2021, 11:07:52 AM
When I use Mario's last suggestion, I get all pictures taken in a particular year, not just the pictures on the specific day in that particular year. Am I missing something?

Mees, I do not know, what you exactly mean, hence I attache my DD, want you something else?
With autogroup you can change the output a bit.
Best wishes from Switzerland! :-)
Markus

sinus

Quote from: Mario on December 29, 2021, 10:40:46 AM
That's similar to what my variable from above produces.
Not sure if this is good enough.

For me this is good enough.  :)

But of course, if you have enhancement in mind, like your special category formula operator, this would be cool.
Or, maybe, but here I am not sure, a App, click on the app to see, visually nice, some pics from the past years at the same day.

Or .... like always, the better is the enemy of the good.  ;D
Best wishes from Switzerland! :-)
Markus

Mario

Quote from: Mees Dekker on December 29, 2021, 11:07:52 AM
When I use Mario's last suggestion, I get all pictures taken in a particular year, not just the pictures on the specific day in that particular year. Am I missing something?
You're right. The category names are correct, but the wrong files are pulled. Need to re-think this when I have some more time. Very busy at the moment and away from my lab.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Mario

I've played around a bit during a break and I've decided to introduce a new category formula operator:

@YearsAgo[]

This formula returns all files created on the same day as today, but 1, 2, ... n years back.
For example, to see all files taken today one year ago, you'll use

@YearsAgo[1]

or @YearsAgo[2] if you want to look back two years.

I will setup a new standard category hierarchy "Today over the Years" (if you have a better name, let me know) and below that

1 Year Ago
2 Years Ago
3 Years Ago
...
10 Years Ago

each using the new formula. I'm using 1 and not One (and 2 and not Two) to make the categories sort correctly in all possible modes.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Tveloso

This is indeed a great category to have!  Another thank you to Harry for posting this.

A small change to the variable that Mario originally suggested gives the Year sub-categories directly in the parent DD Category:

{File.DateTime|format:MM-DD;is:{Application.DateTime|format:MM-DD},{File.DateTime|format:YYYY},}

That's how I created mine, since I like to see the files grouped by years:

   

...(and with the Show Hierarchy - Show All Levels option we can still see all files via the parent Category).

Quote from: Mario on December 29, 2021, 12:32:58 AM
I think it might be worthwhile to make this part of the IMatch Standard Category Set...?

Quote from: Mario on December 29, 2021, 09:23:53 AM
Another idea (probably more visually pleasing) would be some sort of extension for the Event View. Maybe a sidebar or something, which shows the past 10 years as clickable items under a Today over the year's headline and when you click on one of the "boxes" the file window shows the files...

+1 for integrating this into IMatch...(I like the idea of having it in the Event TimeLine)...
--Tony

Tveloso

While I was just typing a post, Mario has already implemented something to integrate this into IMatch!  Amazing!!
--Tony

jch2103

Quote from: Tveloso on December 29, 2021, 04:01:31 PM
That's how I created mine, since I like to see the files grouped by years:
Thanks for posting this; works great!
And another +1 for integrating this into IMatch.
John

mastodon

I like the Idea "Today over the Years"!
Might it be possible to impletent an option to change the date? So, I could set any day of a year as "today".

Mario

Quote from: mastodon on December 29, 2021, 07:22:30 PM
I like the Idea "Today over the Years"!
Might it be possible to impletent an option to change the date? So, I could set any day of a year as "today".

No. For that you already have the Timeline View. Just click the date you are interested in and you see all files created on that day. There is also a search function, comments, icons, ...
Or use IMatch Events to wrap important dates/events and to make them quickly accessible and searchable and filterable.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

sinus

Quote from: Tveloso on December 29, 2021, 04:01:31 PM

A small change to the variable that Mario originally suggested gives the Year sub-categories directly in the parent DD Category:

{File.DateTime|format:MM-DD;is:{Application.DateTime|format:MM-DD},{File.DateTime|format:YYYY},}


I think, this is the same variable, what I posted as an attachement above.  :)
Best wishes from Switzerland! :-)
Markus

sinus

Quote from: Mario on December 29, 2021, 03:25:46 PM
I will setup a new standard category hierarchy "Today over the Years" (if you have a better name, let me know) and below that

Cool!!! Thanks to you ... and thanks to Harry.  :)

Quote from: Mario on December 29, 2021, 03:25:46 PM
I've played around a bit during a break ...

;) A break, Mario, is usually to have a break!  ;D And not to work!  ;D ;) :)

Best wishes from Switzerland! :-)
Markus

Mario

#28
I have added new standard categories for this, using the new @YearsAgo formula operator.

I have also pondered if this would be a nice addition for the Event View. I could combine this with a more visual event favorite display (currently favorites are only shown in a drop-down list).
Comments? Suggestions?

This is a quick mock-up of how this could look:



Clicking on a favorite jumps to that event.
Clicking on one of the "Years" buttons loads the files from the current day in that year into the Event View File Window.
If there are no files for a specific year, I would hide that button.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Tveloso

This looks great!

I think it will be a great addition to the Events View
--Tony

wolboe

Quote from: mastodon on December 29, 2021, 07:22:30 PM
I like the Idea "Today over the Years"!
Might it be possible to impletent an option to change the date? So, I could set any day of a year as "today".

Eine Lösung für diese Suche hat mich auch interessiert, hier zwei Möglichkeiten:

Variante 1
Anstelle von
{File.DateTime|format:MM-DD;is:{Application.DateTime|format:MM-DD},{File.DateTime|format:YYYY},} 
benutze ich
{File.DateTime|format:MM-DD;is:12-23,{File.DateTime|format:YYYY},}
Datum und Monat müssen dann in den datengestützen Eigenschaften eingetragen werden: im Beispiel 12-23 für den 23. Dezember.

Variante 2
In den Einstellungen legst Du eine eigene Variable an – in meinem Fall:  {Application.Variables.Datum}.
Das ,,Wunschdatum" muß dann in der Zeichenfolge für die variable Datum eingetragen werden.
Damit erhält man
{File.DateTime|format:MM-DD;is:{Application.Variables.Datum},{File.DateTime|format:YYYY},} 

Die Eingabe des gewünschten Datums ist in beiden Fällen umständlich – habe zur Zeit keine bessere Lösung.


I was also interested in a solution for this search, here are two possibilities:

Variant 1
Instead of
{File.DateTime|format:MM-DD;is:{Application.DateTime|format:MM-DD},{File.DateTime|format:YYYY},}
I use
{File.DateTime|format:MM-DD;is:12-23,{File.DateTime|format:YYYY},}

The date and month must then be entered in the data-supported properties: in the example 12-23 for 23 December.

Variant 2
In the settings you create your own variable - in my case: {Application.Variables.Datum}.
The "desired date" must then be entered in the string for the variable date.
This gives you
{File.DateTime|format:MM-DD;is:{Application.Variables.Datum},{File.DateTime|format:YYYY},}

Entering the desired date is awkward in both cases - don't have a better solution at the moment.

Wolfgang

Mario

I've worked on this feature for a bit and I'm nearly done (sans help updates, new screen shots, fine-tuning, wording, ...)
This is how it works:

1. The arrow button next to the favorite toggle button in the toolbar now opens the Favorite Bar on the left (keyboard shortcut B).
2. The bar contains the "Today over the Years" at the top and the favorites below that.
3. Clicking on a favorite scrolls the timeline to that event and selects/focuses it.
4. Clicking a "Years" entry opens the files from today and that year in a new result window. This way the Event View is not 'disrupted'.
5. The width of the Favorite Bar can be changed by dragging the right edge - if you prefer longer favorite names or your screen resolution is low.

I've used this opportunity to make favorites a bit more visually pleasing (showing the first cover file in addition to the icon).
The Years also show the first file from that day as a visual clue.

See the screen shot below for details.

Questions:

Is there something to improve for the wording (titles, captions)?
Should the Years go below the favorites perhaps?
How many years do you want to see? I currently have it limited to 5, but I could also do 10. Or (I already know the answer) should this be user-configurable?
General comments about the look and layout.

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

jch2103

Looks good.

Is there something to improve for the wording (titles, captions)?
--> Seems OK for first draft. Some tweaks might come to mind after using the feature for a while.
Should the Years go below the favorites perhaps?
--> No, I don't think so. The utility of Favorites will depend on how much it's used and how much the Favorite images coincide with "today's" date. E.g., if you use this on Christmas day, you might expect to see a lot of matches from the timeline if you have Christmas set up . But on other days you'll be likely to get no hits at all. I'm not clear if this view loads Events or some other timeline-related configuration.
The Years approach may present pleasant unexpected surprises.
How many years do you want to see? I currently have it limited to 5, but I could also do 10. Or (I already know the answer) should this be user-configurable?
--> Of course! Maybe the first 5 could be built-in, which a configurable option following?
General comments about the look and layout.
--> Looks good.
John

sinus

Quote from: Mario on January 03, 2022, 07:00:51 PM

Questions:

How many years do you want to see? I currently have it limited to 5, but I could also do 10. Or (I already know the answer) should this be user-configurable?



For me of course all years, what are in the database. I have done this in the DD-categories and it is really nice to see christmas before 80 years, how this has been in the old days from relatives.

Over all, this is of course a very good feature, looks good to me.

Best wishes from Switzerland! :-)
Markus

Mario

I've decided to make this configurable between 1 and 100 years (for now).
Only years with at least one file are showing so even with 100 years dialed in you'll probably see only a handful of years per day.
In addition, I have added a small toggle icon which allows users to fold the Today over the Years section to make more room for favorites - useful on small screens because it will reduce scrolling when a user has many favorites.

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

Tveloso

Quote from: sinus on December 30, 2021, 10:02:10 AM
Quote from: Tveloso on December 29, 2021, 04:01:31 PM

A small change to the variable that Mario originally suggested gives the Year sub-categories directly in the parent DD Category:

{File.DateTime|format:MM-DD;is:{Application.DateTime|format:MM-DD},{File.DateTime|format:YYYY},}


I think, this is the same variable, what I posted as an attachement above.  :)
Indeed it is!

Honestly Markus, I didn't plagerize your post...surprisingly enough, I actually came up with that variation on my own!  :)

But I like your use of the Auto-group option even better...with that (and Show Hierarchy in the FileWindow), we have "today in the 1900s", "today in the 2000s", etc. - nice!

I have added that option here as well!
--Tony

Tveloso

Quote from: Mario on January 04, 2022, 02:37:28 PM
In addition, I have added a small toggle icon which allows users to fold the Today over the Years section to make more room for favorites - useful on small screens because it will reduce scrolling when a user has many favorites.
This looks awesome!

I was going back and forth on Mario's question of whether or not Today over the Years should be above or below the Event Favorites, but the addition of the toggle to fold that section is perfect!  I vote for it to stay on top!

--Tony

sinus

Quote from: Tveloso on January 05, 2022, 12:58:03 AM
Honestly Markus, I didn't plagerize your post...surprisingly enough, I actually came up with that variation on my own!  :)

But I like your use of the Auto-group option even better...with that (and Show Hierarchy in the FileWindow), we have "today in the 1900s", "today in the 2000s", etc. - nice!

I have added that option here as well!

Great, Tveloso!
Users and the master himself, Mario, makes IMatch better and better.
I think, this enhancement is a kind of gimmick, but a very beautiful one.
Best wishes from Switzerland! :-)
Markus

Mario

Quote from: sinus on January 05, 2022, 07:49:32 AM
I think, this enhancement is a kind of gimmick, but a very beautiful one.

The Today over the Years  may be a gimmick, but I have discovered some nice surprises already in my own database.
But the main part of this enhancement is a better visibility and handling of Event Favorites. The Events feature has been well accepted by the user base, and once you reach 100 or 200 events, Favorites become important.
The small drop-down list used until now got quite cluttered and had issues on smaller monitors. The new Favorite Bar solves than problem, and the Today over the Years is just a neat addition.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Tveloso

...and Today over the Years does also add a certain "richness" to the Events View.

Mario, it occurred to me that a given Year button in the Today over the Years section will inevitably correspond with (fall inside of) an existing Event.  The user may or may not have created a favorite for that Event, but it might be nice for the Year button itself to also allow the Event to be selected as well.

So when today n years ago happens to fall inside an Event, could that button maybe have a dual function?...first the button itself behaves the way you have designed (to open the files from that day in a Result Window), but then either an area of the button, or another icon/control near that Year button, serves both to indicate that the day is part of an Event, and also allows the Event itself to be selected (just as an Event Favorite would)?...
--Tony

Mario

#40
The button has a dual-function already. Clicking it opens the files from that day in a new result window. Clicking the arrow button jumps to that day in the IMatch timeline.
This was an addition I made after making the screen shot above:



Every of these "Today" days may or maybe not included in one or more events created by the user.
The Event View could process all events and figure out if and which events include any of the Today days. And then show some sort of "jump" icon to go to that event (which costs extra screen estate on the x-axis).
What to do when there are several overlapping events including that day? Jump to the first? Switch the UX to show a drop-down list with all events?
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Tveloso

Nice!

Quote from: Mario on January 06, 2022, 10:54:31 AM
Clicking the arrow button jumps to that day in the IMatch timeline.
This means it will jump to that day in the Event Timeline (and not in the Timeline View), correct?  If so, then that brings the event(s) into view, so that's a great solution for what to do in the case of multiple events overlapping that day!

Still, it might be nice for the "Today" button itself to indicate that the day falls inside an Event...(maybe the arrow can have a different color, or otherwise look different in those cases?)

Anyway, I'm excited to see the Today over the years feature!
--Tony

Mario

QuoteThis means it will jump to that day in the Event Timeline (and not in the Timeline View), correct?

No, it jumps into the Timeline View.
The timeline in the Event View may not even contain that day! If there is no event including that day, the day will not show up in the Event View timeline at all - it will be folded away.
If there is at least one event including the "Today" day of that year, jumping to that event would also scroll the timeline.
Hence these must be 3 separate operations (result window, Timeline View, go to first including event, if any).
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Mario

What about this?

We now can see if there is an event containing that day of the year and jump to it by clicking the event icon shown.
For years where no event covers today, no event icon is shown.

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

mopperle


Tveloso

--Tony

sinus

Best wishes from Switzerland! :-)
Markus

Jingo