Monday, August 22, 2022

The Endless Treadmill of Java

 I have programs from 15 years ago that still run just fine on my Mac, and never needed any attention.

Meanwhile, keeping any or all of my Java based applications working is an endless treadmill taking hours of work every year, and every time I've always wondered if I was going to be successful at all.

Java itself needs endless Security Updates.  Every time there is a security update, Mac OS decides whether or not to allow Java based applications all over again, and you have to figure out how the latest incarnation of Mac OS does this.

Then the applications which run using Java may themselves need to be updated.  If you update those applications too early, before you have gotten around to updating Java itself, you may have a dead application no longer able to run or revert to previous version.  OTOH, you may also have a dead application if you update the Java and then have not yet updated the application.  You may have to uninstall and re-install the application all over again.  And then you may have to figure out where to download the application all over again, and possibly what credentials are needed to do that, if it's even possible anymore.

The root of all this evil is that Java is supposed to be a magic internet-enabling platform.  It can be used on the server side, the user side, either as internet-connected or not.  This means it has to be able to secure Everything, not just one port or a long established protocol.

It bothers me that Steve Keen's Minsky program has now migrated from Tcl/Tk to Java, a step from solid ground into the abyss IMO.

Tcl/Tk is included in MacOS and it is updated automatically.  Tcl programs are text and you can read exactly what they do.  The programs themselves almost never need to be updated if you do not need newly minted features.  And this is enabled by the very open license BSD-style license Tcl/Tk has, you can do anything with it.  But it is also true for Bash and many related programs as well, though they have the Gnu license, which requires source sharing.  Meanwhile an encyclopedia would have to be written to encompass all the changes and complexities of Java licensing over time, and programs are usually an opaque binary form by design--all written to meet the needs of commerce rather than open computing.

I don't get around to making changes in my home control system often, but when I do I often find myself, as I do right now, in the classic Java quagmire.  This time it appears to have happened by an automatic update, or perhaps one that occurred automatically in installing some other program.  Now I can't access the home control program, though the message suggests it's because Java itself won't run.

How long will it take me to figure out how to access my home control system from my mac so I can change a few things in it?


Monday, July 18, 2022

The ultimate in counter-intuitiveness

Eons ago, some time after I joined a division consisting of about 300 computer programmers, I became aware of the polarization between those programmers who used the native text editor (on Dec Vax or Apollo computers) or emacs or vi.  Later, in the laboratory where I worked for 23 years, the vi people had by far the upper hand, and I was the sole emacs outlier.  There was no hope of ever convincing these people that vi was the very epitome of a counterintuitive program, also one somewhat limited compared with Gnu Emacs anyway.

The intuitive view of a text editor is something like this:

1.  Type lots of text

2.  Save to file and close

So, when you open the text editor, you expect to just start typing.

But no, not with vi anyway.  When you start the text editor you are in "command mode."  To actually start typing, you need to type "A" or "I" to enter append or insert modes.  Then, when you later exit from insert or append modes with Escape, the cursor moves back one, so if you intend to continue typing to the same stream you must remember to use the A option.

With emacs, more intuitively, you type right away, but causing special functions whenever needed with Command and Meta keys, or named operations.  Exit and save?  Control-X Control-C, then you have an option to save.  That's all you need to know to use the program most basically.  With other programs, you have to warp your mind with many new concepts just to do anything.

I could never understand why anyone would think vi to be superior.  I long felt it was a sort of political thing.   I think sort of that is why vi was even developed, by the BSD team, so they had an editor free of the Gnu copyleft, so they could use the more corporate friendly BSD license.

But I think really it's what people were raised with.  If you happened to have been raised on vi, you would take it as your life's personal mission to raise your colleagues and successors with vi to be similarly hobbled.

I am thinking there are similar anti-intuitivities in Gimp, the now nearly standard image processing program (because it's free, of course).  Last night I struggled to create a page with text located in the right place.  If I didn't get it in the right place to begin with (which of course I never do) I could absolutely not move it.  I could try to "select" the text all over again, but then instead of moving the text the mouse moved the entire page underneath, a function whose value I still haven't figured out.  Sometimes when I tried to save the image with text in it, I got a box around the text which I had not been intended (I never stroked any such box, I've been finding that function impossible to use also).

