Lotus 123's slash commands were extremely handy. To the point where Microsoft was forced to copy them when Excel first came out to ease transition of users. There's a ton of older references on the web on how to use them. See https://www.isric.org/sites/default/files/isric_report_1990_... for a reproduction of 123's main menus. The sequences become muscle memory really fast.
In English seeing it referred to as "monkeytail" looks weird, but in my native language Dutch it's often referred to as "apenstaart" or "apenstaartje" which means "monkeytail" resp. "little monkeytail". Though more and more often it's referred to as the English "at".
(Which, as I come to notice now, is almost exactly what the Wikipedia article in the sibling comment says)
I think there is something kind of fun about purposefully using "outdated" software, and even valuable sometimes, in the same way that it's useful to use a dead language like Latin nowadays; it's not changing so there's sort of a bit of "equality" to it, for want of a better word.
For example, I've actually thought it might make sense for people to release new software on DOS or the Sega Genesis, simply because they're not being updated anymore, and as a result, there's a ton of great emulators for both that can run on pretty much any modern platform under the sun. A Linux program I write might not run under FreeBSD or AmigaOS, but I would bet that I could get basically nearly any SNES game running nearly flawlessly on them with an emulator.
> in the same way that it's useful to use a dead language like Latin nowadays; it's not changing so there's sort of a bit of "equality" to it, for want of a better word.
You might think so, but reading scholastic Latin from the 1700s is radically different from reading classical Latin from the -100s. Cicero was writing in his own native language, and he used the wordings that came to him.
Isaac Newton was also, kind of, writing in his own native language. Latin was used only for the purpose of communicating with an audience; it was a channel by which you could encode English and someone else could then decode French.
But what you get by applying a set of rigid encoding rules to early modern English isn't all that similar to what you get by training an infant to speak classical Latin and then letting them express themselves in the way that feels natural to them. Scholastic Latin is much easier for the modern person to read than classical Latin is; it is essentially modern language under a thin disguise.
There are a good number of old devices that still have a devout following. For MS-DOS you might check out e.g. Planet X3 [1]. Or how about Super Boss Gaiden [2], a game for a prototype console of which (AFAIK) only one unit is in existence (but you can play the game on an emulator, which apparently exists for this obscure console).
Coding for obsolete platforms is analogous to black-and-white film photography with lenses of fixed focal length. Restriction breeds creativity by denying you access to the full gamut of easy, low effort solutions.
Sure but even for web apps, you have to code around the fact the people might have outdated browsers, and even with current browsers you end up having to deal with rendering quirks of each.
When you use a truly "deprecated" platform, you have don't have to worry about that; the Sega Genesis/MegaDrive hasn't been supported in any official capacity for more than 20 years, meaning that basically any emulator made in the last decade or so will be "feature complete".
(I know there are a few bits of weirdness with emulating expansion chips for Virtua Racing, but my point overall still stands).
this is about their only redeeming quality to me, ease of maintenance and compatibility. From a design standpoint with all the mix of too many technologies on shabby scaffolding it is annoying. But you know what they say "it works". I have some high hopes for web assembly to reduce some of this. or at least hide it.
I still feel there's things it could do that I can't do with my iPhone; and spreadsheets is one of them. (Yes you can get Excel on an iPhone, the interface sucks).
I had one of these in college! I hooked it up to a serial port and set up Linux to use it as a login terminal, so I could do email in Pine while my girlfriend worked on homework with the actual keyboard/mouse/monitor.
It didn’t just have Lotus; it had a dedicated Lotus key.
I still use one of these to store my passwords and run certain ancient astronomy software. Today, we don't have any decent small computers which run of AA's.
Patience exhibited by the author is incredible. These days I get angry after maybe an hour or two of running into one issue after another—because I know that their supply is pretty much endless, while victories over unreasonable software begin to feel smaller and rather meh.
He’s a fairly accomplished security researcher who seems to have quite a knack for this sort of reverse engineering.[0]. I’m always amazed by his patience every time he publishes his research.
Indeed, it is. I didn’t want to sound like a fanboy, but damn, his work is amazing. I don’t know how he has the patience and dedication for half the work he does. And that’s not even to mention the quality of his write-ups.
Yeah, I'm vaguely familiar with taviso's credentials—but there's security research and then there's digging out symbols to write a display driver for DOS Lotus 1-2-3. I'm saying that as someone who spends inordinate amounts of time trying to get emulators to run old games on my Mac; whacking my config into just the right shape; and using Lua instead of Python because scripts finish faster than Python starts up.
However, I wonder if all this work could contribute to a "modern" terminal floss office suite.
Lotus is not is not open source. You would need to get IBM to release it as open source, which of course means they would have to have the code stored somewhere. While we're at it we can get microsoft to release the dos versions of works and visual basic, and whoever owns wordperfect to release that.
Wordperfect at least existed for Unix platforms so might be somewhat portable to linux. I don't remember Lotus or Microsoft ever being on Unix back in the day. Though Lotus did have Improv on the NeXT so maybe they did...
I installed the SCO Xenix 386 version for several customers. This was a port of the text-mode codebase, roughly equivalent to WordPerfect 5 for DOS. (Generally regarded by WP cognoscenti as the best version: either 4.2 or 5.1 depending who you ask.) WordPerfect's legendarily rich printer support really came into its own for Xenix, which was poor on printer support.
WordPerfect for Linux made it to version 8, and was bundled with Corel LinuxOS, the first desktop distro to boast a graphical display-settings dialog, for instance. It was based on Debian with a heavily-modified version of KDE to make it more Windows-like.
There were free versions of Corel LinuxOS which have a free and slightly cut-down version of WordPerfect, and a paid version with a full unlimited WordPerfect. I own a boxed copy.
I have WordPerfect 8.1 running on Ubuntu 20.04 64-bit. There is no antialiasing, so it looks rather ugly, but it's blazingly fast.
It used to be a major pain to install, but there are new scripts as of last year to simplify it: http://www.xwp8users.com/
I am not aware of a native text-mode version of WordPerfect for Linux, but WordPerfect 6 for DOS (the final DOS version) runs very well under DOSemu.
> Lotus 1-2-3 was ported to a bunch of systems, including OpenVMS, Xenix, and even System/390. In 1991, Lotus released a version for SunOS4 on SPARC.
Word (according to Wikipedia):
> ... were later written for several other platforms including IBM PCs running DOS (1983), Apple Macintosh running the Classic Mac OS (1985), AT&T UNIX PC (1985), Atari ST (1988), OS/2 (1989), Microsoft Windows (1989), SCO Unix (1994), and macOS (2001).
Excel was originally a Mac program, but hasn't been available on any Unix platform since (as far as I can tell.)
- Wordgrinder/groff+mom+jstar as word processors. Well,
the second is not a "word processor" as today, but the
syntax is dumbed down from groff with the Mom macros to
write up something complex without getting mad with the troff/nfroff syntax. And, yes, you can use eqn(1)/pic(1)/tbl(1)/grap(1) and chem(1) on it in the exact
same way.
You should try to find SCO Professional.. It was a 1-2-3 clone for UNIX/Xenix that I think used curses or at least termcap. It worked quite well in an SCO Xenix-based office I maintained in the early 90s.
So this was a single 386 machine with a large card that supported multiple hercules graphics card eqivalents as daughter boards. Terminals included a keyboard and monitor connected to this card over RS-485. A single 386 supported four users this way.
TBH it was a 2nd string product in its prime, IME. DR's Concurrent DOS/386 was the premium offering. I supported it in the late 1980s.
This was around the time that a LAN of cheap PC-XT clones was becoming price-competitive with a big high-power 80386DX machine with lots of RAM and a bunch of dumb terminals on a multiport serial card.
The terminal vendors and multiuser OS vendors fought back with colour terminals and then graphical terminals. CDOS386 supported these. The basic PC design supported 4 RS-232 ports, so you could have an 8MB 386DX with one user on the system console and four users on dumb terminals, all of them able to run even quite demanding DOS apps including fancy stuff like graphical print-preview or a spreadsheet that could draw graphs.
The snag was that CDOS386 was not a DOS; it was a descendant of Concurrent CP/M. It ran DOS apps but could not use DOS drivers – it needed its own. So adding hardware was not a trivial exercise. Kit had to be chosen from short hardware compatibility list (and was therefore expensive) and drivers supplied as object files relinked with the kernel. It was not as simple as modifying CONFIG.SYS and rebooting – PC/MS-DOS sysadmin skills did not transfer over.
And it couldn't usefully run Windows. So as soon as Windows 3 came out in 1990 and the market started to move to Windows and Windows apps, that was largely it for Concurrent DOS, PC-MOS etc.
When DR was bought out by Novell, several forks of the codebase were continued for a while by OEM licencees, and it gained support for FAT32, USB and so on.
A branch of the CDOS codebase is still just about alive though. DR did a 286 version, but were screwed over by Intel. CDOS286 used a feature of prototype 80286 chips to multitask DOS apps, but this was removed in the final shipping CPU hardware. (Intel did not know and put it back but it was too late.)
DR just took the OS in a different direction and sold it as a multitasking real-time OS instead, downplaying DOS compatibility. It bundled a multitasking version of its GEM desktop, too, so it was a multitasking GUI RTOS, called DR-FlexOS.
This found a niche in electronic point-of-sale systems: EPOS, i.e. smart cash registers built around x86 PCs. It was later acquired by IBM who rebranded it as IBM 4680 OS, later IBM 4690 OS. (What a knack for snappy names Big Blue has!)
IBM discontinued it just a few years ago, but it is still sold by Toshiba.
This reminds me I should try to make a bit more progress with trying to write an RDP display driver for Win9x... one of those things I thought of one day but never really got around to doing. (I'm sure there are existing solutions, but writing my own is half the fun --- and I've already written a generic VESA framebuffer.)
I like stuff like this in the same ways as car modding --- teaching an old dog new tricks.
I was actually inspired by that one, but it has some glaring deficiencies (like windowed DOS boxes corrupting the graphics state) that I wanted to fix; but only managed to do so, partially, before other things took priority.
The amount of code needed to get basic unaccelerated graphics working is surprisingly small; most of it has to do with detection and modeswitching. Once you set the mode, all you need to do is give Windows' GDI the appropriate framebuffer and related information (the structures are, not surprisingly, very similar to a BMP file header), and it will do all the rendering. Of course you can also hook into some of the drawing functions for some acceleration, but my testing with a relatively recent GPU and CPU showed that even unaccelerated 2D graphics is plenty fast for essentially everything but gaming. That's partly why I wanted to turn it into RDP --- which AFAIK is similar to GDI, but RPC'd over the network.
That's good to know. It just feels more "at home" inside a VM I already use for accessibility and compatibility testing anyway (IE3+ for my sites), and it starts up faster than with Wine for me.
IE3 gave me a bit of a challenge because it likes cookies to only be set a certain way, JUST SO.
However, the most adjustment was probably for Mosaic, who treats ">", not "-->" as HTML comment closing, so my JavaScript can't have > characters. For if statements, I flip them, and anytime I need a > character, I get it from the char value. (Almost all my JS is baked into the HTML by the templating engine, because some browsers don't like/support external includes.)
I don't have an extensive Mac IE testing stable yet, but I have tested in IE5 Mac, which has its own rendering engine called Tasman.
However, with every browser I add support for it becomes more and more likely that another one I try will also work, especially if it came later. Netscape 2.0 works, so that covers a good range.
Pre-Mosaic, I have not done much testing yet, in part because it's difficult to find them.
Don't use any site he made... Anything compatible with IE3 is incompatible with modern privacy expectations (doesn't support any vaguely secure variant of HTTPS, and any server which supports old variants can't be protected against downgrade attacks, and therefore cannot protect users privacy)
You can't downgrade a modern browser to ssl 3 (the most recent version supported by IE3) because modern browsers dont support sslv3 (prior to dropping support there were also some fixes for downgrade attacks).
Dont get me wrong, supporting sslv3 is still a terrible idea.
It would be interesting to know though what the most secure possible setup is for servers supporting ie3, both when a modern browser connects and when connecting to ie3, and what the security properties are. I would guess that its at least secure against passive monitoring (e.g. a mass survelience situation), which is a pretty low bar, but also the bar a lot of people care about.
> I would guess that its at least secure against passive monitoring
It isn't. IE3 used 40-bit encryption by default, which is trivially brute-forceable with modern hardware. Some versions supported 128-bit ciphers, but only through an unusual upgrade process [1] which depended upon "Global Server ID" SSL certificates with special extensions which are no longer issued.
Even if it weren't for that, it's no longer possible to issue a certificate that would be recognized by IE3. All newly issued SSL certificates are required to be signed with SHA256, which wasn't even published until 2001. (The final release of IE3 was in 1997.)
Is what you say still true if you also want to support IE4, 5, 6, 7, etc? You'd want functionality for all the browsers, and strong privacy for the latest versions of browsers.
I assume if you're supporting ie3 you also want to support every newer version.
You are correct, I support every known browser, and I test with every browser I can get my hands on.
It doesn't mean every single browser will work, but with each tested browser, the chances of that increase.
I consider all our communications to be monitored, and put accessibility above so-called privacy.
Anyway, I don't believe SSL provides privacy in any reasonable way except against the most basic of attackers.
For text-based websites which only provide information for reading and do not deal in commerce, I think making SSL optional is perfectly reasonable, and our SSL obsession has hurt us tremendously in accessibility, while adding a huge attack layer and obfuscating our own communications from ourselves.
Nobody at IBM will ever want to be the person to suggest decommissioning a server that might make a paying customer yell at their manager. Expect it to continue forever.
Back in mid-2019, IBM took down their old IBM Library Server mainframe documentation website – http://publibz.boulder.ibm.com/cgi-bin/bookmgr_OS390/library – it was absolutely fascinating, it had documentation on mainframe products going back to the 1990s, and even other random stuff like a bunch of obscure IBM software packages for OS/2. Their new mainframe documentation site only has recent releases on it, it is missing all the old stuff.
So given that example, I doubt this is going to continue forever either. Sooner or later someone is going to say "FTP is a security risk, we need to replace it with SFTP". And then the old FTP site will disappear and be replaced with a new SFTP site with far less content. Or the hardware it is running on will fail and be too old to be replaced. Or someone will complain the OS or FTP server software are out of support and that makes them a security risk. The whole thing is only an audit away from oblivion.
> it had documentation on mainframe products going back to the 1990s
Holy crap! That's so old that it's when I was programming (in assembler) on a 3090! (First programming job. Early to mid-90s. Moved to *nix. Never looked back)
This is what metrics are for right? See that nobody is using it, shut it down. Which probably won’t happen anymore with all the HN traffic it receives now.
Metrics are hard to justify and use on a "once every five years" type of access. Much simpler to throw the machine you don't know what it does into a VM and leave it alone.
They probably have this running in a well walled off VM so it doesn't really matter to them for the most part I would guess . A customer will report it if files get corrupted or something looks fishy I suppose.
Oh wow, Metropoli is still alive? I haven't seen that domain in ages.
I was actually active on the BBS back in the day, years before WWW came on the scene and blew up the internet. Hell, I think my first widely known email address would have been @mpoli.fi one - and, this being in early 1990s, I actually walked over to the owner's house to pay the account creation fee in person.
As far as the tech scene goes, you can probably trace most of the Finnish old guard to that system.
It takes a certain kind of puzzle curiosity to do this sort of thing. I find I would have re-written Lotus 1-2-3 from scratch rather than do all this but that is just another way of spending one's "cleverness beans" as they used to say.
People with this level of curiosity and puzzle affinity make great security researchers/staff. In their own way older binaries are all puzzle boxes that are holding some number of exploitable vulnerabilities to make them do things that their original developer either didn't intend or didn't foresee. Finding them gives a dopamine hit.
Hehe, this is Tavis (from Project Zero), so he might know a bit about security.
Dopamine hits are probably a large determining factor of what kind of programmer you are. Making something from scratch has a longer glow, and a fulfilling crescendo, but nothing compares with the joy of finding the right thing to whisper to a machine to get it to do something it was never meant to. Whether it be displaying DOS interfaces in wide screen or dumping its memory. The pain of looking for the right combination only makes finding it sweeter.
On the DOS post on Lotus from Taviso, maybe he would like
Groff + Mom + a Makefile entr watching for the file changes (and running make) with MuPDF refreshing the content automatically.
Far lighter than LaTeX, and almost as user-friendly as the
old word processors.
Could a js transpilation of a dos emulator be used to get this to run well in a browser? It would be cool to have a text mode spreadsheet that works in a browser and could be self hosted.
When I was a kid, looking at all the photos in the Macintosh manual of the very 80s office setups made for some serious techno-lust material. It’s funny to look back at it all now, but it was often a combination of hardware that’d cost something pike $20k or more in 2021 dollars!
A bit off topic, but what I've wanted forever and never found is a spreadsheet that deals in units natively. So if one cell is in Newtons and I divide it by a cell that is in m/s^2 I want the resulting cell to be in grams. Units should propagate through the sheet automatically. Unit prefixes can either be automatic (km, m, mm, um, etc) or fixed as you would with a format setting.
Google calculator is the closest thing I've seen to this, but it isnt in spreadsheet form.
Anyone know of a system that provides this functionality?
Interestingly, it seems there's a Sheets add-on which provides at least some of what you want— unfortunately not with cell metadata, but rather using pairs of adjacent cells for the quantity and units:
I remember Mathematica being a bit weak with units actually. Natively there's no support, you have to rely on add-on packages and I didn't have much success with the popular one. But my experience is from version 8 (a while ago) so it may have improved since.
spreadsheets barely have distinction between strings and numbers. Units would be another level! I hope that at some point something like a strongly typed jupyter notebook tailored specifically for table inputs would arise and replace some current usages of spreadsheets in office/consumer space.
GNU units does this, but is definitely not a spreadsheet or anything like a spreadsheet. It might be possible for a spreadsheet to arrange to call it as a back-end, though.
You have: 100 N / (50 m/s^2)
You want:
Definition: 2 kg
1-2-3 would allow you to plot a function on your graphs. Something that I haven't seen since. The solution now is to build a range and values, but that just adds one extra column of data to massage versus having a reference line covering the domain and range of that particular graph.
Interesting! I do this on paper a lot because that's how I learned in college.
Thinking of it. It's composing converters. That should be fairly easy to automate!
Not a spreadsheet, no, (it is more of a freeform worksheet) but SMath Studio is a breeze to work on with units.
It has complete support for units of measurement and comes with most built-in. It can also decompose derived units into simpler forms if it finds a match.
In python there’s the pint module, which works with pandas dataframes, which can read/write excel sheets. So yeah, maybe. Why do anything in excel, except for data entry?
I've never used Lotus 1-2-3, but this makes me want to try and get it running to try out older software that is brutally efficient.