• o11c 36 minutes ago

    Honestly, the weirdest thing about reading this for me was the use of a .js file to drive it. But then I started to remember how horrible batch scripting was.

    For reference, cscript/wscript (which can call other languages too) are calling "jscript", which just is microsoft's implementation of ecmascript/javascript with nonstandard extensions.

      ES  JSc IE(/other)
      -   1   3.0 (part of Win95 OSR2 by default)
      -   2   (IIS 3.0)
      1   3   4.0 (part of Win95 OSR2.5 and Win98 by default)
      "   4   (VS6)
      (2) 5   5.0 (part of Win98SE by default. ES2 is mostly just wording changes compared to ES1)
      "   5.1 5.01 (part of Win2k by default)
      3   5.5 5.5 (part of WinME by default. ES3 is what standardized exceptions, among other things - I'm not sure what MS extensions were like before this)
      "   5.6 6.0 (part of WinXP by default)
      "   5.7 7.0 (part of WinXP SP3 by default)
      "   5.8 8.0 (part of Win7 by default)
      "   11  (Windows 11)
    • 38 an hour ago

      and this is exactly why I dont use C anymore. why go through the trouble of this blog post, when you can just use a modern language? HTTPS is a solved problem. here is a Go program, 15 lines:

          package main
          
          import (
             "net/http"
             "os"
          )
          
          func main() {
             resp, err := http.Get("https://example.com")
             if err != nil {
                panic(err)
             }
             defer resp.Body.Close()
             resp.Write(os.Stdout)
          }
      
      no messing with cURL, no messing with picking out a TLS module.
      • yjftsjthsd-h 16 minutes ago

        Given that the author explicitly is targeting Windows 2000 as a starting point with the goal of reaching Windows 95(!) -

        > While I'm currently getting things running on Windows 2000 Professional SP4, I'd like to get this working on Windows 95 and 98 too. To that end, I'll be using Visual Studio.NET 2003, which was the last version to support Windows 95. I'm also building everything in Windows 2000, but that part's optional.

        - I would say Go is completely irrelevant, since AFAICT as of https://github.com/golang/go/issues/57003 it only supports... Windows 8+? It's actually really hard to find an official answer to what platform versions are supported, but I think we can rule out this particular usecase. (EDIT3: Found it - https://go.dev/wiki/Windows only lists back to Go 1.10.8 supporting XP and says only 10+ is supported now.)

        ---

        EDIT: Now for all that at least the official Go compiler is out, Rust, somehow!, is in the running with https://seri.tools/blog/announcing-rust9x/ , which even explicitly calls out:

        > TLS is supported via rustls starting from Windows XP, as its dependency ring needs RtlGenRandom. I haven't looked into it too much, but from what I could tell, this should be the only additional API dependency, so by falling back to another way of getting randomness (probably compromising security in the process :)) this should work all the way down to Windows 95/NT 4.0 as well.

        ... so that's apparently a way to get "a modern language" that actually can do the job at hand. Which is... absolutely wild, and pretty cool.

        ---

        EDIT2: Now in fairness, I guess I have to ask... does anyone happen to know of any attempts to build a (soft) fork of Go that can target older OSs? I can't immediately think of any true hard blockers on the technical side, you'd just need somebody crazy enough to write it...

        • vbezhenar 35 minutes ago

          I don't think Go supports Windows 2000.