Now I discover that part of the magic (but rarely mentioned until after you listen to an hour of complicated re-setup designs on tutorials) is that you must de-select everything after creation, to "release" it down upon the current layer.  Only then does the select box go away.  In every other program I've encountered, de-selection is axiomatic upon clicking anywhere else or doing anything else.  But not in Gimp.  There's a control character for de-select, or you can choose de-select from the Selection menu.

So I've finally worked out that problem after hours of frustration.  How much longer to the creation of a simple page with text blocks and colored circles?

I had these dreams I would use the bucket to fill the entire background with some non-white color.  First of all (using the 2016 version) I couldn't figure out how to select any color at all, I had to bring up another page with a picture and use the color chooser on that.  So finally I've picked up the color I want as the "foreground" color, and I try to paint the background with it.

Nope, without any explanation the bucket refuses to dump any paint color into a background region.  You can tell it's not going to because it has a NO sign on the mouse "pointer" (which is a combination of nearly impossible to interpret symbols regarding which it's not obvious which is the actual "point" that's being pointed to).  But why, and how are you supposed to color the background?

Well now it appears in the complicated dialog in which you create a new image there's also a box for the background color.  So you really need to do that, I guess (or maybe in the above case it was simply a de-selection problem).

This gets to one of my pet peeves in interface designs.  There is one and only one correct way of doing things, and if you try to do things any other way you will be slapped.  Such it was with the Lincoln I rented for a trip in Oregon in 2000 (which was mostly a pretty nice car btw).  But if you tried to lock it with the dongle after already having locked it, for shame for shame, it would beep at you to let you know you should see your doctor about Alzheimer's.  I'd re-lock doors all the time with my Toyotas when I can't remember whether I'd locked them or not, and it would just lock itself as it always did without protest.

So in my view, the User should be considered the final authority.  Do what the user wants.  If it requires changing some damned mode, change the damned mode, don't just beep or show the "naughty" sign.  At worst there should be a helpful dialog respecting what you seem to be trying to do and advising of the correct way to do that, if it's even possible.

But the Make-The-User-Learn-His-Lesson approach is nearly everywhere, now that I think about it.  In many cases it's make-the-user-learn-to-never-make-mistakes, even though that will never happen.  For example, my (otherwise truly wonderful in every way, and so far long lasting at 14 years old) Whirlpool washer will refuse to change ANYTHING after a cycle is started.  Even, say, the Rinse setting which won't start for many minutes.  You can't just pause, you have to stop the washer completely for that.  Then, even if it hasn't filled the basket with water yet, it will pointlessly need to drain all the water (including an impossible to estimate quantity of detergent) before you can change those settings.

Where to learn all these mind warping concepts about Gimp?  It's not clear.  Nobody ever starts with the basic concepts, like a Day -1 lecture in which you learn about things like object-oriented image programs and their selection-concepts.  People start with all the bullshit you already had to solve (such as downloading and installing the program) even before you became aware you going to need a crash seminar just to do the most basic things.

Back in the olden days, there would be an O'Reilly textbook on whatever counter-intuitive but powerful Unix command you needed to know about (such as Awk for example) and it would be Pretty Good at introducing the basic ideas in the first section or so.  Nowadays it's unclear where to go, there seem to be hundreds of books about Gimp and tens of thousands of tutorials, a veritable industry.

Gimp itself changed in many at least superficial ways back in 2018, and many of the books were written with the older version in mind.  (Things have been far far worse with Sox, the sound processing program, in which the entire command structure seems to have changed about a dozen times, so if you web search for any answer you are almost certain to get something not relevant for your version.)

Actually, way back around 1995 I bought my first copy of Photoshop, and I struggled through the first chapter or so in the tutorial book, I could sort of use it.  I can't remember if I ever used it, because by the time I really needed to use it, I was not longer using the computer that I had installed Adobe Photoshop on.

That's the way it has seemed for many commercial programs.  By the time I learn how to use them, they are gone forever, replaced by something new and completely different that I have to learn, if not pay for, all over again.

I remember the giddy days when the Mac was introduced.  Everything was going to be intuitive, simple, and you'd never have to learn anything else.  That feeling lasted about a month maybe, at least for anyone else who hadn't become an instant devoted fan.

