Log in

No account? Create an account

Thu, Nov. 8th, 2018, 05:17 pm
Getting and running IBM PC DOS 7.1

PC DOS 7.1 is the last version of the original Microsoft product line that started with MS-DOS 1 (itself now open source.)

I mentioned this in my post about DR-DOS.

PC DOS 7.1 is often confused with 7.01, also known as PC DOS 2000, which is actually version 7.01. It's a modest enough bug-fix for MS-DOS 6.22.

Version 7.1 is a different beast. It's based off the same core as the embedded DOS in Windows 95B (OSR2) and Windows 98. It supports FAT32, including the ability to boot from them. It supports LBA hard disks, meaning it can handle volumes of over 8GB. It fixes a lot of bugs in the DOS codebase.

Here's some more information (in Spanish but Google translates it fine.)

The primary author, Vernon Brooks, has a site which details the development history and itemises his fixes.

Here is how to get PC DOS 7.1, which IBM makes available as a free download. You may have to hunt -- the ServerGuide toolkit is quite old now.

Here is at least one method to install it in VirtualBox.

Note, it is not a complete OS. Unfortunately in this way it resembles DR's versions of DR-DOS 7.04 and later, which consists only of boot files embedded into the startup diskettes for products such as Seagate Disk Manager and Powerquest PartitionMagic. IBM only updated the kernel and some core tools.

To make a complete OS from this, you need a full copy of PC DOS 2000, then replace some of its files with the updated ones from the SGTK, as detailed above. I am reluctant to link to sources for this, as it is still copyright code. If you can't find it, ask me.

I have done this and can confirm that it works and works well. I have it running inside VirtualBox, and booting natively on the bare metal of a Lenovo Thinkpad X200. It is somehow aesthetically pleasing to have IBM PC DOS running natively on modern hardware that still has IBM branding. I can also say that classic DOS word-processors such as MS Word 6 and WordPerfect 6 run both very well and very quickly on it.

Tue, Nov. 6th, 2018, 05:44 pm
"The Future of Programming" by Bret Victor

"The most dangerous thought you can have as a creative person is to think you know what you're doing."

Presented at Dropbox's DBX conference on July 9, 2013.
This is an absolutely wonderful ½-hour long talk which pretends to be from 1973.

LJ embedding doesn't seem to work, so go visit YouTube or Vimeo.

The speaker has more info on his own site.

Tue, Nov. 6th, 2018, 01:38 pm
The future comes at you fast

I run Linux, and I work for a Linux vendor. I'm typing on Linux right now.

But I still don't particularly like Linux. I like OS X a bit better, but I miss aspects of classic MacOS. I am playing with Haiku with some interest -- it's getting there. And I'm fiddling with Oberon, mainly for research.

But all this stuff is very mature now, meaning hidebound and inflexible and showing its age badly. Thus all the patching over the cracks with VMs and containers and automated deployment tools and devops and all that.

Basically I think we're just for a huge shift in end-user-facing computing. It's time for a generation shift. I've worked through 1 big one of these, and maybe 2 or 3 small ones.

I was actively involved, as a working professional, in the shift from text-based computing (mostly DOS, a little SCO and Concurrent CP/M & Concurrent DOS stuff, and bits and bobs of other older stuff, mostly terminal-based) to GUI-based computing.

The hardware and OS makers survived. Few app vendors did. It basically killed most of the big DOS app vendors: WordStar, Lotus, WordPerfect, Ashton-Tate.

This is prehistory to younger pros these days: it was in the 1990s, while they were children.

Then there were smaller shifts:

[1] from predominantly stand-alone machines to LANs

[2] from proprietary LANs to TCP/IP
(and the switch from DOS-plus-Windows to Win9x and NT here and there)

[3] connecting those LANs to the Internet
(and the partly-16-bit to purely-32-bit switch to a world of mostly NT servers talking to NT workstations.)

Then once we were all on NT, there were two relatively tiny ones:
* multi-processor workstations becoming the default (plus GPUs as standard, leading to compositing desktops everywhere)
* the (remarkably seamless) transition from 32-bit to 64-bit.

But the big one was DOS to Windows (and a few Macs). It's a shame most people have forgotten about it. It was a huge, difficult, painful, gradual, and very expensive shift.

And at the time, most people in the business pooh-poohed GUIs.

For a full decade, there were multiple families of successful, capable, GUI-based computers, with whole ecosystems of apps and 3rd party vendors -- not just the Mac, but the Amiga, and the Atari ST, and the Acorn ARM machines, and at the high end graphical UNIX workstations...

And the DOS world staidly ignored all of it. They were toys. GUIs were toys for children, except very expensive ones for graphic designers, in which casee they were too niche to matter. Macs weren't real computers, they were for the rich or the simple-minded.

[Insert discussion about intersectionality and toxic masculinity here.]

