Switching to COFF
On Wed, Feb 1, 2023 at 1:33 PM segaloco via TUHS <tuhs(a)tuhs.org> wrote:
> In the annals of UNIX gaming, have there ever been notable games that have
> operated as multiple processes, perhaps using formal IPC or even just pipes
> or shared files for communication between separate processes (games with
> networking notwithstanding)?
Yes - there were a number of them. Both for UNIX and other wise. Some
spanned the Arpanet back in the day on the PDP-10's. There was an early
first person shooter games that I remember that ran on the PDP-10s on
ADM3As and VT52 that worked that way. You flew into space and fought each
CMU's (Steve Rubin's) Trip was stand alone program - sort of the
grand-daddy of the Star Trek games. It ran on a GDP2 (Triple-Drip Graphics
Wonder) and had dedicated 11/20. It was multiple processes to do
everything. You were at the Captions chair of the Enterprise looking out
into space. You had various mission and at some point would bee to
reprovision - which meant you had to dock at the 2001 space
station including timing your rotation to line up with docking bay like in
the movie. When you beat an alien ship you got a bottle of coke - all
of which collected in row on the bottom of the screen.
I did manage to save the (BLISS-11) sources to it a few years ago. One
of my dreams is to try to write GDP simulator for SIMH and see if we can
bring it back to life. A big issue as Rob knows is the GDPs had an amazing
keyboard so duplicating it will take some thinking with modern HW; but HW
has caught up such that I think it might be possible to emulate it. SIMH
works really well with a number of the other Graphics systems and with my
modem system like my current Mac and its graphics HW, there might be a
One of my other favorites was one that ran on the Xerox Alto's who's name I
don't remember, where you wandered around the Xerox 3M ethernet. People
would enter your system and appear on your system. IIRC Byte Magazine did
an article that talked about it at one point -- this was all pre-Apple Macs
- but I remember they had pictures of people playing it that I think they
took at Stanford. IIRC Shortly after the X-Terminals appeared somebody
tried to duplicate it, or maybe that was with the Bilts but it was not
quite as good as those of us that had access to real Xerox Altos.
> I think general software engineering knowledge and experience cannot be
> 'obsoleted' or made less relevant by better languages. If they help,
> great, but you have to do the other part too. As languages advance and
> get better at catching (certain kinds of) mistakes, I worry that
> engineers are not putting enough time into observation and understanding
> of how their programs actually work (or do not).
I think you nailed it there mentioning engineers in that one of the growing norms these days is making software development more accessible to a diverse set of backgrounds. No longer does a programming language have to just bridge the gap between, say, an expert mathematician and a compute device.
Now there are languages to allow UX designers to declaratively define interfaces, for data scientists to functionally define algorithms, and WYSIWYG editors for all sorts of things that were traditionally handled by hammering out code. The concern of describing a program through a standard language and the concern that language then describing the operations of a specific device have been growing more and more decoupled as time goes on, and that then puts a lot of the responsibility for "correctness" on those creating all these various languages.
Whatever concern an engineer originally had to some matter of memory safety, efficiency, concurrency, etc. is now being decided by some team working on the given language of the week, sometimes to great results, other times to disastrous ones. On the flip side, the person consuming the language or components then doesn't need to think about these things, which could go either way. If they're always going to work in this paradigm where they're offloading the concern of memory safety to their language architect of choice, then perhaps they're not shorting themselves any. However, they're then technically not seeing the big picture of what they're working on, which contributes to the diverse quality of software we have today.
Long story short, most people don't know how their programs work because they aren't really "their" programs so much as their assembly of a number of off-the-shelf or slightly tweaked components following the norms of whatever school of thought they may originate in (marketing, finance, graphic design, etc.). Sadly, this decoupling likely isn't going away, and we're only bound to see the percentage of "bad" software increase over time. That's the sort of change that over time leads to people then changing their opinions of what "bad software" is. Look at how many people gleefully accept the landscape of smart-device "apps"....
- Matt G.
> > I'll never do if (a==b&&c==d), always if ((a==b)&&(c==d)).
> Indeed; I *always* use parentheses even if they are not necessary (for
> my benefit, at least).
I find unnecessary parenthesis annoying and clutter which obscures
reading. If parenthesis are used only when overriding the default
precedence then this beneficially draws attention to the exception.
I doubt mandatory parenthesis are used in maths formulas by those that
use them in expression.
Whitespace is beneficial in both maths formulas and expressions. The
squashed expression above will often be spaced more.
if (a==b && c==d)
if (a == b && c == d)
Go's source formatter will vary which operators get spaces to reflect
precedence, e.g. https://go.dev/play/p/TU95Oz57GuF shows ‘4*3’ differs.
fmt.Println(4 * 3)
fmt.Println(5 ^ 4*3)
fmt.Println(5 ^ 4*3 + 2/1.9)