By then it had become clear to me (and seemingly nobody else) that the new Graphical Interfaces were ways of hiding, not exposing, the actual functionality.  I got into arguments with the Manager of the User Interface Group of the company I worked for in 1985.  He insisted that Graphical Interfaces with Dialogs were the only truly unlimited form of interfaces.  They could do everything, whereas nothing else could.

Well that might be fine, but with the actual interfaces here on earth that we used, the options were ridiculously simple and non-useful compared with old Unix ways of doing things.  And then when things like Adobe Photoshop appeared, the ridiculously simple became ridiculously complicated.  Sure you could search for help...if you even knew what to start looking for.

Nowadays it's well understood that GUI's don't necessarily mean intuitive or easy to use.  They are just considered necessary for the things non-technical people need to use.  Only programmers and similarly technical people are expected and sometimes required to use command line interfaces.

I spent much of my career developing and enhancing such interfaces.  It really seems to do anything serious technically you have to get into text in some way, though in theory you could do all your programming in some all-encompassing graphical development environment.  But often it seems that real GUI systems leave out a few things that you can only control with text commands in one form or another (such as in configuration files).  It sometimes seems they might do this deliberately to keep most people away from the inner workings, except for those who have to work on such things.

I think the basic problem is that graphical systems are simply too complex to do everything.  But for the Users we take the trouble to wrap things up nicely in graphical metaphors.  For the people down in the computer room, we more often use text interfaces, which we generally prefer anyway, and they are far and away by orders of magnitude easier to program too.

This article is not intended to be a full on critique of GUI and defense of CLI simply because I don't have time for that today.  CLI's have many advantages including transparency (you can most often look at a succinct "history" of every previous command, and repeat and/or modify any of them) and power.  I would put it like this: GUI is fine when you are not going to be getting fairly deep into things or doing things that are fundamentally graphic in the first place.  In every other case, you are going to need some commands somewhere, such as for repeating common operations.  It has been my feeling for some time that OSX has a pretty nice combination of BSD unix derived shell and tools and underlying system with snazzy GUI.  But a good Unix/X combination would be fairly good too, if they could make a fairly nice one without a steep learning curve.

It was to my horror that in the glamorous roll out of Windows 95 that Microsoft marketeers were promoting the idea "and you'll never have to use this again" while dismissing the (relatively brain dead) MSDOS CLI.  Now even Microsoft has upgraded shells (and you can run many of the others on Windows too).

But the fundamental problems in intuitive interface design I have always felt to be somewhat independent of whether the interface is GUI or CLI.  It has more to do with intuitive underlying object models and how they are expressed.











Tuesday, July 5, 2022

Shopping Services

 My worst problem with shopping services has been their tendency to substitute what I've ordered with things that are absolutely worthless to me.  THEN what am I supposed to do???  Often the shopper gives you a chance to refuse, but if you somehow miss warning and don't respond within a minute or so (which is easy to do, since it may only occur within the app, if you have the correct page selected, and your phone may have timed out before it appears) the shopper will often go ahead and make the substitution anyway.

Not in a single case has a substitution been acceptable.  It's often very hard to find the things I want in the first place, even things which are regularly carried somehow are hard to find on Instacart.

For example, Walgreens has a nice self-branded package of 25 "Gauze Pads" which are used for cleaning.  There may be only one thing in the entire store with the exact name "Gauze Pads."  But if you type in "Gauze Pads" into the search window, you will scan through hundreds of items (such as Band-Aids, etc) without coming to Walgreen's "Gauze Pads."

Strangely, if you just type in Gauze, a series of suggestions appears, in which the actual "Gauze Pads" are at the very top.  BUT if you click on that suggestion, you get almost the same useless list as when you type in "Gauze Pads."

If you just type in Gauze the Gauze Pads will appear in about the second page.

I once ordered 3 bars of expensive Shea Moisture soap, the green kind I've had before and loved.  But instead I got 3 bars of Shea Moisture soap in the "Coconut" white variety.  At first I thought "no big deal."  But it turns out the "Coconut" variety has small pieces of coconut in it as an abrasive.  The result is a soap with abrasive qualities like "Lava with Pumice."  This is useless to me, as I have very sensitive skin.  So now I have 3 bars of this soap which cost me over $5 apiece.  I don't feel like donating them either because the poor sap who gets them may well find them as useless as me.


