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