Skip to content

Feature request: timeline based on Fibonacci sequence #962

@skaffi

Description

@skaffi

Thank you for making an excellent piece of software!

I think everyone can agree that the granularity of intervals between snapshots is more valuable, the closer in time they are to the present. Being able to specify a number of snapshots according to hours, as well as days, weeks, months and years is helpful in this regard. However, the interval between snapshots can make some awkward jumps, when you go from counting by one unit of time to another, especially from hours to days, and from months to years. It's conceivable that I might appreciate having a snapshot from around halfway through the day, but feel like keeping 12 hourly snapshots is excessive. I might like to have one for each of the first 2 or 3 months closest in time to me, and then a couple of more for the rest of the year, but right now I basically have to pick between monthly snapshots for those first 2-3 months, and then a drought of snapshots for close to a full year, or keeping 9+ monthly snapshots, just to have at least one snapshot from each quarter of the year.

I see a lot of benefits to being able to instead keep timeline snapshots that are spaced at intervals according to a Fibonacci sequence. The distance in time between each snapshot continually increases, but it does so gradually, without making some of these awkward jumps, that end up making your retained snapshots a little top heavy. For example, using the classic Fibonacci sequence with a starting value of 0 and 1, retaining a snapshot at a number of hours passed equivalent to each number in the sequence, you would end up with:

  • 8 snapshots spaced throughout a day, with more towards the beginning, and fewer towards the end
  • 4 snapshots which are older than 1 day, and younger than 1 week, with more towards the beginning, and fewer towards the end
  • 3 snapshots which are older than 1 week, and younger than 1 month, with more towards the beginning, and fewer towards the end
  • 5 snapshots which are older than 1 month, and younger than 1 year, with more towards the beginning, and fewer towards the end
  • 20 snapshots in total, spaced throughout a year, with more towards the beginning, and fewer towards the end

You end up with essentially the same results, if you let each new number in the sequence instead represent the number of hours since the last snapshot. Using days instead of hours as the unit of time is equally valid, since you end up with a similarly sensible spacing between snapshots. You could even start a new Fibonacci sequence for each new unit of time measurement, and it would be equally sensible.

EDIT: Alternatively, just being able to specify an interval, instead of, or in addition to, a frequency for each time unit, would be very helpful!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions