The Best Part of Low End

As I get closer and closer to the cranky old man stage of life I get pickier and picker about my monitors and office lighting. I also find supposed high end products intolerable.

Anyone who reads this blog knows I write a lot of books. “The Minimum You Need to Know About the Phallus of AGILE” is off for final editing. I have two more books that are somewhere between 2/3 and 3/4 of the way completed. Those who visit the Interesting Authors blog were exposed to early (and ugly) drafts of their early chapters.

Over the course of the past few weeks I’ve been waxing nostalgic for my days of COBOL. This has lead me to experiment with GnuCOBOL under KDE Neon 64-bit. This is Yet Another uBUntu (YABU) Linux distro. I’ve also been kicking around various editors and IDEs, even giving UltraEdit another try. Just haven’t had the time to see if they actually fixed the C/C++ standard formatting. What is with editors like Atom, Sublime Text 3, and UltraEdit wanting you to hack default configuration files instead of providing options in menus? This is not a good trend though many seem to be following it. A previous post about Sublime Text 3 and COBOL may have given you some idea of what I was doing now.

Why so many things? There is no IDE for GnuCOBOL. Yes, during my days on OpenVMS I gladly used EDT or LSE, then ran a stand alone debugger. I would still do it today if the billing rates weren’t all illegal alien wages. The one thing that made it great, besides OpenVMS, was the debugger. It was screen oriented and worked with any language back when PC’s were selling retail with only two floppy disks installed.

The massively overweight Eclipse was my first knee-jerk impression. Let me save you some time. The COBOL plugin is horribly broken. By that I mean it will not install from the marketplace. Fine! I did some digging and found out where it lives. I followed the manual install instructions. Managed to install, but it crashes and burns when you try to start a COBOL project. Despite my not favorable impression of Eclipse, this could have justified its existence.

Someone pointed me to the OpenSource version of Visual Studio Code, VSCodium. The one without evil empire tracking information built into it. I installed it and the COBOL plugin for it. I also installed the OpenVMS IDE plugin. Don’t install both of these together. I no longer have my DS-10 Alpha (and don’t want another) but I did want to kick the tires on that plugin at some point. If you install both the COBOL plugin jumps off a cliff. Uninstalling the VMS IDE plugin made the COBOL plugin “work”. It can’t really “work” until version 3.1 or greater of GnuCOBOL is released. A compilation switch has been added to make things nicer. You can read a bit about it in this message thread.

One thing is for certain, the $299 SlickEdit Pro didn’t handle GnuCOBOL like an IDE. I uninstalled that trial within half an hour of getting the trial license key. The makers of SlickEdit need a 5 active install, $99/year license like UltraEdit if they want to be taken seriously. UEStudio would have been worth looking at, but it doesn’t run on a real operating system so why bother?

I honestly hoped KDevelop had a COBOL plugin. A quick search of the user forum shows quite a few people interested in COBOL, but so far nobody interested in developing the plugin others are waiting for. I like KDevelop because it is built around/using KATE. One of the reasons I was paying $99/year for UltraEdit was clients kept forcing me to use default Ubuntu desktop for development. Yes, QtCreator is great for Qt development, but you need another really good editor for all of your cutting and pasting and note taking. That’s what I used to use KATE for.

UltraEdit has always had a “feature” (inexcusable bug) that has pissed me off to no end over the years. It’s a burr under the saddle that just rubs both horse and rider raw. It happens when you have told UE to use spaces instead of tabs. The tab size value isn’t correct.

empty file with cursor in first position image
empty file with cursor in first position

With tab size set to 4 an IT oriented user would expect the first “tab stop” to be at 4, then multiples of 4 across the page.

after first tab key image
after first tab key

 

after second tab stop image
after second tab stop

