• tetris11@lemmy.ml
    link
    fedilink
    English
    arrow-up
    22
    ·
    edit-2
    1 day 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