Sunday, April 10, 2022

More Apple crap

In my imagination, there would be a simple smartphone interface that would not get in your way.

In reality, what we have is endless diversions and crap somehow intended to sell more stuff.

I did finally so far resolve my multiple Apple ID problem, a story too long to recount here.  Now that I am logged into the same Apple ID on my mac's iTunes, and on my phone, stuff generally works rather than generally not working.

But because I had "changed" the ID on my phone, it would no longer update.  Finally, it bricked.  It took hours of work to get it all going again, with endless (and thankfully with the number always changing) "uknown error" messages.   And nobody tells you that as long as the error number keeps changing you should keep on trying to update or restore, except in exhausing online searches.

I've seen this phenomenon on Microsoft also.  Not just one attempt to update is required if you haven't been keeping up.  Often it requires hours of updates.  Except on Microsoft it could be many days of updates.   I think I counted Eleven updates before I had a working iphone again.  All except the last ending in an unhelpful "unknown error" number that suggests it's all over--get a new phone.  You can't just start from some new update level, it seems, but go through many of the intervening updates.  Or perhaps you can't pile all the ice cream on the cone at once.

You might think with all the crap they put into these smart phones, they could spend the extra 10 cents for actual helpful error messages.  But of course, that is not the plan.  The plan is to sell more stuff, including new phones.

One key thing it seems I always had to turn off was "Find My iPhone."  I could not update or restore my phone without doing that.  But since my phone wouldn't boot, I couldn't do it, and when I tried to do it in iTunes it didn't stick, at first.

I've turned off "Find My iPhone" dozens of times, but when it counts it seems Apple somehow turns it back on again.  Now the first thing I do, as soon as I am able, is turn off "Find My iPhone" before it can cause some failure or another.

Another thing to immediately turn off is Screen Time, which gives nanny notifications every so often about how much time the screen has been on.  Shit!  Who makes up the "requirements" for these things, and decides a reasonable idea is to default it in the ON position?

Before my update, restore, and correction I was endless getting notification bells.  I don't want any notifications except for texts from my best friend.  I turned off notifications in Every Single App (which took over an hour).  There seemed to be no way to do this for everything, of course.  Now because I have an all new system, created from scratch With No "Backup" file, I will have to do that all over again.

Quite often those notification bells would show nothing on the screen, or in the notifications center either (which doesn't seem to have all notifications, but a lot of crap which isn't notifications).

Oh, yes, and turn off all "Holidays."  I don't want bells ringing because today is some sort of holiday or another.  I already know if it's a "Holiday" important to me.

At least for now, the fingerprint sensor is finally working ok.  Last time I just completely disabled "security" so I didn't have to punch in my number every time I picked up the phone because the finger print sensing program was not working very well.  Disabling security possibly itself probably caused other problems like failures to update.  I'd be fine with no "security" at all except for credit operations, but that's not the assumption.  The assumption is that you're deeply paranoid, like a spy or crook or something.  And our information warring society drums it into everyone that we must be.  I'm sure it's because utterly criminal corporations and government don't want us to know what they're doing.




Wednesday, April 14, 2021

Two Factor Screwing by Github

A few years back I attempted to create a free Github account, which I needed for work.  Everyone was supposed to have a Github account to access the mind bending array of Java packages used in our corporate database.

By mistake, somehow, I ended up not creating a free account but a paid account for which I was billed $4 a month.  I said to myself, OK, well someday I might use that myself.  It angered me that Github started billing me $4 a month for something I had thought was going to be free.  But it wasn't a big deal compared with other issues I faced then, and I thought it might one day be useful.

Of course, I should have known that I could not use an account associated with my work email once my work email was expunged.  But that possibility, of losing my job and work email, hadn't occurred to me then, 3 years ago.  