Like I said, the cranky old man stage of life waits for all of us if we live long enough no matter what gender we are born as. For as long as I can remember this bug has existed in UltraEdit when using spaces and it is just ()&*)(*&ing annoying! In the new new new new world of COBOL it is a catastrophe. Why?

cobol fixed format sample image
cobol fixed format sample

In fixed format COBOL, Area-A starts in column 8, Area-B starts in column 12, columns 1-6 are for line numbers, column 7 is the comment/continuation, and column 72 is quite literally the end of the line. In “modern” fixed format COBOL, they tend to skip the line numbers.

modern fixed format cobol image
modern fixed format COBOL

In short, you need a tab size of 4 to actually be 4 when inserting spaces instead of tabs. This means if the cursor is sitting in column 1, you only insert 3. In fact, at all times you take the current cursor position, subtract it from the next highest multiple of 4, and insert exactly that many spaces so the cursor lands in said multiple of 4.

Now that I’ve issued this severe beating, it should be noted that UE does handle syntax highlighting correctly in both fixed and free format COBOL.

COBOL free format UE image
COBOL free format UE

That is something notepadqq doesn’t do or at least doesn’t do in an obvious manner.

notepadqq COBOL image
notepadqq COBOL

Notice how the first 6 characters are blue? That’s because it is hard coded for fixed format (or at least not an obvious way to enable free format.)

notepadqq COBOL fixed format image
notepadqq COBOL fixed format

There is supposedly some hack I can write to make UE auto-generate zero filled line numbers spacing them by 10. I just haven’t had time to try. I’m not certain I want to pay that kind of money _and_ have to fix that myself, especially since it sounds like I’m going to have to hack the default C++ template so it doesn’t force K&R on me. No, I don’t care what your argument is. If your C/C++ coding style involves this:

if (fred) {
    /* do someting */
} else {
    /* do something else */
}

Where they “{” is on the same line as the if and the “}” is on the same line as the else you are using the archaic K&R style. Java also uses this style and it hasn’t been a valid coding style since about 1985, neither is any style based on it.

In it’s defense, I really like the color schema notepadqq uses for COBOL. I “think” one should be able to hack the existing cobol.js file to make it fixed/free sensitive.

Sublime Text doesn’t do a bad job. Unlike UltraEdit, I can click the line numbers in the output window for errors and be taken to them. You just can’t debug even with the GDB debug plugin.

line numbers compiled with -free
compiled with -free

There might be yet another hack I can do to UE to make that work but I think you are starting to see the lack of appeal when it comes to paying an annual fee for something that I not only have to hack, but have to keep those hacks on-line so I have them when I travel to a client site and have to use one of their development machines for 6-12+ months. Sublime Text 3 was something like $25 back when I bought it and good forever. (I do think it is around $80 now.) If they come out with the same one time fee no matter how many times you install deal for Sublime Text 4 in a few years, yeah, I’ll do that. So far I haven’t actually had to hack hidden files. I’ve installed a few plugins and tweaked a couple of user/configuration settings using menu options. I didn’t have to find the super secret directory where they hid the file on this platform.

Why then, the title of this blog post?

Ah grasshopper. You’ve been reading my books and my blogs for years (or you should have been!) The journey is more important than the destination. I don’t write for the Twitter generation, I write for people who can think for more than 140 characters.

My waxing nostalgic for COBOL (and an academic on-line who knows less than nothing talking out his ass) got me to do some COBOL programming and COBOL research again. I’ve once again been spending an ocean of time in text editors and LibreOffice. My eyes have become more sensitive as I age and I’ve become pissed off at all of the “dots” I see making up text on my screens.

Yes, that Zotac branded NVIDIA card with 384 CUDA core would make BOINC crunch like the dickens and complex images would appear quite clear, but plain old text looks more and more like it was printed on the screen by an 8-pin dot matrix than some high end combination of graphics card and monitor. I have to get a long way from the monitor before that collection of dots looks like a “solid” character. In truth, with or without my glasses, the monitor has to be a good twelve inches past the end of the fingers on my outstretched arm before enough of a blur effect happens to push the dots together.

Believe it or not, the ViewSonic Super CLEAR IPS monitor I’m using right now looks even worse than the VG2732m-LED monitor sitting beside it connected to the same video card on the same computer.

For the past few days I’ve been hacking this 7th-gen i7 HP EliteDesk. I suspected the NVIDIA based card just kind of sucked at text. The machine has a built in Intel HD card, so why not use it?

intel built in graphics image
Intel built in graphics

Intel HD Graphics cards, Skylake in particular, have a lot of issues under Linux. There is a continually recurring bug where two monitors are found, but only one displays anything. Yesterday I didn’t really have time to fight with it so I snagged an old MSI (Radeon based) video card out of my spare parts drawer and stuck it in. I wish my attempts at taking a picture yielded something I could be certain would show up on a Web page. Most of the dots were gone?

Why was that video card one of half a dozen “spare” cards in that massive drawer? AMD ceased supporting it with the stuff that became part of Ubuntu 18.04. The “free” driver doesn’t make the GPU available to BOINC so I had to obtain another of those NVIDIA based Zotac cards. (I can usually find them for $50 or less, probably also one of the reasons I see dots.) They certainly make BOINC crunch numbers when I’m not at the keyboard!

Today I was miffed. I really wanted to solve my built-in Intel video problem. When I got to the office after running errands I re-read _all_ of the posts in that bug link. Please allow me to tell you how to solve your problem of second monitor displaying either nothing or horrible looking stuff when Intel HD graphics are involved. Oh, laptop users, you are screwed.

  1. Power down.
  2. Open your case.
  3. Install any non-Intel video card you have available which will fit an existing slot and connect monitor(s).
  4. Close case.
  5. Boot Linux.
  6. Open a terminal.
  7. sudo apt purge xserver-xorg-video-intel
  8. Power down.
  9. Open your case, remove installed video card, connect monitors to ports of your built-in video card, close case.
  10. Boot Linux.

This fixes the problem. My text is about as grainy as it was with the higher end NVIDIA based card. At some point tomorrow I may be forced to install the really old MSI card because text looked a lot cleaner.

Companies writing drivers for Windows do, and Windows itself does a lot of cheating when it comes to making text look solid. On the Linux platform few developers take the time to make text look as solid as a green phosphor letter.

You’ve probably guessed one of the books I just started writing; “The Minimum You Need to Know About GnuCOBOL.” What you probably haven’t guessed is where I landed for a COBOL “IDE”

Emacs

Yeah, I didn’t think I would ever install something that heavy again. Well, that heavy excluding the total tonnage of Eclipse.

I’m not certain but Emacs just might be the last place Lisp still exists. I vaguely remember having to write portions of an Algol then a Lisp compiler back when I was working on a masters degree.

I really did try a lot. If I was willing to push a bolder up hill with my nose, I probably could have dug into Anjuta and got it working with the compiler and debugger.

Anjuta old fixed format image
Anjuta old COBOL fixed format

 

Anjuta COBOL new fixed format image
Anjuta COBOL new fixed format

 

Anjuta COBOL free format image
Anjuta COBOL free format

I suspect the reason the 2 lines are in RED is this free format isn’t quite as “free” as others. It most likely wants SELECT and a few other things to start where Area-B would have them when using fixed format.

Summary

While waiting for my next contract to come along I am now writing four different books.

  1. “Dream Recorder”
  2. “Twenty of Two – The Infamous They”
  3. “The Minimum You Need to Know About GnuCOBOL”
  4. “The Minimum You Need to Know About GUI Emacs”

Too many Emacs books focus on just the terminal. Yes, there are hundreds of “free” sites listing 20-30 commands, just enough to really get into trouble. Yes, there are probably a hundred or more Emacs books out there right now. Most focus on Emacs in a terminal or simply add credence to the old mantra

If Emacs had an editor it would be one Hell of an operating system!

Yeah, I’ve heard it, I’ve said it, and I’m living it again.

To those who say “How can you keep all of those books straight?” that’s easy. Work on one until you get tired or lose the spark, then work on another. I’ve done the one-book-for-an-entire-year thing. That was “The Minimum You Need to Know to Be an OpenVMS Application Developer.” It’s really hard to maintain a spark for that long. Taking a few weeks or months off to write about something else that interests you then coming back to an older piece is rejuvenating, or at least it is for me.

Thank You For Your Future Abandonware

Few things honk me off quite as much as abandonware, especially when something good is abandoned. Microsoft could abandon everything they make and I would not care, none of it is a quality product. Other things really hurt.

You are reading this because there was yet another Qt question on the Qt mailing list from yet another person creating yet another glorified text editor/crippled word processor. I think this one was supposed to support markup language. I cautioned them against creating future abandonware and pointed them to existing Qt based word processors some of which had already been abandoned and had most of the features they wanted. After building it all they would have needed to do was add support for their special syntax.

Given the fact they were working in C++ and Qt I first pointed them to KATE. This editor has been around a long time and recently made the hop from Linux to Windows. Most importantly, if you scroll just shy of halfway down that page it tells you how to build just KTextEditor, the editor component used by KWrite and KDevelop. It’s probably also used on a hundred other lesser known or private projects. Why re-invent the wheel if all you need is a couple of tweaks to the KTextEditor?

Nah, they didn’t go for that. NIH (Not Invented Here) syndrome in full bloom.

This got me thinking about all of the other text editor and word processor abandonware I’ve encountered over the years. KWord was a serviceable word processor. It was abandoned for the ghastly Calligra Words project. All mention of KWord is slowly being purged from the Internet. You can still find a snapshot of the KOffice source code here which includes KWords.

Adding insult to injury, Oasis was a Qt based word processor which began as a Qt example program. Basically, Oasis was about 2-4 years ahead of where the poster’s editor currently was. There are literally thousands of these things out there.

That brings us to one of the most painful abandonware cases ever.

It’s amazing IBM can make money given how clueless management is

I will skip over the massive OS/2 abandonware issue, well, at least most of it. Lotus SmartSuite was and still is a particularly painful part of the abandonment. Some of these pictures are going to seem really grainy. When you install Lotus SmartSuite on Windows 10 or really any Windows after 98, the fonts it installs are old. They are from a time when SVGA was the bleeding edge of screen resolution and the bulk of the world simply ran VGA. I didn’t feel like lowering the video capabilities of the VM. One adorable quirk the product had was the “floating file cabinet.” A thin little bar you could move around on the screen. Each of those brown wood grained buttons is a “drawer” where things are filed.

SmartSuite File Cabinet
SmartSuite File Cabinet

Lotus 123 ruled the spreadsheet universe. Honestly, the last version of 123 ever released is still ahead of Microsoft Excel.

Lotus Approach was a victim of zero marketing. I’m not saying it was a fantastic database, it was a fantastic report creation system driven by a database. For years I had my expense tracker system in Lotus Approach. Why? The data entry screen took about ten minutes to set up. The actual expense report with beautiful fonts, perfectly aligned columns, group totals and grand totals took about thirty minutes or so to create. It really looked professional too. Microsoft Access is still trying to get where Lotus Approach was when it was abandoned.

calendarThe calendar and address book portions were kind of cool. With hundreds or thousands of such things around today most of you don’t realize just how ground breaking it was to have such things all integrated. This was back when we were still shipping software on floppies remember. You could double click a spot there to create a new appointment for today or you could open up the calendar application and be greeted by a full software version of a Daytimer planner.

lotus organizer

Yes, you could change the view to be a week, month, whatever. I used the Lotus Organizer a lot. Those little Daytimer planners were getting to be hundreds of dollars when I stopped using them.

Address book
Address list

Everything was integrated for the very first time. You don’t think much about that now if your company has a pricey, unstable Exchange server, but this was a major feat. You really needed to have Team Center email at your company to get full use out of the email integration part. As I remember it didn’t work well with the Internet email of the day. Having said that, we didn’t have email standards yet. A regular person couldn’t send email from Compuserve to an AOL user. Every ISP wanted to own the Internet and all its content. The best way to do that was have a proprietary email system. Big Government had to step in and thump that. Today you don’t even think about the @someUrl.Blah portion of an email address when you send an email, but there was a long, dark period when you couldn’t “just do it.”

Don’t dis the layout of the address drawer too hard. It matched what the executive secretary had on their desk. A low level clerical person like a receptionist had a great big Rolodex of cards. The higher you went in a company the smaller and more stylish your list and address tracker became. You had people to do things for you. Those people had the great big Rolodex. You only had to keep track of the executives in Mahogany Row and a few special friends outside of the company. I seem to remember mine having the slider on the left. Honestly, I just threw it out when I changed desks this past fall.

Bates Listfinder image
Bates Listfinder

The slider worked because the cards inside had cut edges. The slider hung well down below the card edges. You slid the slider down to say, K, and then clicked the open button. All of the cards before K were missing the indexer edge.

Bates List Finder opened image
Bates List Finder opened

 

Lotus WordPro was and still is the best word processor for a writer ever created. It has features that were and still are earth shattering. In particular Sections and Divisions are something nobody else has really duplicated. There is a claim Scrivener has something similar, but I haven’t played with Scrivener yet. Installed Scrivener in a VM and basically forgot about it. Had it not been free to try I probably wouldn’t have even done that.

application drawer image

supported file formats image
Supported file formats

As you can tell by the list of supported file formats, WordPro has not been updated in a long time. We really need a Change.org campaign to get the federal government to pass a law requiring vendors to Open Source anything they abandoned posting a fully tested build script with all source on both GitHub and Sourceforge. We have simply lost too much. IBM didn’t kill this off because they launched a competing product. They killed it off because they got out of the PC software business not long after the death of OS/2. At least that was the story, but Lotus Notes is still around.

WordPro document image

Don’t confuse these tabs with tabs for different documents that lesser word processors use today. These are Divisions. You can even change the color of the Division tab along with its name so Research can be one color, To-Do list another, etc.

WordPro print dialog
WordPro print dialog

Notice in the bottom box of the print dialog that you can choose to print only the current division. I should point out that when you drag divisions to different locations you actually change their position within the file hierarchy. The next part should really blow your mind.

creating section image
creating a new section
document with new section image
document with new section

Take a good look. Notice the green “My New Section” tab is within the “Body” division. Every Division can have however many Sections within it. I don’t know if there is a physical number hard coded into the design or the only limit is the combination of physical memory and disk storage. Sections are amazing!

section image 1
Sections for Chapters 2 and 3

Notice that I created Sections for Chapter 2 and Chapter 3. To make them stand out I gave each tab color.

section image 2
re-arrange sections

Notice that you can just drag and drop a section to a new location. When writing a book it is often the case we have to re-arrange chapters. No matter what widely known word processor you are using now you are either selecting huge chunks of text to delete then paste in a new location, or you are simply deleting the stuff and retyping from either a print out or pdf. When an editor tells a WordPro user to make the third chapter the first chapter, it’s no big thing, drag and drop. Oh! You may have to fix some stuff in the text itself due to story line, etc., but the mechanics are no longer a horrible error prone thing.

Section drop down menu image
Section drop down menu

I imagine the cut and copy items are grayed out because Windows 10 has a different paste buffer API than Windows 3.1. Just a guess though. I just wanted to show you the right click section drop-down menu. It lets you do quite a few things. I just don’t feel like going through section mark and combine right now.

section moved to new division image
section moved to new division

The last thing I wanted to show you is dragging a Section from one Division and dropping it in another. People who don’t write for a living or to just be an author probably don’t understand just how indispensable this ability is. A professional writer or someone who hopes to one day be a professional writer must always have an open scraps Division. Never just nuke a chapter, scene, whatever, put it in a scraps Division. This advice is especially true during early external editing phases and “I got lost in the middle of the story” rewrites. That problem spot may get fixed and re-added. You may learn (because your editor informs you) the reason that problem spot was a problem is because you screwed something else up way early in the work.

It happens man. Adding insult to injury, it will be something you dropped in, not even caring about it. You gave some character a disability or background trait that sounded so good for five to seven sentences, then it never came up again in the book. Well, not until you got to the end of the book and now you need that not to exist only you are so far past it you don’t remember why or if it was a really important thing when you added it. Yeah, you aren’t finding that mistake on your own, you need an outside reader.

What happens if you are using Microsoft Word? Well, you select a bunch of text, copy, cut, then open a new scraps document file and paste it in praying you don’t lose it along the way. Oh, but you most likely lost the page styles including their sizes. Probably lost other stuff too.

It was a really sad day when IBM sunset Lotus SmartSuite. Sadder still that our Federal government didn’t force them to Open Source the code so someone could maintain it. We really need the Federal government to force IBM to release the source code, build configuration, and all development documentation. This is some abandonware we should never have lost. We could probably get it ported to Linux without a huge effort, especially if it was cleaned up to be Wine compatible.