For perspective, that's >$320k today. For 'switching apps'. It's always kinda crazy to look back and realize how incredibly minute and small programs were back them. Like 'spellcheck' being a project you'd assign half a dozen programmers to or Knuth would write almost a book about.
My recommendation is to have ChatGPT write code to solve calculations like this, and have it put the data it fetches as constants in said code.
AI is not a calculator, but it'll try to fake it - and above say, three or four digits, there's not enough training data to guarantee accuracy enough of the time. Labs probably train models on massive amounts of arithmetic, but still. It's not the right tool for the job.
Now, ChatGPT won't solve problems with code unless asked, but if you ask, it has its own full computer and can write code for it!
AI is powerful because it can use tools and can build tools for you to use or for it to use.
> AI is a powerful tool because it can use tools and can also build tools for you to use or for it to use. But it is not a calculator.
It’s both, and a million other things. Of course AI can do complex calculations today. I can’t even remember the last time I saw an AI make a mistake on something like that.
The problem is that people’s mental image of what AI can do always has an inertia of 6-12 months. Like you can still see people talking about how image generation models supposedly can’t draw hands, even though today we have 2K AI-generated video with perfect hands.
I've seen AI-generated videos posted two weeks ago with six fingers on someone's hand. I don't know what model they used, but it still happens. Less often than it used to, granted, but it still happens.
I'm pretty sure were it not for Knuth and other programmers solving spellcheck and other problems, big and small, AI wouldn't be able to solve programming tasks today.
While they could argue it was derivative code, they would not own rights to the new code, only could argue that they wanted to stop its distribution without license.
And validity of any "we own everything about you" contracts gets kinda iffy if you're not paying the worker who went on "leave of absence"
Reading these types of of stories growing up was always humbling.
I started at Microsoft on the Windows Mobile compiler team, having never taken a compiler class in college. I was surrounded by people who had already done great things, and by the time my career started the glory days of doing real software engineering was already waning.
I got to work with a few of the greats during my time as Microsoft, and I wish I'd taken up an in offer I had to meet Raymond Chen.
Sitting next to people of old school caliber and watching them work is, to use the proper word yet again, humbling as hell.
Fuck your design patterns. These people can debug starting at assembly, and sometimes when that fails they'll debug by pulling out an oscilloscope. Then when that is done they'll build design patterns on top of the foundations they laid themselves.
Yes, it was humbling and one reason was many of them had developed their skills in tandem with the growing complexity of the hardware and software. They had an amazing advantage of being there when it was all happening and being built up around them.
As for design patterns, I would never accuse Andy of using them. He was a coding wild man and super impressive, but his real skill was coming up with cool ideas and willing them into existence. Working with him, I always felt he was going through the jungle making paths with a machete and the rest of us had to actually build the roads behind him.
You can still get this experience by trying to do some things the old ways. One that's come up to me recently: program an ATMega328 (the famous Arduino chip) in assembly to output a waveform with tight timing requirements.
That is, as opposed to using a timer interrupt or a delay routine, arrange instructions so that the processor naturally gets to the instruction to change the output pin at the correct time, within the acceptable tolerance. These processors have no caches or predictors so instruction timing is reliable.
I think people are doing it these days on the Raspberry Pico chips, but any "old school" microcontroller will do.
Multifinder could be thought of as a spiritual successor to Switcher but it shared no code with Switcher and took a different approach to solving the problem of allowing a user to interact with multiple running applications.
Erich Ringewald, the author of Multifinder, and Andy weren’t done with this problem at, or with, Apple. I got to work both of them, Erich at Be and Andy at General Magic/Eazel.
Meanwhile, Amiga 1000 Workbench (also released in 1985) not only had application switching, even when full screen, they had desktop screen switching where each screen can be different resolution / colour depth.
Yes, and absolutely ghastly screen artifacting when doing so which would have had Steve Jobs smashing the screen with a chair.
(my favourite Amiga game was Obliterator, but I hated the screen appearances one had to go through to get it running if one had been doing some sort of graphical work)
Also, only pixel fonts --- but the Apple Mac at that time was outsourcing its own vector font usage to the much faster processor in the Apple LaserWriter.
Lots of TV stations using Amigas for screen graphics though.
For perspective, that's >$320k today. For 'switching apps'. It's always kinda crazy to look back and realize how incredibly minute and small programs were back them. Like 'spellcheck' being a project you'd assign half a dozen programmers to or Knuth would write almost a book about.
> minute and small programs
These are actually still the best programs.
Whimsical follow up here: $100k invested in the S&P 500 around 1984 would be $4.5mm today. Thought some people would like to know this as well :)
$100k invested in AAPL around 1984 would be worth $329.5M, excluding dividends
At least that’s what ChatGPT says
My recommendation is to have ChatGPT write code to solve calculations like this, and have it put the data it fetches as constants in said code.
AI is not a calculator, but it'll try to fake it - and above say, three or four digits, there's not enough training data to guarantee accuracy enough of the time. Labs probably train models on massive amounts of arithmetic, but still. It's not the right tool for the job.
Now, ChatGPT won't solve problems with code unless asked, but if you ask, it has its own full computer and can write code for it!
AI is powerful because it can use tools and can build tools for you to use or for it to use.
But it is not a calculator.
ChatGPT has been secretly doing that under the hood for many months now.
> AI is a powerful tool because it can use tools and can also build tools for you to use or for it to use. But it is not a calculator.
It’s both, and a million other things. Of course AI can do complex calculations today. I can’t even remember the last time I saw an AI make a mistake on something like that.
The problem is that people’s mental image of what AI can do always has an inertia of 6-12 months. Like you can still see people talking about how image generation models supposedly can’t draw hands, even though today we have 2K AI-generated video with perfect hands.
I've seen AI-generated videos posted two weeks ago with six fingers on someone's hand. I don't know what model they used, but it still happens. Less often than it used to, granted, but it still happens.
Smaller models save money so even more slop can be generated.
Creator did you a favor making their slop so detectable ;)
The latest models can do fairly complex arithmetic without tools now, but they're definitely not calculators.
It can do basic arithmetic because it's fed millions or billions of synthetic calculations as training data.
Quick!
What's the next top-k tokens after each of these?
"999 + 999 = "
"999.0 + 999.0 = "
"999 * 2 = "
"999 * (3-2) = "
Mathematically identical. But as a token sequence, not so much.
Modern models will of course have very similar next-token distributions across all of these. But not identical!
Now add a few digits and you quickly land in territory whose synthetic training data is much sparser.
Code has determinism and runs in milliseconds. It's the better tool for the job.
But if you add a few digits, the model writes a python or js program to calculate, it doesn't use next-token to guess.
(BTW the last one was meant to be (3-1).)
I think it might get the last one of those questions correct.
Despite being small, it probably represents more original thought and engineering insight than many modern apps with 100 times the LOC.
The best Folklore.org story on LoC is of course:
https://www.folklore.org/Negative_2000_Lines_Of_Code.html
One of my favorite programming blogs has a post on exactly that: https://prog21.dadgum.com/29.html
Was it easy though? You are probably hand rolling assembly. For the time it took and he spoke to Jobs and Gates as part of it, it seems small.
I'm pretty sure were it not for Knuth and other programmers solving spellcheck and other problems, big and small, AI wouldn't be able to solve programming tasks today.
Here's a video of it working if you're curious: https://www.reddit.com/r/VintageApple/comments/x9iq6j/macint...
I'm actually kind of surprised that Apple didn't just automatically own the rights to the program. I guess times were different back then.
While they could argue it was derivative code, they would not own rights to the new code, only could argue that they wanted to stop its distribution without license.
And validity of any "we own everything about you" contracts gets kinda iffy if you're not paying the worker who went on "leave of absence"
Reading these types of of stories growing up was always humbling.
I started at Microsoft on the Windows Mobile compiler team, having never taken a compiler class in college. I was surrounded by people who had already done great things, and by the time my career started the glory days of doing real software engineering was already waning.
I got to work with a few of the greats during my time as Microsoft, and I wish I'd taken up an in offer I had to meet Raymond Chen.
Sitting next to people of old school caliber and watching them work is, to use the proper word yet again, humbling as hell.
Fuck your design patterns. These people can debug starting at assembly, and sometimes when that fails they'll debug by pulling out an oscilloscope. Then when that is done they'll build design patterns on top of the foundations they laid themselves.
Yes, it was humbling and one reason was many of them had developed their skills in tandem with the growing complexity of the hardware and software. They had an amazing advantage of being there when it was all happening and being built up around them.
As for design patterns, I would never accuse Andy of using them. He was a coding wild man and super impressive, but his real skill was coming up with cool ideas and willing them into existence. Working with him, I always felt he was going through the jungle making paths with a machete and the rest of us had to actually build the roads behind him.
You can still get this experience by trying to do some things the old ways. One that's come up to me recently: program an ATMega328 (the famous Arduino chip) in assembly to output a waveform with tight timing requirements.
That is, as opposed to using a timer interrupt or a delay routine, arrange instructions so that the processor naturally gets to the instruction to change the output pin at the correct time, within the acceptable tolerance. These processors have no caches or predictors so instruction timing is reliable.
I think people are doing it these days on the Raspberry Pico chips, but any "old school" microcontroller will do.
Who did they sell to for the $50k royalty?
It shipped with Microsoft apps, so quite possibly them?
(The article doesn't mention this later became "Multifinder" and included with System 6 iirc.)
Multifinder could be thought of as a spiritual successor to Switcher but it shared no code with Switcher and took a different approach to solving the problem of allowing a user to interact with multiple running applications.
Erich Ringewald, the author of Multifinder, and Andy weren’t done with this problem at, or with, Apple. I got to work both of them, Erich at Be and Andy at General Magic/Eazel.
Searching for "IBM PC Memory Shift software utility 1984" returned no useful hits for the software described that way early on the article.
As a 1980s developer I wonder if that may have been a reference to Borland's Sidekick launched in 1984.
* https://en.wikipedia.org/wiki/Borland_Sidekick
Or was Memory Shift an actual TSR swapper I simply never encountered?
https://www.atarimagazines.com/creative/v9n12/82_MemoryShift...
Brilliant, thanks for that - DECEMBER 1983 tracks, there was an explosion of TSR programs and utilities at that time.
Meanwhile, Amiga 1000 Workbench (also released in 1985) not only had application switching, even when full screen, they had desktop screen switching where each screen can be different resolution / colour depth.
https://www.youtube.com/watch?v=rDDndh6OPK4
The key combo was Amiga-M to send window to back of stack, and cycle windows.
BTW = Amiga had preemptive multitasking
But the world decided to ignore the Amiga and focus on MsDOS and black and white MacOS.
Yes, and absolutely ghastly screen artifacting when doing so which would have had Steve Jobs smashing the screen with a chair.
(my favourite Amiga game was Obliterator, but I hated the screen appearances one had to go through to get it running if one had been doing some sort of graphical work)
Also, only pixel fonts --- but the Apple Mac at that time was outsourcing its own vector font usage to the much faster processor in the Apple LaserWriter.
Lots of TV stations using Amigas for screen graphics though.
Acthschually, near its end, the Amiga got nice vector fonts too. (AmigaOS 2.1 or so?). But it was/ended as a timebubble, alas.
Previously:
Switcher (2004) - https://news.ycombinator.com/item?id=32414661 - Aug 2022 (30 comments)
"Don't argue with me. $100,000 is fair, and you know it." - https://news.ycombinator.com/item?id=1637862 - Aug 2010 (110 comments)
Mac OS gets multi-tasking - https://news.ycombinator.com/item?id=1319308 - May 2010 (7 comments)
i have thunderscan.com and need to get it to andy and/or set it up with something useful