• tetris11@lemmy.ml
        link
        fedilink
        English
        arrow-up
        20
        ·
        edit-2
        24 hours ago

        Upon deeper analysis, you are correct. I was a bit floored by what appeared to be a power curve near the beginning, but after actually plotting, it’s a simple linear trend:

        Data

        Code
          curl https://www.openssh.com/releasenotes.html \
             | sed -nr '/^<h3><a/s/.*OpenSSH ([0-9.]+).*\(([0-9-]+)\).*/\2\t\1/p' \
             | sort \
             | sed -r 's|([0-9]+)\.([0-9]+)\.([0-9]+)|\1.\2\3|' \
             | column -t -N 'Date,Version' > openssh.dat
          head openssh.dat
        

        Which yields:

        Date        Version
        2000-03-05  1.22
        2000-03-24  1.23
        ...
        2025-02-18  9.9
        2025-04-09  10.0
        

        Fit

        Code
          gnuplot -p -e '
            set xdata time;
            set timefmt "%Y-%m-%d";
            set xlabel "Date"; set format x "%Y";
            set ylabel "Version";
            f(x) = a*x + b;
            a = 1e-10; b = -100;
            fit f(x) "openssh.dat" using 1:2 via a,b;
            set label 1 sprintf("Fit: Version = (%.3e * Date) %.3f", a ,b) at graph 0.05,0.95 left;
            plot "openssh.dat" using 1:2 with points title "Versions", f(x) with lines title "Fit"
          '
        

        Which yields:

        Predict

        Use Y = (mX) + C, or Version = (9.55651e-09 * Date) -6.75132

        Code

        Note that Date are Epoch timestamps.

        export VERSION="43.2"
        
        date +%Y-%m-%d -d \
         @$(
            export m="9.55651e-09";
            export c="-6.75132";
            ## Use python for better scientific number handling 
            python -c "print(($VERSION - $c)/$m)"
         )
        

        For OpenSSH version 43.2, the predicted date is:

        2135-08-21

        So, assuming a linear trend and no cataclysmic events that would pause development for a few thousand years, then it’s only 110 years into the future

          • tetris11@lemmy.ml
            link
            fedilink
            English
            arrow-up
            2
            ·
            edit-2
            56 minutes ago

            thanks! oh well data formatting, just 15 years of messing around with awk and sed

            Data fitting, gnuplot does all the heavy lifting with the modelling, and I always have to look up the syntax because I never remember it haha

            Play around and have fun with the code snippets!