Windows 3 was all very well but it was still DOS underneath and ran DOS apps and it was just a pretty face. The more serious you were, the more DOS apps you ran. Accountants didn't use Windows. Well maybe except Excel, but that didn't count. (Har har.)

It was still a sign of Manliness to be able to drive a CLI.

(It still is in the FOSS world, where people take great pride in their skills with horrible 1970s text editors.)

There was real scorn for so-called toy interfaces for toy computers, when people have work to do, etc.

Then, once people showed that you could actually do real work using these alleged toys, it switched to being inefficiency: it was claimed to be a waste of computer power driving all those pixels. Then when the computer power became plentiful enough for it not to be a problem, it was a waste of money equipping everyone with big screens and graphical displays and lots of RAM.

This kind of crap held back real progress for about a decade, I reckon. I mean, MS was singularly slow off the ball too, partly due to wasting (in hindsight) a lot of time and effort on OS/2. Even then, OS/2 1.0 came without a GUI at all, in 1988 IIRC, because it wasn't finished yet. (One could argue this showed commendable dedication to getting the underpinnings right first. Possibly. If the underpinnings had been right, which is debatable.)

DR GEM showed that mid-1980s PCs were perfectly able to drive a useful, productive GUI. The early Amstrad 8086 machines shipped with GEM, along with a GEM programming language, a (very basic) GEM word processor, a GEM paint program, etc. It even ran usefully on machines without a hard disk!

Windows 3.0 (1990) was all right. Good enough for some use. Benefited a lot from a 286 and at least 1MB of RAM, though.

Windows 3.1 (1992) was useful. Really wanted a 386 and at least 2MB, ideally 4MB.

NT 3.1 and WfWg were both 1993. WfWg was useful but already looking old-fashioned, whereas NT wanted a £5K+ PC to work well.

It was 1995 before a version that ran on an ordinary computer and gave unambiguous, demonstrable benefits to basically all users came along. That's what OS/2 should have been on high-end 286s a decade earlier.

Then, suddenly, a full decade after the Amiga and the ST, we got Win95 and suddenly everyone wanted them.

Few lessons were learned from this shift.

We haven't had such a big generation shift in 25 years, which means that now there are lots of middle-aged pros who don't really remember the last one. They've never worked through one.

Now we're facing another big shift, and again, although the signs are here, nobody takes them seriously. The writing is on the wall as it was in the late 1980s and early 1990s, and nobody is seeing it.

To spell it out:

* Keyboardless computers are huge. Smartphones, tablets, tills and other touchscreen devices.
* Most of them are all-solid-state: just RAM and flash.
* The first non-volatile RAM is on sale now. I just wrote a whole new manual chapter on it, for a boring enterprise OS. It's becoming mainstream.
* It's ~10× cheaper than DRAM and ~10× faster than Flash. This is the early, v1.0 kit, note.

Soon we will have the first new generation of computers since the 8-bit microcomputer revolution of the late 1970s. All-nonvolatile-RAM machines. They will not have the distinction between RAM and disk storage that all computers since about the 1950s have had. This is a bigger shift than minicomputers were, than the micro was.

It will, of course, be perfectly possible to adapt disk-based OSes to them and run them on these machines, partitioning the storage into a fake-disk bit and a live-RAM bit. But it will be inefficient and
pointless to shuffle all this data around like that -- however, it is an assumption so completely implicit in every OS in the world today (except one¹) that it is insurmountable.

Try to imagine Unix without a filesystem. It doesn't really work. Take away the notion of a "file" and basically all current OSes sort of fall apart.

But there is a certain mindset that I encounter very often who find the concept very hard to even imagine, and are extremely hostile to it.

Which is exactly the sort of thing I saw in the era of the transition from DOS (and text-only Unix) to ubiquitous GUIs.

Both Unix and Windows are cultures now.

One could argue that devotees of any OS or platform ever were, sure -- but in the 20th century, most platforms came and went relatively quickly. A decade and they had been invented, thrived, flowered, there was an explosion of apps, peripherals, wide support, and then they faltered and were gone.

This meant that most enthusiasts of any particular make or series of computer had exposure to quite a few others, too. And TBH while every 1980s computer had strengths and virtues -- OK, almost every -- they all had weaknesses and rivals which were stronger in those particular areas.

Now, much less so.

Now there are only 2 platforms -- Windows or Unix -- and they both mainly run on x86 with a toehold on ARM. They're mature enough that the CPU doesn't make a ton of difference.

There are lots of flavours of Unix, and some are very different to others. However a lot of the old-time 20th-century Linux enthusiasts I know, or know of, have switched to Mac OS X now, basically for an easier life. The rivalries are much smaller-scale: free vs commercial, BSD vs Linux, distro rivalries, desktop rivalries, and of course the eternal editor wars.

Step back far enough and the 2 are very clearly siblings with very similar conceptual models.