I had been at the same organization for 23 years.  23 years ago, not everyone had a personal email account or internet provider.  I pretty much used my work email address for everything.  Every personal email address I created elsewhere was quickly overrun with spam.  Since I had to read my work email anyway, I figured I'd just handle all the spam there and ignore all my other email accounts  We had a policy that we could use our company email and internet access for personal purposes so long as it did not affect business.  The main concern was people bogging down the computer systems.  So far as I know, that never happened.  That was the way it was for a long time, as impossibly utopian as it sounds now.  By the time I created my Github account, that policy was perhaps not so much in force, but it had never been officially rescinded either, at least to my knowledge.

I'm not sure we actually used Github much.  We used other similar services more.

At some point, not much later, the company decided to crack down on "Personal Dropbox" accounts, where people were using their company email for essentially personal accounts on Dropbox.  Or using personal emails for a company oriented account.  A very big deal was made about such accounts.  I converted my Dropbox account (which was and still is free) which had been created using my work email address to a personal one using my personal email during a window of opportunity provided for that purpose.

The company never mentioned personal Github accounts, and so I did nothing about mine.  I had never put anything there, but was still being billed, and I figured someday I would use it for myself.

Now, I still remember my Github password.  But since Github is demanding Authentication, I cannot log in because it sends to authentication code to my now non-existent work email address.

This also means, or so it seems, that since I can't login, I have no way to delete the account.

I called the Github phone number listed by my credit card.  It gives me 3 choices:

1) For HR or Employment Verification

2) For Github Account Support

3) Sales

Option #2 simply gives you a recorded message, information which is useless to me because I can't login to the account.  Of course I can do nothing because I can't log into my account because it demands that I enter the code sent to my non-existent work email address.

I previously tried sending two messages to Github asking they change the email associated  with my account. 

They sent no response whatever.

 Of course I see now they cannot do that.  I could, in theory, be trying to use my work account to access some information at my previous employer that I am not authorized to access.  The only thing I can do now is "delete" the account at which point it becomes owned by Ghost.

I still hoped that they might email me with a form message saying "they can't change account details."  It might tell me that I can only delete the account, and give details on how I might do that.  But no such friendly email ever arrived.

Now I left two messages at the Sales option on the voice menu for their phone number.  I'm not optimistic I'll ever get a response.

I really detest when services like Github actually provide no "service."  There's no way to get them to do anything without using online features after logging in.  That's probably going to be the case this time.

But to satisfy my credit card company, I'll have wait another day to see if Github responds to the messages I left on their phone with the Sales option.  They send me a warning whenever I try to use the Dispute process without trying to Contact The Merchant first.

Update: Github responded to my request to stop billing me in the same day.  They said my credit card has been removed and I will no longer be billed.  Apparently the secret is that you have to demand billing be stopped.  If you can find the right portal to send them a message without logging in.  I had also sent the last 4 digits of my credit card number and my now-inaccessible old email address.





Friday, April 9, 2021

IRS

I now need to create an account at IRS.gov.  Wish me luck.  The first time through, I entered all the information, correctly.  But then when I got to the point where I enter my cellphone, it refused to accept!

I could give my landline, except it specifically says it won't accept landlines.

None of my information has changed in a long time, maybe 10 years.

WHY OH WHY did it not accept my cellphone number, which hasn't changed in 10 years???

Possibly because my cellphone number is not the PRIMARY number for the financial institution I selected.

However the IRS site itself doesn't give that guidance.

I tried to go back to the beginning and enter a different credit card number.  However, this time it decided to lock me out for 24 hours.  It further tells me I may not be able to resolve this issue at the call center.

*** Second Attempt

Immediately after the first failure, ,I checked out the phone numbers at all my credit card accounts.  Discover already had my correct number listed as Mobile Number.  Since IRS demands a Mobile Number, I hoped that would be sufficient.  On other credit cards I either changed my cell number as Primary Number, or simply deleted the landline number.  So this time, I would not fail, I hoped.

I started using Discover which has long had my correct mobile number listed as Mobile Number.

Once again, it failed, saying it could not verify my phone number.  It gave me no ability to try a different credit card, if that was even the issue.

But this time, it also directed me to request activation by mail in 5-10 days, so I chose that option.  Meanwhile I created a login, or so it seems.

I'm very glad now they gave us an extra month to complete the tax filing.  I hope that will be sufficient to create an account to get the information I need regarding my stimulus payments.