DEV Community

Cover image for Fibonacci Goals

Fibonacci Goals

swyx on January 01, 2021

I've realized that the problem with my old New Year's Resolutions is not that I give up halfway. It is that I overly fixate on 1 year outcomes, wit...
Collapse
 
bestape profile image
Kyle MacLean Smith

Fibonacci and Hegel?! Now that's a power couple. Good on you.

If Fibonacci proves too fast (or too slow), there are many other Fibonacci-like sequences to help you fine tune.

My preferred Fibonacci-like sequences are listed at github.com/bestape#oeis-contributions (Fibonacci is #05) and explained in context here: community.wolfram.com/groups/-/m/t...

Starting points are, given enough iterations, arbitrary to scale.

Wishing you a fruitful New Year.

Collapse
 
swyx profile image
swyx

oh wow, nice, i have never really read further into alternative sequences. this is a nice list! i think i picked Fibonacci because it has high familiarity to others while still having a constant ratio. any others that fit that bar?

Collapse
 
bestape profile image
Kyle MacLean Smith • Edited

Thanks!

Yeah, Fibonacci is likely the only sequence of this type with high familiarity.

Part of the issue is the metallic constant ratios, other than Gold, aren't familiar either: en.wikipedia.org/wiki/Metallic_mean

Silver is likely the second most familiar. It's used in a lot of Japanese architecture, for instance. However, I don't think the sequence for Silver is familiar, just the ratio. Plus, Silver can be seen as Geometric via a metallic conveyor.

That said, I hope an algebraic perspective on Fibonacci becomes highly familiar, sooner than later. It's very useful, especially exploring recursion and exponentiation. I personally believe it's a great heuristic for automation literacy education.

Some detail:

  1. To keep convergent (within the field of view), translate growth as decay via 1/growth, e.g. 1/1.618... = 0.618....
  2. Pick a preferred decay, e.g. 5/6 decay (6/5 growth).
  3. Find its associated {a, b, c} right triangle, e.g. the {60, 11, 61} triple associates with 5/6 decay.
  4. Plug the variables/options into the Fibonacci-like "recursive dialectic" formula; on WolframAlpha it's RecurrenceTable[{ f[ n ] == ( 2b/a ) * f[ n - 1 ] + f[ n - 2 ], f[ 0 ] == x, f[ 1 ] == y }, f, { n, 0, 60 }].

f(0) and f(1) can be any value. E.g. 0.618... decay associates with the { 2, 1, 5^(1/2) } right triangle:

  • 2b/a = 2*1/2 = 1.
  • { f(0) = 0, f(1) = 1 } or { f(0) = 1, f(1) = 1 } make the Fibonacci numbers.
  • { f(0) = 2, f(1) = 1 } makes the Lucas numbers.
  • { f(0) = 97, f(1) = 7 } makes nameless Fibonacci-like numbers including f(59)/f(60) = 64051866980550/103638097817417 ~ 0.618....

Say you're making more progress than you expected and decide to pivot from Gold to Silver, from 0.618.... to 0.414.... If you did this after f(15), then the pivot would start at { 2b/a = 2*2/2 = 2, f(0) = 610, f(1) = 987 }. This pivot, a part of your personal journey, would have a nameless fibonacci-like f(14)/f(15) of 100143044/241766695 ~ 0.414....

When a != 1 the sequence has a denominator, which might not work for you. Starting at f(0) and f(1) with values that are multiples of powers of the 2b/a denominator will delay when the denominator shows up in the f(n) sequence.

E.g. for { 2b/a = 2*11/60 = 22/60 = 11/30, f(0) = 1*30^30, f(1) = 1*30^30 }, f(30)/f(31) = 44066516280464542497279255915263071939861665630/52879646064209853316025665905867547137160170631 ~ 0.833... ~ (5/6).

More than enough detail for your use case! I hope you found this of general interest. It helped me think through some stuff so thank you.

Here are visualizations of different decay rates, remembering that 1/5 decay is also x5 growth, 5/6 decay is also x6/5 growth (but within the field of view): instagram.com/p/CDhzeMGDE71/