Low-level code is in C, stuff layered on top is in slightly higher-level languages (both compiled and interpreted, both generally imperative, usually object-oriented). Performance-critical stuff is compiled to static CPU-specific binaries and libraries, stored as files in a hierarchical filesystem along with config info stored in text files, some sort of system-wide database or both. There's a rigid distinction between "software" and "data" but both are kept in files which may be visible to the user or hidden, but this is a cosmetic difference. Users switch between different "applications" to accomplish defined tasks; data interchange between these is limited, often difficult, usually involves complex translations, and as a result is often one-way, as round-tripping means data loss.

There are of course dozens of dead OSes which conform to exactly this model, from all the beloved 1980s home computers (ST, Amiga, Mac, Acorns, QL, different vendors' Unix boxes, etc.).

But the point is that now, this 2-family model has been totally pervasive for about 30 years. Anyone younger than 25 has basically never seen anything else.

Compare these systems to some older ones, and the differences are startling. Compare with Classic MacOS, for something close to home. Not a single config file anywhere, no shell, no CLI, no scripting, nothing like that at all.

Compare with a Xerox Smalltalk box, or a Lisp machine, or Tao Intent, or Vitanuova Inferno, or colorForth, and you will see multiple radically different approaches to OS design... but all of them are basically forgotten now.

I think we lost something really important in the last 25y, and rediscovering it is going to be very painful.

I very much hope that bold, innovative new OSes come along that exploit this new design fully and richly.

But it's almost inconceivable to users of current tools. Partly because the concepts of filesystems are so very powerful, it's almost unimaginable that you would want to throw that away.

Which is very close to what DOS power users said in 1990, and I think is just as valid. (FTAOD, that means it's not valid at all.)

It's an interesting time.

P.S. at least for now, I think the current model suits servers very well, and just like GUI ideas matured in their own market sector of weird 680x0 computers that were unconnected from the x86 PC market
until it caught up a decade late, I think the server side of things will trundle on for another decade plus without this stuff having any impact.

I also suspect that as these new machines rise to dominance, as with previous shifts, pretty much no existing vendors, of hardware or OSes or apps, will survive the change. Entirely new companies will come along and get huge.

¹ IBM i. That is, OS/400. I doubt it will suddenly become very relevant.

[Adapted from some list posts, in lieu of real content.] 

Sun, Oct. 21st, 2018, 04:04 pm
The first try at "an Ubuntu" -- Corel LinuxOS

(Hacked together from a few Reddit comments. Pardon disjointedness.)

Corel LinuxOS was a great distro. I reviewed it at the time.

It was the first serious big-backer effort to make Debian user-friendly and to make a Linux distro that could rival Windows NT 4 as a credible business desktop OS.

It has a custom remix of KDE -- I think KDE 2 -- heavily rewritten to make it more like WinXP. So they looked at Konqueror and discarded it as a bad job (overcomplex, trying to do too many different things... as KDE itself eventually decided too).

It had its own file manager, very like Windows Explorer. A real pleasure to work with. It even browsed Windows networks, better than anything can today.

IMHO, having used KDE since version 1, it was the best version of KDE ever and the only one I liked using. (2nd place: Red Hat Linux' Bluecurve edition in RH 9, before the Fedora/RHEL split, but that was just a really good theme and replacement of all the KDE apps with best-of-breed alternatives, which usually meant Gtk apps.)

I think Corel defaulted to Netscape Communicator as its web browser & email client -- Firefox didn't exist yet.

It was the first Linux ever to have display setup and adjustment using a graphical tool. You could just pick a colour depth from a drop-down, and drag a slider to adjust screen res. Just like Windows. This was world-beating stuff in the late 1990s -- nobody had ever seen anything like it on any Unix before. (Except maybe NeXTstep on its proprietary hardware. Which didn't do colour at all in the first versions.)

And of course it had WordPerfect, too. Remember this is before StarOffice (later OpenOffice later LibreOffice) was acquired by Sun and made freeware and later FOSS.

WordPerfect started out on Data General minicomputers in the 1970s. It was ported to everything early on. There were versions for the Atari ST, Amiga, OS/2 and classic MacOS as well as for MS-DOS.

The original edition was text-based and famed not only for its speed and very useful "reveal codes" function, which split the window into 2 showing editable markup in the bottom half, but also its very rich printer support.

In the era of text-based OSes, pre-GUI, it was common for apps to have to provide their own printer drivers. The OS maybe managed spooling but nothing more. No drivers. If you wanted bold or underline, you had to write all your own drivers.

WordPerfect did this better than anyone. It supported just about every printer in the world and did it better than anyone.

This early text-mode WordPerfect also ran on text-based Unix. I had a customer who wanted it on SCO Xenix 386. I installed it. It worked and the printer support was great, but fought for control with SCO's spooler. I had to edit SCO's "printer drivers" (really just shell scripts with minimal start/stop/set paper size control) in order to get it working.

The result was not great. In the end the customer switched users who needed wordprocessing from terminals to PCs running local copies of WP, and a terminal emulator for talking to the SCO host.

(SCO did not include networking -- it was an expensive optional extra on an expensive OS. X.11 was another extra. A C compiler was another.)

So WP always ran on Unix, for about 40 years, from before Linux was invented.

The first full-GUI WYSIWYG version, I think, was on OS/2 2. That was later ported to Windows 3 (and wasn't very good at first).

That's the version that they ported to Linux, version 8 of a full native rich Unix app, but an old Unix app with an old design, probably originating on SCO and running on various 1980s proprietary non-x86 Unixes, such as AIX, Solaris, etc.

I used it and liked it but it was a bit clunky. Printer support was good, though, which was a weak point on Linux back then.

So when Corel did a Linux distro, a selling point was the inclusion of WP 8.

There were 3 separate versions of WordPerfect on Unix.

#1 -- the original text-based version, no GUI, for proprietary Unixes with no GUI, such as SCO Xenix.

#2 -- the later graphical version, derived in part from the OS/2 and Windows 3 codebase, which was bundled in Corel LinuxOS. This was WordPerfect for Linux version 8, and it was a full native Linux app.

#3 WordPerfect Office

So about #3...

Corel got really into Linux around the end of the 1990s. It ported graphical WYSIWYG WordPerfect, it did its own distro, and it did its own ARM-based hardware, the Netwinder.

But there was no Linux office suite yet. WP 8 was the first credible commercial wordprocessor for the OS yet.

So Corel, flushed with confidence, and having now acquired WordPerfect Corp and part of Borland (for the Paradox database and Quattro Pro spreadsheet) and having its own Windows office suite, decided to port the whole thing to Linux.

But only WordPerfect was portable, cross-platform code. The other apps (Paradox, Quattro, Impress (presentations), InfoCentral (PIM) etc.) were Windows-only.

So it used WINE, specifically winelib. This was a related project to WINE but instead of letting you run Windows binaries, winelib lets you port Windows apps to Linux by providing Windows-compatible APIs to link to.

The result is a native Linux binary, although often called WHATEVER.EXE, which installs and runs natively -- but displays everything by calling winelib functions which translate Windows API calls to Linux ones.

That's how WordPerfect Office for Linux was written. Custom, tailored versions of the apps, with stuff that was totally Windows-specific removed, and features adjusted to work with winelib. But still, not a true native Linux app -- a suite of big complex Windows apps ported to Linux via WINE, and so dependent on WINE. And this is 20y ago and WINE wasn't very mature yet.

It worked and it was the first native (ish) Linux productivity suite, but it was buggy and unstable.

But then Corel did a fateful deal with the enemy. With Microsoft.

To improve adoption of WordPerfect Office on Windows, some gullible Corel boss was persuaded that what WPO needed was to be more compatible with MS Office. And the way to do that was to license the Office look and feel, i.e. the custom menus and toolbars, and the Visual BASIC for Applications macro language.

(Aside: you should realise that VBA was bolted on to MS Office when Office was quite mature. Word had its own macro language, WordBasic. Excel had its own too, similar to Lotus 1-2-3 in-cell macros. These were ripped out and replaced with VBA. For a while Excel could run _both_. That's what Corel did too... only it didn't even own the code it replaced its macro languages with.)

Corel licensed VBA and the look and feel and bolted them onto WPO for Windows. It paid a lot. Tens of millions, US.

But Microsoft insisted that Corel kill off all its Linux work as a result.

And Corel bought it. So it killed WPO for Linux... and CorelDraw for Linux and its other Linux apps. It killed WordPerfect for Linux, the native port. It killed the NetWinder and it killed LinuxOS. A lot of people lost their jobs.

The NetWinder and LinuxOS got sold off.

Corel LinuxOS became Xandros, also a damned good distro, but with no WordPerfect and no big-company backing. There were 2 more releases then it died.

The NetWinder sold some units as a thin client and then died.

But Microsoft had eliminated the only serious rival desktop OS that existed and it got paid money to do so!

And all this did Corel little good, because Microsoft just switched out the look-and-feel in the next version of Office anyway. If you install all the versions next to each other, they all look different.

Office 4 for Windows 3 just looked like a native Windows 3 app.

Office 95 had custom skins and title bars and buttons, so it looked more like a Win95 app with weird title bars.

Office 97 dropped the fancy styled title bars but made buttons squarer and so on, brought in tooltips everywhere, and switched all the file formats so you had to upgrade.

Office 2000 brought in the horrible self-customising menus, the edges of toolbar buttons disappeared except when hovered over... And Corel didn't get it because the licensing was not forward-looking, it was for one version only.

Office XP had "intellisense" and an unhelpful Help box and wizards everywhere instead of dialog boxes.

Office 2003 had more of the same, horrible shaded gradients in the toolbars and menus.

Office 2007 ditched menus for ribbons and I stopped using it.


Corel LinuxOS was great, ahead of its time, but Microsoft killed it.

Fri, Jun. 8th, 2018, 12:31 pm
The decline and fall of Windows

Underneath, in a lot of ways, NT is a pretty decent OS. The problems are mostly due to the marketing dept.

If the NT team had been allowed to pursue their original goals undisturbed, it'd be a better OS. Marketing insisted:

  • It was possible to use it standalone with full local admin rights;

  • IE had to be integrated;

  • It had to run as many Win9x binaries as possible;

  • The GDI was moved into the kernel for performance.

Etc. etc.

NT the core OS had nothing to do with Windows. It's derived from OS/2 3, the original cross-platform CPU-independent non-x86 version. It originally targeted the Intel i860, the N-Ten. That is where the "NT" sobriquet comes from.

Part of the design spec for NT was that nothing talked directly to the native API. It exposed "personalities" to userspace. It shipped with 3 of them: OS/2, Win32 and POSIX. OS/2 was later removed, again mainly for marketing reasons. It never included Presentation Manager, so it could only run text-mode OS/2 apps, but NT 3.1 (& I think 3.5) included full HPFS support. NT 3.51 could use them but not create them. NT4 couldn't but you could use the driver from 3.51 if you copied it across and created some registry entries.

There's a lot of nostalgia for OS/2 out there, but I used it and it was pretty nasty, especially the 32-bit version. A massive, 1000+line CONFIG.SYS file, which had to be byte-perfect or it wouldn't boot. A weird mixture of 16-bit and 32-bit code, much like Win9x but, amazingly, not even as clearly separated as in Win9x. (Be afraid.) Inability to bootstrap itself from DOS or any other OS. Inability to boot directly from CD for a long time. A weird shell unlike anything else, with weird definition of mouse buttons. E.g. the tree view was separate from file management windows, and its native app model was a strange template-based thing like the Apple Lisa, unlike anything else I've seen.

NT 3 was OS/2 done right, I'm afraid. Simple quick Win3 UI. No text files; everything in a database. (Yes, that decision has come back to bite now, but at the time, it seemed right.) Supported lots of disk formats, lots of network protocols; nothing was more or less "native" than anything else. It was relatively simple, clean and fast. It didn't support much Win9x stuff but to hell with that toytown GameOS.

The shell could be replaced, although few ever made it out there. There was a NeXTstep port, never released, and a skin-deep FOSS clone thereof.

NT4 was when the rot set in. The GDI was moved into the kernel, so rogue graphics drivers could bring down your enterprise OS. Unfinished unstable APIs like DirectX and Direct3D were imported from the Win9x division, but it didn't do PnP or USB.

The new Cairo FS and UI were dumped, unfinished, and the Win9x shell bolted on top instead.

NT 5 ("Windows 2000") at least supported PnP, USB etc. which were nice. Crapware like "Windows Movie Maker", some IE-related bollocks, a half-assed "file and settings transfer wizard" thing were bolted on and couldn't be uninstalled. You couldn't uninstall and reconfigure the network stack or the crappy extras any more. It was still a half-decent OS but starting to bloat out and crumble.

Then XP completed the marketing-led transition to junkware. Ugly themes, more unremovable bloatware. The only good thing was much faster hibernate and wake.

That's when I ditched Windows and switched to Linux and OS X full-time.

But that's when hoi polloi jumped on board with they nasty little games and the malware authors followed them. XP brought NT to the mainstream and that spelled its doom as a credible OS. When the world heard about it, it was all over.

Some Mac owners bitch about how Apple removes "legacy" features too readily. OS X 10.5 couldn't run Classic MacOS apps. 10.6 didn't support PowerPC machines or AppleTalk file sharing, but it could run PowerPC OS X apps. 10.7 dropped PowerPC apps, leaving you with only crappy Ribbon-infested versions of MS Office, and couldn't even print to AppleTalk printers.

But taking a longer view, this is a good thing. It means OS X doesn't accrue so much legacy cruft.

64-bit Windows finally dropped 16-bit app support, but that is about all MS has removed except some ancient network protocols. If MS was serious about Windows, it would have at least the choice of an edition which dropped 32-bit apps too, dropped everything except IPv4, dropped directly-installable binaries, and if I could be bothered to give any more thought to this, I'm sure I could identify half a dozen other ancient bits of unnecessary junk they could remove. MBR disk support, perhaps.

But it isn't. Marketing still rules.

Wed, May. 23rd, 2018, 06:53 pm
Self-driving cars won't work. We'll buy them anyway.

I've just been reading some complaints about self-parking Nissan Qashqais. Apparently they can't safely park themselves in, for instance, an underground car park with concrete pillars in the way, and the drivers in question felt that this was unfair, unreasonable, and unexpected. Why can't the car defend itself from concrete? Doesn't it know that concrete is harder than it is and will damage it?

I responded thus...

You do realise that you've just identified the principle general problem set that has had all the planet's best minds in the AI field working as hard as they can for about 50 years now without any significant progress, right?

That since Asimov wrote "Robbie" in 1940 -- the first story in I, Robot -- he invalidated and obsoleted all previous robot fiction, stopped and redefined the field. His "3 Laws" ended the "killer robot" story and made them about what having robots would do to humanity.

Asimov, writing before digital electronic computers had been invented, assumed that the stuff about seeing, walking, listening and understanding and so on would be easy. After all, a 2YO human can do them, self-taught. A mouse, even a cockroach, can run around and avoid hazards.

Speech would be hard. Stuff like chess would be really hard.

He was, of course, totally wrong. Chess is almost trivial. Talking isn't particularly difficult. Crappy early-1980s 8-bit computers could do that.

Walking is difficult. Seeing and knowing what it's seeing is very difficult. Telling the difference between a bollard and a child is extremely hard, and as we all know, even the best and most complex software regularly fails and screws up.

We've solved speech recognition, badly, for some languages, in limited domains, by brute-forcing it, and it still doesn't work very well. It's getting there, though.

What you're asking is a general-purpose artificial intelligence, capable of sophisticated discrimination and value judgement, and that is the hardest thing there is. It's been a couple of decades away for longer than we've been putting things into space, and it still is.

So, no, self-driving cars can't do that. And they won't, not until some time after they're on the market, if then. And a *lot* of people and other animals on the roads will die before they do.

Like the credit card companies accept that their security is a bit shite and that necessarily they will lose tens of billions per year to fraud (US$20 Bn per annum!) but it's so profitable that they tolerate that as a cost of operating, motor cars are the most dangerous form of transport ever invented, but we tolerate it because it's so damned convenient.

It kills 3¼ thousand per day, 1.3 million per year.

That's good going for modern international war, but we ignore it. It's normal.

So, soon, very stupid robots will be killing thousands a day, but if it makes cars easier and more convenient, we'll put up with it, and pay good money for the privilege.

We should have wrapped Asimov in copper wire before we buried him. We'd be getting a few kiloWatts off the old sod by now.

Mon, May. 14th, 2018, 07:23 pm
On GNOME 3 and design simplicity

(Being a sort of coda to Why I don't use GNOME Shell.)

[EDIT: copy-pasta fixed. Sorry about that.]

Someone on the Ubuntu user list was saying that they gave up on Nautilus in GNOME 3 when the developers removed the split-pane feature.

That in itself wasn't a deal-breaker for me, but the removal of support for desktop icons more or less is. I also dislike the desktop layout. GNOME 3 fans tell me "it keeps out of my way" but that huge top panel, almost totally unused, is an egregious waste of space. Along with desktop icons, notification icons in the top panel are now deprecated. The username/network/volume/brightness controls are all merged into 1, for no good reason I can see.

At least Unity put the menus in there -- a good big target to hit:


This is the thing that irks me.

Many parts of older UIs, back in the 1980s when things were still developing, were designed one the basis of solid academic research. So, for example, Fitt's Law is behind the Mac's top menu bar.

Lots of people curse at it, but they don't realise there is science behind it.

Microsoft, constrained by avoiding a look-and-feel lawsuit, moved the menu bar from the top of the screen to in the window. It's a much harder target to hit, but it's different and that was the main thing.

(Acorn didn't have menu bars at all. Everything is context menus. They take no screen space at all, ideal for a desktop displaying on a CGA-res monitor (640*200 at first, or 640*350), and requiring no mouse movement at all -- but you have to know they're there and what to do to summon them.)

But once there was a difference, people started to form preferences, and holy wars raged over it.

Take Apple's single mouse button. There are studies, with solid numbers. It takes thought to pick what button to click. A lot for beginners, a fraction of a second for experts, but thought, every time. So Apple reduced it to one.

Microsoft, appealing to "power users", gave you 2. The original Unix machines, and Acorn, 3.

3 is more powerful, but it takes decision-making time.

That, and having to aim at in-window menu bars, has wasted millions, billions, of man-hours across the world over 3½ decades.

In System 7, Apple made the titles of aliases italic. You can't set filenames in italics, so if the filename was in italics, it wasn't you. It was the system telling you something -- that this wasn't the original file, it was a pointer to it.

In Win95, Microsoft couldn't do that, because look-and-feel lawsuits, so it put a little curvy arrow in the corner. Easier to miss, but perhaps more logical. Later, Apple copied that back again. (!)

Lawsuits and holy war. Powerful reasons, but bogus ones. Some people don't like Apple's choices, but Apple had reasons for making those choices.

Now, happily, that mouse-button/menu-bar stuff is moot, because of touchscreens.

But the GNOME devs, in the admirable pursuit of simplicity and a desktop that's as easy as a phone, are not doing the science. I suspect they don't even know the research existed. I'm damned sure they didn't study the research.

They're just identifying features they don't use, and removing them. No consultation, no research, just "we can get rid of that".

But it is virtually an axiom: you cannot get to a simple design by starting with a complicated design and removing bits.

Simplicity has to be the goal from the start.

You can't write a haiku by starting with a novel and removing words.

But that's what they are trying to do.

Tue, May. 8th, 2018, 02:54 pm
Updating DR-DOS 7 -- now with downloads!

While I was off work with a dislocated shoulder, I spent some time dabbling with DR-DOS. It's an OS I've long been fond of. What I was aiming to create were images that could make a bootable DR-DOS USB key and VM image.

The OS that made the PC great was MS-DOS, an adaptation of SCP QDOS, which broadly speaking was reverse-engineered from Digital Research's CP/M (itself now FOSS). Much later, DR responded with DR-DOS -- a cut-down version of Concurrent CP/M-86, without the multitasking but with near-perfect MS-DOS compatibility.

The first version was 3.41, basically a response to MS-DOS 3.3. DR-DOS added large disk support -- i.e. multiple FAT16 partitions of >32MB. MS-DOS 4 added little more except a graphical shell, DOSShell. DR-DOS 5 added support for mapping upper memory blocks and loading TSRs into them, and a graphical shell, ViewMax, a cut-down version of PC GEM. MS responded with much the same in MS-DOS 5. DR responded with DR-DOS 6, which bundled disk compression, and ViewMax 2. MS DOS 6 bundled disk compression too. Novell bought DR and responded with Novell DOS 7, which added peer-to-peer networking via Netware Lite -- but ViewMax 3 wasn't ready and was dropped. Most people were using Windows 3 on top of it by then anyway.

Microsoft's response was Windows for Workgroups, with peer-to-peer networking built into Windows, and then Windows 95, which built-in MS-DOS 7 too. And that was about it for DR-DOS. Novell spun its DOS and Linux division off as Caldera, which released DR-DOS 7.01 as open source. It then changed its mind and closed-sourced DR DOS 7.02 and the handful of later versions. The DOS business was spun off again as Lineo, which made subsequent releases, went broke and sold off DR-DOS again. It made it to DR DOS 8, but that was partly built from FreeDOS source code and was later withdrawn when this was demonstrated.

The history of DR-DOS after 7.02 is confused and confusing. Most of the Novell sources were lost, along with updates and fixes Novell made. Backups of some were later rediscovered  and the fixes incorporated, and it gained FAT32 and LBA support, but it's not freeware.

So DR-DOS 7.01 remained the latest free version. The OSS licence only covered the kernel and some core files. To build the FOSS version, you need the rest of Novell OpenDOS 7.

A heroic programmer called Udo Kuhnt picked up development of the FOSS DR-DOS 7.01 as the DR-DOS Enhancement Project. Its site is long gone now, although there are plenty of mentions of it. He released versions through to 7.01-08. Unfortunately, that is an incomplete work-in-progress version. But both it and the previous releases, which can be found for download in various places, don't work.

So I fixed it!

I started with the floppy disk image from ArchiveOS.org. First, it's the wrong size. VirtualBox can't mount it. VMware can.

I truncated it to exactly 2880 sectors using the advice from ``jleg094'' here. VBox mounts that. But it won't boot, nor in VMware -- it just displays 2 dots and freezes. Embarrassingly late in the troubleshooting process, I found why.

Foolishly, I didn't think to check what was on the image. I tried mounting it on a pre-booted VM and looked, and it's totally blank. There's nothing in the image at all.

So, I mounted the empty image file as a loop device under Linux, copied the boot files in there, followed by the rest of the files in the distro archive. Lo, it worked! It booted my VM just fine, and I had a DR DOS VM running 7.01-08. However, the older DR-DOS SYS command couldn't make a bootable hard disk from this. After further fiddling, I found how to fix that, too.

But I've decided for now to focus on the actual complete version 7.01-07.

I took the downloads for Enhanced DR-DOS 7.01-6 and 7.01-7, trimmed the boot disk image to work with Virtualbox, added the actual files to make the boot images bootable, and also added in the other updated commands -- SYS.COM, XCOPY, TASKMGR, SHARE, and their README files etc.

I have re-zipped them and put them on Dropbox.

Here are the links:
Please mirror these elsewhere.

To use them, the easiest way is to get a copy of DR-DOS 7.01, e.g. from BTTR Software or WinWorldPC. Install it in a VM. Reboot and check it all works.

Then, boot from one of my boot floppy images, SYS the hard disk, and copy the other files into C:\DOS or whatever you called the DOS directory.

Reboot and you should be in business.

To forestall some FAQs... A few people have asked me why I am bothering, since FreeDOS is out there and works fine. (I have contributed a few fixes to FreeDOS and my name was in the credits of at least one version that I have seen, which came as a surprise.) That's true and I do not mean to decry or lessen the work of the FreeDOS Project. However, for me, it's just a bit too different from old-style MS- or DR-DOS. Commands don't do what I expect, or the output is weirdly different. Config files are not named as they usually are. I'm told it's pretty compatible, all the same.

I just happen to prefer DR-DOS. Caldera is dead, Lineo is dead, and oddly, I now work for Novell. DeviceLogics owns the later versions of DR-DOS but it is no longer trading and as far as I know the project is no longer available for purchase -- although the rights to the entire line were up for sale.

Thus I am very much hoping not to be prosecuted for this. I have not added anything to the code, merely made the existing code usable.

My future plans include directly-downloadable VM and USB images. I have 7.01-07 working, complete with ViewMax 2, TaskManager multitasking in both text and GUI modes, mouse support, FAT32 and LBA support. I am hoping to add NTFS and USB support as well, if there seems to be any interest.

The reason I got interested in this was trying to get actual IBM PC DOS 7.1 working on my Thinkpad. This is not the same thing as the widely-available PC-DOS 7.01! IBM continued development of DOS after Microsoft lost interest. PC-DOS 7.01 included Y2K fixes. PC-DOS 7.1 also includes FAT32 and LBA support, many long-standing bugs in MS-DOS were fixed, and IBM offers it for free download as part of the Server Guide Scripting Toolkit. However, IBM does not permit re-distribution, and therefore I can't share the complete, fully-working version that I have built for my own use.

Mon, Apr. 30th, 2018, 04:39 pm
A quick re-assessment of Ubuntu GNOME now it's got its 2nd release

I've been playing a bit with the new LTS edition of Ubuntu in VMs. As of the last version, Ubuntu abandoned its homegrown Unity desktop -- a pragmatic business decision, but one that personally dismayed me as it was by far my favourite Linux desktop environment.

The last release of Ubuntu, 17.10, featured GNOME 3 as the default desktop, and I didn't like it at all. I even made it onto Hacker News!

But now, the rough edges have been smoothed off a little -- as they should, as this is a long-term support release and will be the current Ubuntu for 2 years for many people.

It's improved. I don't like it, but it's better. OMGUbuntu has done its usual things to do after you install piece and makes some good points. The only thing I'd question is the themes one -- all right, and maybe the need for Snap/Flatpak, but fair enough.

But here are my suggestions for a few tweaks that I find really useful, though...

"Extend Panel Menu" -- https://extensions.gnome.org/extension/1201/extend-panel-menu/

Splits the combined system menu back into separate options, and moves the clock over to the right where it belongs.

"Pixel Saver" -- https://extensions.gnome.org/extension/723/pixel-saver/

Merges the title bar of maximised windows with the top panel. Not as elegant as the Unity way (there's no menu so the panel remains mostly wasted space; the window controls get mixed in with your status indicators) but it works.

"Dash to Dock" -- https://extensions.gnome.org/extension/307/dash-to-dock/

The full version of the tool Ubuntu uses to make the "launcher" into a dock.

"Topicons Plus" -- https://extensions.gnome.org/extension/1031/topicons/

This puts app indicators in the panel where they belong.

I personally also add "Hide activities button" and "no topleft hot corner" but they might be more controversial. :-)

I also install the un-castrated Cinnamon file manager, Nemo, and make it manage the desktop: https://askubuntu.com/questions/294421/how-do-i-install-nemo-file-manager

Saying all that, I still don't like GNOME 3 much. I am currently pondering upgrading my personal travel laptop to the new edition, or waiting for a while and reinstalling with a Unity remix.

Mon, Apr. 16th, 2018, 11:04 pm
Resurrecting the best Windows screensaver ever

From a G+ thread that just won't die.

A British digital artist called William Latham -- he has a site, but it won't load for me -- once co-developed a wonderful screensaver for early 32-bit Windows, called Organic Art.

There was even an MS-sponsored free demo version.

Sadly this won't install on 64-bit Windows, as the installer has 16-bit components. However, you can get it working. I did it, after a bit of fiddling, on Windows 7.
Here's how, in brief:
* Install XP Mode
* Boot it, let it update etc.
* In Win7, meanwhile, download the demo from Nemeton
* Once XP Mode is all updated, install the OA MS edition demo from the host drive
* Check it works
* I copied the whole Program Files/Computer Artworks tree into my W7 Downloads folder
* I also retrieved the screensaver (.SCR) file from C:\WINDOWS\SYSTEM32 -- and as mentioned above, D3DRM.DLL
In W7, I copied this into the same locations on my Win7/64 system.
I used the documented hack to re-enable screensavers (JFGI).
It now ran but couldn't find any profiles.
* In XP Mode, I exported the entire Computer Artworks hive from the Registry to a file in my W7 Downloads folder.
In W7 I imported this file.
Now the 'saver runs. It's worth disabling mode switching and forcing it to use Hardware Acceleration. Not all of the saver modules work but most do -- and very quickly and smoothly, too.

This won't work as-is on Windows 8 or newer. There are hacks but I only got the VirtualPC component of XP Mode running on Win8. Nothing newer worked.

But you can run XP Mode in VirtualBox, and I've published an article on how to do that. The other steps are much the same.

Try it. It's really quite beautiful.

10 most recent