Covid-19: Reopening (Jun 29)

New York State has been reopening gradually, with a minimum of 2 weeks between each phase. Ithaca entered Phase 4 on Friday, along with most of Upstate NY. Dine-in was allowed in Phase 3, but many restaurants are still takeout-only, or completely closed. All gyms are still closed, as are most bars. Large public events are still forbidden, and masks are required for all indoor public spaces. Outdoors, mask use seems to range from 0% to 70%, depending on location and time. I think it’s declining.

The Rt tracker site currently shows 33 states with increasing infection rates, and only 17 decreasing. New York had a low number through most of April and May, but it gradually inched up. Today it is exactly 1.0. If it stays there, the number of daily infections will remain the same indefinitely.

Since the current number reflects conditions from a couple weeks ago, it is very possible that NYS has reopened too quickly. The ideal balance between safety and economy probably was back at Stage 2 or 3. We will find out about that in a few weeks.

At least Covid-19 is close to contained around here. The county health department is doing almost 1500 tests a week, with only two of them positive on average. Nobody has been hospitalized here since May 29. Nobody local has died yet. Conditions are worse in the bigger cities within a few hours drive, but still tolerable. Even New York City is inching back from the brink.

Sadly, some other states are starting to become very dire. Most of the US reopened too quickly. Governors are starting to crack down, but they will soon find out what happens with exponential growth and a time lag. For example, right now the estimated Rt for Florida is 1.4. That means cases will almost triple before any impact shows, from remedies started today. Florida already has 9500 new daily cases, so it probably will get worse than New York City was in April, and soon.

It’s like watching a slow, enormous train wreck. Too bad it’s not just a train, but the whole frigging country.

Meanwhile, the big question locally is what happens after Cornell reopens this Fall. They just issued a 97 page report about it, but it leaves many details dangling. I think a lot of their plans ignore what students in their late teens and early 20s are like. The local economy is very dependent on the two colleges, so it’s going to be a very interesting ride.

I am pushing 70, so it makes sense to continue social distancing and mask-wearing, even though risks have declined. Most likely that will continue for at least another year. Masks suck, especially in hot weather, but they are a lot more comfortable than a respirator.

To cut down on exposure, the Turtlesoft office is currently open just one day a week. We probably will keep that schedule for most of the summer. Maybe longer. User support is still available by email, and usually by phone.

I spent the stimulus money on scaffolding. So I’m stripping 3 layers of ancient asphalt roofing off my house, and installing metal. It’s also a chance to finish up the exterior painting a bit more safely, and hang new gutters. After that, we’ll see. If QT seems plausible, at some point Goldenseal Pro will consume much more time again.

Dennis Kolva
Programming Director
TurtleSoft.com

Goldenseal Pro Progress- Shifting Gears #2 (Jun 22)

A couple weeks ago we decided to switch gears, and use a very new framework (Windows UI 2.4) to build Goldenseal Pro for Windows, rather than a very old one (MFC).

When learning a new system, it always helps to start with sample apps. In fact, the ideal way to create a new app is to start with something that already works, and then add to it one step at a time.

So we downloaded a few samples and tried to build them. They needed other Microsoft libraries to run, so we downloaded and installed those. Then they needed even more libraries, using something called NuGet. Running it just gave mystery error messages: probably because it couldn’t find the necessary files on Microsoft’s servers. We searched the web for answers, tried a half dozen suggestions, and got nowhere. Dead in the water.

It’s a really bad sign when you spend 10 or 20 hours on something and can’t even get started.

These days, neither Microsoft nor Apple do a very good job with their programming tools. Fortunately, most frameworks have an ecosystem of books, websites, videos and Stack Overflow answers to assist us developers. Very few of those exist for Win UI 2.4. It is just not ready for prime time. Since it’s sort of a temporary filler, it probably never will be ready. My first impression was that it seemed half-baked, and now that suspicion is confirmed.

I think we will be better off waiting for Win UI 3.0. It is a bigger update and hopefully will have better support.

Win UI 3.0 is promised for some time later in 2020, which probably means 2021. It may not be fully usable until 2022. That’s still quicker than we probably can manage using MFC, so the most logical course is to just wait it out. There really isn’t anything we can do right now to make Goldenseal Pro happen for Windows, at least not by using Microsoft frameworks.

Fortunately, there is another alternative: QT. Way back in 2015 we hired a subcontractor who specialized in QT, to build Goldenseal Pro for both Mac and Windows. He finished enough to receive one draw payment, then stalled out. But, maybe we can figure out how to make it work. Worst case, our staff gives up in disgust and we still wait for Win UI 3.0.

In theory, QT lets us write one batch of code that runs on Macintosh, Windows, and even Linux. QT is open source, and its volunteer programmers did the heavy lifting to convert from 32-bit to 64-bit on the Mac. Odds are good they’ll also make it run on the upcoming ARM chips. So QT is worth the try.

As with our original plan, it probably will take most of the summer to get the gears fully shifted. Run some samples, read some books, work through the tutorials.

Based on a quick look, QT seems like it’s a complex, confusing mess. Unfortunately, that is the state of all the other options, too. These days, all programming requires layers upon layers of other people’s code. It tends to be fragile, poorly maintained, and poorly documented. But having a support ecosystem helps a lot, and it does already exist for QT. Whether that is enough to make it usable, we will soon find out.

Dennis Kolva
Programming Director
TurtleSoft.com

Covid-19: Herd Immunity (Jun 16)

