this post was submitted on 26 Jun 2025
216 points (99.1% liked)

unix_surrealism

2643 readers
79 users here now

one should not chase the electric dream

This community is for sharing original content related to computers, content, surrealism and wizardry.

Now that you're a surrealist, become a Techno-Mage:

founded 2 years ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] xkbx@startrek.website 27 points 2 days ago (2 children)

Is this present, future, or past timeline?

[–] tetris11@lemmy.ml 40 points 2 days ago (1 children)

OpenSSH version:

  • 10.0 was released 2025
  • 5.0 was released 2008
  • 1.2 was released 2005 (on unix)

Extrapolating: OpenSSH 43.2 is millions of years into the future

https://www.openssh.com/releasenotes.html

[–] A_Union_of_Kobolds@lemmy.world 9 points 1 day ago (1 children)
[–] tetris11@lemmy.ml 23 points 1 day ago* (last edited 1 day ago) (2 children)

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

[–] stan_stanminson@lemmy.dbzer0.com 1 points 11 hours ago (1 children)

This is Awesome! How did you learn to do that? I want to learn too

[–] tetris11@lemmy.ml 2 points 11 hours ago* (last edited 10 hours ago) (1 children)

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!

[–] stan_stanminson@lemmy.dbzer0.com 1 points 10 hours ago (1 children)

I will!

And I'm going to give a look at awk and sed, I didn't know you can do all that stuff with it.

Thanks for sharing :D

[–] tetris11@lemmy.ml 2 points 9 hours ago

I seem to be on a gnuplot bender at the moment, but maybe you will enjoy this too!

[–] pmjv@lemmy.sdf.org 31 points 2 days ago (1 children)