Warning: Constant ABSPATH already defined in /home/public/wp-config.php on line 27
Some Progress — Why Now?
On-line Opinion Magazine…OK, it's a blog
Random header image... Refresh for more!

Some Progress

I finally have an ancient piece of software up and running on the laptop, which is very good news. My second machine is still infested with a rootkit worm, and that will be the next step.

This program started as a mailing list on a Kaypro CP/M at the dawn of microcomputers, running on one of the first popular wordprocessing programs, WordStar. It them progressed through dBASE II, dBASE III, dBASE III+, and finally its current compiled version with Clipper.

Most of the program was last changed in 1998 in anticipation of Y2K, but there are annual updates to certain of the printing modules. It is a custom accounting system for a very niche market, and produces output to run on several specialized devices.

For years I have been looking for ways of converting it to the Windows platform, but there is no current program that will enable a programmer to re-create all of the features. It is very frustrating because accounting was once the raison d’être for computers, and now it is relegated to a miniscule segment in the microcomputer world. People adapt their business to a couple of popular programs, rather than creating something that works the way they do.

C’est la vie …

Update: I forget to mention the minor hurdle imposed by the power company. They made a ‘courtesy call’ [a robocall by any other name is just as annoying] informing me that at an unspecified time probably in the next 7 days they would be swapping electric meters in the area, which means if I have to leave for a few minutes, I have to shut everything down.

They are installing ‘new, more efficient meters’, which translates as the auto-reporting type that will allow them to fire even more people and reduce their ‘costs’, but have no effect on mine, as the savings will go to higher profits, not lower bills.

6 comments

1 Badtux { 01.13.12 at 1:12 pm }

Ah, Clipper…

I think you’re supposed to convert it to Visual BASIC with Microsoft Embedded SQL, according to Microsoft. Erm, yeah, right :).

Lately I’ve been doing way too much Java, which is the COBOL of modern software development — it’s annoying but standard across multiple platforms and as long as you don’t need to do anything terribly low-level like, say, access Windows DCOM objects :twisted:, it’ll do pretty much anything you want from a business applications point of view. I’ve been using PostGres as the database, tho that’s hidden behind a couple of database classes. But I can’t think how I would take a Clipper program and convert it to Java. It’d be a total re-write.

2 Bryan { 01.13.12 at 10:12 pm }

A re-write is all you can do, although Clipper and Java have C characteristics. Essentially Clipper took the dBASE code and translated it to C code, and then compiled the C code.

The real problem is the custom PostScript code and HPGL code. Windows doesn’t like that sort of direct connection to the printer, and those are the commands used by the special equipment. The manufacturers have no intention of creating Windows device drivers for them. This stuff is normally driven by ‘big iron’, not micros.

For years the annual data download was delivered on 9-track tape in EBCDIC that had to be converted to ASCII files before it could be used.

This is a family business that has been profitable for decades, so they don’t have any interest in changing the way they do things.

3 Badtux { 01.14.12 at 12:26 pm }

Java’s “C characteristics” stop at the curly braces. Under the covers, Java is pretty much a different beast altogether, sort of like Lisp in the way its underlying runtime works (basically passing everything around as pointers to objects on the garbage-collected heap), as you’d sort of expect given who designed it and what he was famous for before designing Java. (James Gosling, Gosling Emacs with Gosling Mock-Lisp). That said, having the familiar curly braces and semicolons around makes it mildly less annoying than languages such as Python which dispense with them in favor of some other way of denoting language blocks… or, heavens forbid, Lisp itself, like this line from a file loaded by my .emacs…

(put ‘byte-compile-warnings ‘safe-local-variable (lambda (v) (or (symbolp v) (null (delq nil (mapcar (lambda (x) (not (symbolp x))) v))))))

Uhm, yeah.

So anyhow, if you’re having to deal with writing straight to device ports, that’s the sort of thing Linux was written for. That’s why every embedded device I’ve worked on for the past 15 years has been done with Linux. Just turn off CUPS or tell it not to look at a port and voila, there ya go. Between that and running Internet servers, Linux has plenty of reason for being. For that matter, Gnome 3 compares well to Mac OS Lion on the desktop, which explains why Linux has never gotten any traction on the desktop — the old-school Linux guys, all the way up to Linus himself, hate, hate hates them some Gnome 3, they don’t know desktop, they don’t like desktop, desktop annoys them, and Gnome 3 annoys them. I remember fussing at Linus back in 1995 for some design decisions he was making that were perfectly fine for servers and embedded devices but poison for desktops and he blew me off with “oh, that’s not a problem, they’ll just patch and re-compile the kernel if they need that functionality.” Err, yeah. I can just see my mother patching and re-compiling a Linux kernel :). That mentality hasn’t gone away…

4 Bryan { 01.14.12 at 1:14 pm }

There is software for Linux that will use the Clipper programs directly, i.e. just recompile to run on Linux, but the customer wants Windows, and the customer is always right. If I could convince customers to run Linux most of my problems would be over, as far as my software is concerned. If they would all go to Ubuntu I wouldn’t have to worry about the system software either, as that would be someone else’s problem.

‘If wishes were horses …

I have a personal connection to the early development of Java through someone who was at Sun at the time, and the original concept was a better and more secure C, but then it took on a life of its own and became what it is today. It started out much closer to C than it ended up. The early, pre-release manuals made that relationship obvious. It drifted away as it became a real product.

Geeks will be geeks, and the systems guys have never understood the need to consider end users, because they don’t have to deal with them. This is why a lot of great stuff never makes it to market, the guys who created it don’t know how to make the last step. The ‘last step’ was Jobs specialty, which is why he made big bucks while better concepts and products died.

5 Badtux { 01.15.12 at 12:05 pm }

One of the nice thing about virtual machine emulators is that they’re getting to the point that they’re almost transparent. Our customers think they’re getting specialized Windows servers to run their camera software on (pretty much all camera software to do face recognition, databaseing, etc., is Windows-only) when they’re actually getting a Linux storage system running a Windows virtual machine on top of Linux via VMware Player (reason for that is so we can cluster the Linux storage systems for the larger installations plus have a more robust RAID system than Microsoft’s, Microsoft doesn’t have a clusterable storage system and their software RAID sucks). It’s also possible to do it the other way around, i.e., provide a Linux window on a Windows system. On my Core I7 950 on my desktop and my i7-2760QM in my Macbook you can’t really tell it’s running under emulation unless you try to do a lot of fast 3D GUI stuff.

Of course, that only works if you’re providing a whole solution, which we are. If you’re selling shrink wrap software to run on other folk’s Windows system, that’s a bit of a different situation, alas… at least, until virtualization ships with Windows as a service in much the same way that it’s now shipping with Red Hat Enterprise Linux as a service. Hrm…

6 Bryan { 01.15.12 at 9:58 pm }

M$ has never created anything that scales worth a damn. Working on M$ networks gets very stressful when you start adding significant numbers of anything – you know you are going to hit a brick wall at some point, and there is nothing to warn you what it will be, because they don’t test its limits.

VM is certainly easier than re-booting, and so far I’ve had no problems with module, after I figured out that I had to install the printer separately in the XP mode to make it accessible.