Leaking Pipes with Swift and External Executables

Observed with MacOS 12.4/Xcode 13.4.1/Swift 5

There are quite a lot of tutorials out there covering the basics of running external executables from within Swift and, with very little effort, it’s quite easy to throw together something like this…

import Foundation

let wrappedUname = Process()
wrappedUname.executableURL = URL(fileURLWithPath: "/usr/bin/uname")
wrappedUname.arguments = ["-v"]
let unameOutputPipe = Pipe()
let unameErrorPipe = Pipe()
wrappedUname.standardOutput = unameOutputPipe
wrappedUname.standardError = unameErrorPipe
do{
    try wrappedUname.run()
} catch {
    print("Unexpected error: \(error).")
}
wrappedUname.waitUntilExit()
let unameOutput = String(decoding: unameOutputPipe.fileHandleForReading.readDataToEndOfFile(), as: UTF8.self)
let unameError = String(decoding: unameOutputPipe.fileHandleForReading.readDataToEndOfFile(), as: UTF8.self)
print("Output: " + unameOutput)
print("Error: " + unameError)
Continue reading “Leaking Pipes with Swift and External Executables”

Old Solaris Patches (Sunsite Mirrors)

sunsite.icm.edu.pl looks to be an old mirror of the pre-Oracle Sunsites. It’s quite useful for patches for older Solaris releases.

To get Internet Explorer 5.0 for Unix (Sparc) running on the Sparc release of Solaris 7 I ended up using:

108376-46: OpenWindows 3.6.1: Xsun Patch (Patch File)

106327-23: SunOS 5.7: 32-Bit Shared library patch for C++ (Patch File)

106950-24: SunOS 5.7: Linker Patch (Patch File)

And voila! Internet Explorer 5.0 for Unix running on the Sparc release of Solaris 7.0

PSPB – Period Sites in Period Browsers

So, I’ve built a new toy. It’s called PSPB (Period Sites in Period Browsers) and it pulls pages out of the Wayback Machine and renders them in various period specific browsers and operating systems (stripping off all the Archive.org rubbish as it does so).

As of launch it only has a half-dozen Operating System/Browsers combinations and around a dozen source sites – and the site that it posts them too is rather austere – but that’s likely to change as I poke around with it and get things up and running.

While I have no real idea how long it’ll last, PSPB can currently be found here.

Raspberry Pi with PCIe

The Raspberry Pi 4 is out! And I’m not going to buy one because A) revision zero is buggered, B) the load this site produces on it’s current 3B+ host is functionally zero (so there’s very little point in upgrading it) and C) I’m currently far too busy to do any pottering around with one outside of that.

However other people have and they’ve started playing around with the new PCIe bus – even going as far as desoldering the USB controller and adding a PCIe riser.

Which is very neat indeed.