Thread Thread
 
swyx profile image
swyx

I'm gonna be honest that is waaaayy overkill for me 😂 but I appreciate how passionate you are about the topic!!

Thread Thread
 
bestape profile image
Kyle MacLean Smith

Lol. Yeah, sorry about that! I think my passion has turned into procrastination at this point but thanks for the complement anyhow.

Collapse
 
bholmesdev profile image
Ben Holmes

Really like this idea! I think progressive ladder like this could solve a major problem I have myself: I'm not motivated to find a system to meet my lofty goals. So, if I slowly build up the length of my goals the more I succeed, the "system" should follow naturally.

Making a pretty big assumption there. I guess it rests on the idea that each goal should be a progression from the previous one (rather than a climbing tower of unrelated goals). I'll definitely try this idea out for a project of my own! I've had an idea that's been bugging me for months, but has felt too daunting to start.

Collapse
 
swyx profile image
swyx

all the best! what's the project?

Collapse
 
bholmesdev profile image
Ben Holmes • Edited

Thanks! So... it's a lot to explain. But to put it succinctly: it's a static site generator that runs on templates like Jekyll, with the option to use dynamic tools like MDX or static Vue on any page you want. It'll compromise on some values that Jekyll et al. hold themselves to (this tool will use client-side routing, for example), but it's meant to bring all the countless worlds of static site generation closer together.

Absolutely no clue whether this will work in a developer-friendly way. For instance, I know you were trying to bring Svelte templates into 11ty with varying degrees of success. But with the waves of native ES modules and dynamic imports emerging... someone's gotta try 😁

Thread Thread
 
swyx profile image
swyx

cool cool. i gave up on making my own SSG a while ago 😂 all the best with it! I def agree that the native ESM wave is a huge opportunity to make better tooling without legacy assumptions.

Collapse
 
avatarkaleb profile image
Kaleb M

I too like the idea of using systems and goals when accomplishing something in my life. Cool idea and hope it works for you!

I like to come up with big hairy goals, then use systems and habits to accomplish them over time. Once they are achieved (or given up on lol...it happens :D), then I either move on to a new goal or iterate to phase 2 of that goal. I see this as similar to breaking it down to milestones like it sounds like you prefer !

Keep us posted on how it turns out!

Collapse
 
swyx profile image
swyx

thank you!

Collapse
 
arantespp profile image
Pedro Arantes

Interesting strategy swyx. For curiosity, why did you choose the Fibonacci sequence instead of another sequence, like arithmetic or geometric progression?

Collapse
 
swyx profile image
swyx

those are valid too! i just instinctively went for something with proportional scaling. Arithmetic scales too slowly. boring. Geometric is too dependent on starting factor. Fibonacci consistently scales ~1.618 (golden ratio) regardless of where you start.

Collapse
 
arantespp profile image
Pedro Arantes

Nice point of view, make a lot of sense the "consistently scales" argument.

You've influenced me a lot with your Learning in Public texts, thank you so much. I started writing and asking more in public because of it. Now, you encourage me to adopt the Fibonacci Goals too. I think these two become a great combination.

Please, share with us your goals and how they're going over the days.

Thread Thread
 
swyx profile image
swyx

i'll update this post as i go! lets see what happens. thank you for the kind words :) and happy new year

Collapse
 
_bkern profile image
Barry

Really interesting post - I struggle with longer-term goals and today was like what could I do this year but it felt too big and undefined so I went with goals for January. Then I figured I can re-check where I am at and recalibrate etc. Will have to listen to that episode.

Collapse
 
mcsee profile image
Maxi Contieri

Nice Strategy!

Collapse
 
mattzuckermann profile image
Matt Zuckermann

Definitely going to be using this as I plan to start a tech blog this year! Thanks for the insight!

Collapse
 
sahan profile image
Sahan

I never thought of it like that! Very interesting read

Collapse
 
swyx profile image
swyx • Edited

I used excalidraw to make the diagram, feel free to improve/modify: excalidraw.com/#json=5904671973572...