According to OpenTable, restaurant reservations in the US increased to 33% of normal, as of yesterday. It varies a lot between states: Rhode Island is close to 100%, while New York, Hawaii and DC are still under 10%. Those numbers are probably a decent indicator for general levels of reopening. The sharp dip yesterday was because it compares to Father’s Day 2019.

The Rt tracker website now shows 19 states with growth multipliers above 1. Arizona leads the pack, while most states in the Northeast are near the bottom. New York was #1 for new cases during most of April and May, but it fell to #8. The action has shifted south and west. Specific numbers vary with each update, but the trend has been consistent.

JUNE 19 UPDATE: the Rt tracker revised their calculation method today. They now show 26 states with growth rates greater than 1 (daily infections increasing). Several states are starting to look very scary.

Since economies are still ramping up, the best guess is that the growth rate will continue to increase. At some point, states with a growth rate much above 1 will run into trouble. Presumably they will then take action to reduce infections.

That means the Rt rate will probably hang out close to 1, pretty much indefinitely. For every infection that ends (via recovery or death), a new one will take its place (on average). Of course there will be large variations in different places.

In a previous post, I talked about containment. It can happen globally if every country reduces infections to zero, until the virus disappears. That’s what happened with SARS and MERS, the two previous coronavirus epidemics. Sadly, it seems very unlikely that containment for this one will ever happen in the US, nor globally. Covid-19 is just too well established. A few island nations have reached zero cases, but that’s still not great. They constantly will need to quarantine all visitors, or risk fresh outbreaks.

For a non-contained disease, the only other end game is herd immunity, which occurs when a critical mass of people are immune. If non-immune people are rare enough, then the disease gradually stops spreading. The amount of immunity needed depends on a lot of factors, but it’s usually between 60% and 90% of the population.

With herd immunity, the disease may eventually die out completely. It may stick around as a minor problem. Or it may return in surges, as each previous wave’s immunity fades away.

There isn’t anywhere with herd-level immunity to Covid-19 right now. New York City is probably the closest, with about 20% showing positive antibody tests. Elsewhere in the US, it’s rarely over 5%.

Doing some very quick math, if 3 months of infections made 5% immune, then it will take 45 months to hit 75%. The curve will be flat, but very wide.

Of course, vaccines are a great way to increase herd immunity very quickly, without all the sickness and death. In the US, roughly 60% of children and 45% of adults got a flu shot in 2018/9. For Covid-19, a recent survey showed 49% who plan to get a Covid-19 vaccination. 20% are unwilling, and 31% not sure.

That probably isn’t enough to attain herd immunity in one swell foop, but it’s close. After a vaccine is available and after half the anti-vaxxers get infected, the US will hit herd levels of protection.

Dennis Kolva
Programming Director
TurtleSoft.com

Goldenseal Pro Progress- Shifting Gears (June 1)

We have not made much progress on Goldenseal Pro for Windows, ever since we closed as a non-essential business on March 23. Stepping back for a while made it clear that it’s time to shift gears.

Our original plan was to use MFC (Microsoft Foundation Classes) to build Goldenseal Pro for Windows. Best guess at that time was a year to finish. MFC dates from 1992, which is ancient in computer years. On the other hand, we already use some parts of it. Adding the rest seemed like it might be relatively easy.

Unfortunately, MFC really is just too darned old. Just about everything is awkward and painful. Just one example: for text, it may use LPSTR, LPCSTR, LPWSTR, LPCWSTR, LPTSTR, LPTCSTR, WCHAR or TCHAR, depending on the function. Choose the wrong one and the app shows garbage text, or crashes. It’s constantly frustrating, even with a cheat sheet.

Based on progress to date, it now looks like it will take 2 or 3 years to finish Goldenseal Pro, by using MFC. Maybe longer, since Covid-19 is likely to cause more delays.

Microsoft has other frameworks and programming tools that are newer than MFC. Most use C# or Visual Basic (their in-house programming languages). Last week I put all the options into a spreadsheet: 56 of them, and I probably missed a few. Everything from ADO to XAML. They have WCF, WPF and WF, but no WTF (though it ought to be there). Nothing has ever been retired: it’s the tech equivalent of a hoarder’s house.

The Windows team seems to be aware of the problem. WinUI 3 is their blueprint for a more orderly set of development tools. In theory, it will unite all the options into one flexible system, with much better support for C++ code such as ours. WinUI 3 just moved from ‘alpha’ to ‘preview’, whatever that means.

Originally, we planned to whip something out in MFC, and then gradually convert it to WinUI 3. Now it looks like it will be better to jump right into WinUI. We might as well experience the growing pains of a young platform, rather than the arthritis of a very old one.

Full release of WinUI 3 is probably still a year off, but there’s a half-baked WinUI 2.4 which we probably can start with.

It will take most of the summer for our staff to come to grips with the new plan. We will play around with sample projects, read books and online info, and then start on a prototype. We may need to learn C#. We may need to shift gears again, if Microsoft shifts theirs. We probably will need to make a few changes in Goldenseal’s interface, so it fits into their system.

Our lives would sure be easier if we could just write code once, and have it run on all desktops. So, I went back and looked again at cross-platform development tools, for the 4th or 5th time. QT and Wxwidgets are the best known, but there are a few others. This post sums up their problems in great detail. Somewhat cynical, but it’s the truth. Likewise for its picture of the fishes.

Dennis Kolva
Programming Director
TurtleSoft.com