NASA's budget is on the order of 15 billion dollars a year.
That sounds like a lot of money, but it's a drop in the bucket to those programs that are already "right here".
Reminds me of an old SF short story, probably by Isaac Asimov (it sounds like ones of his).
God comes up with a plan of Creation straight out of Genesis: six days long, Heaven and Earth, all that stuff. However, unlike the biblical version, he has to justify it to a layer of bureaucrats: "Adam and Eve? How about just one?" "Without Eve, Adam's sorta redundant now, isn't he?" "Do you need all those animals? There isn't much use for them without any people." "Do you really need all that water for the oceans?" "Do you really need heaven and earth? Earth is just a barren rock, can we get rid of it?" The original plan gets (in the current parlance) repeatedly de-featured until God is left with just creating an empty universe.
However, he creates a universe with just the right physical conditions to trigger the Big Bang, galaxy formation, and the appearance of planets, life, and intelligence - so he gets his original design, in spite of the bean-counters. It just takes a bit longer than six days...
An interesting take on both the origin of the Universe and guerilla engineering.
"copper" = graphics COPRocessor, an entire user programmable graphics subsystem. It had operations, it had conditions, and you could do things like "after drawing raster line 120, switch the color lookup table to 'foo'". Which was how the Amiga could change palettes and resolutions in mid-secreen.
I still remember when I first got my Amiga 1000 home. I was a CS student at the time, and I'd used various Unix systems for courses, and MS-DOS at work, so I figured I knew what a 'real' operating system was.
Got the 1000 home, unpacked it, set it up, and (being a CS student), one of the first things I did was dump the task list. Now, on MS-DOS, there is no such thing. On the Amiga, there were a dozen or more processes running: device processes for the mouse, keyboard, floppy drive, serial port, parallel port, the console,... All on a 68000, with 512K of memory.
Yup, I thought to myself, MS-DOS is just a glorified program loader, but the Amiga OS is a real operating system.
Today, I work with Windows XP, and it's still so brain-damaged compared to the twenty-year-old Amiga OS that at times I shake my head in disbelief, and wonder what might have been had it's development continued...
One example. IPC on the Amiga was done with globally-visible message ports - essentially just a named queue. On the receiver side:
MsgPort *msgPort = CreatePort("myPort"); while (WaitPort(msgPort)) {
char *msg = Getmsg(msgPort); ... process message... }
That's it. Any process could send a message to any other process, all it had to know was the port name. This allowed a single message processing loop in your application to handle input events from the window manager, commands from a scripting engine, or from any other source.
Compare that to Windows, where message queues are (arguably) not first-class objects, but rather are associated one-to-one with a thread, and with a window. Similar code in Windows means registering a window class and creating a window, then sending messages to the window - an entire layer of functionality that is irrelevant to the underlying requirement of 'send a message to a receiver'.
So, yeah, the more Windows programming I do, the more I still appreciate the design of the Amiga OS.
Arthur Radebaugh did a lot in that style back in the day, for instance your #11 appears to be one of his. Radebaugh: The Future We Were Promised at http://www.losthighways.org/radebaugh.html. As they say, you don't know the artist, but you've seen his work.
NASA's budget is on the order of 15 billion dollars a year. That sounds like a lot of money, but it's a drop in the bucket to those programs that are already "right here".
God comes up with a plan of Creation straight out of Genesis: six days long, Heaven and Earth, all that stuff. However, unlike the biblical version, he has to justify it to a layer of bureaucrats: "Adam and Eve? How about just one?" "Without Eve, Adam's sorta redundant now, isn't he?" "Do you need all those animals? There isn't much use for them without any people." "Do you really need all that water for the oceans?" "Do you really need heaven and earth? Earth is just a barren rock, can we get rid of it?" The original plan gets (in the current parlance) repeatedly de-featured until God is left with just creating an empty universe.
However, he creates a universe with just the right physical conditions to trigger the Big Bang, galaxy formation, and the appearance of planets, life, and intelligence - so he gets his original design, in spite of the bean-counters. It just takes a bit longer than six days...
An interesting take on both the origin of the Universe and guerilla engineering.
"copper" = graphics COPRocessor, an entire user programmable graphics subsystem. It had operations, it had conditions, and you could do things like "after drawing raster line 120, switch the color lookup table to 'foo'". Which was how the Amiga could change palettes and resolutions in mid-secreen.
I still remember when I first got my Amiga 1000 home. I was a CS student at the time, and I'd used various Unix systems for courses, and MS-DOS at work, so I figured I knew what a 'real' operating system was.
... All on a 68000, with 512K of memory.
... process message ...
Got the 1000 home, unpacked it, set it up, and (being a CS student), one of the first things I did was dump the task list. Now, on MS-DOS, there is no such thing. On the Amiga, there were a dozen or more processes running: device processes for the mouse, keyboard, floppy drive, serial port, parallel port, the console,
Yup, I thought to myself, MS-DOS is just a glorified program loader, but the Amiga OS is a real operating system.
Today, I work with Windows XP, and it's still so brain-damaged compared to the twenty-year-old Amiga OS that at times I shake my head in disbelief, and wonder what might have been had it's development continued...
One example. IPC on the Amiga was done with globally-visible message ports - essentially just a named queue. On the receiver side:
MsgPort *msgPort = CreatePort("myPort");
while (WaitPort(msgPort)) {
char *msg = Getmsg(msgPort);
}
On the caller side:
char *message = CreateMessage(...);
MsgPort *msgPort = FindPort("myPort");
SendMessage(msgPort, message);
That's it. Any process could send a message to any other process, all it had to know was the port name. This allowed a single message processing loop in your application to handle input events from the window manager, commands from a scripting engine, or from any other source.
Compare that to Windows, where message queues are (arguably) not first-class objects, but rather are associated one-to-one with a thread, and with a window. Similar code in Windows means registering a window class and creating a window, then sending messages to the window - an entire layer of functionality that is irrelevant to the underlying requirement of 'send a message to a receiver'.
So, yeah, the more Windows programming I do, the more I still appreciate the design of the Amiga OS.
Arthur Radebaugh did a lot in that style back in the day, for instance your #11 appears to be one of his. Radebaugh: The Future We Were Promised at http://www.losthighways.org/radebaugh.html. As they say, you don't know the artist, but you've seen his work.