Goldenseal Pro Progress (Dec 14)

Our staff is back to cruising on Goldenseal Pro. Productivity really went up once desks, equipment, wiring and amenities were all settled in at the new office.

These days, we are reinventing the wheel for the third time. Our staff built the original Goldenseal interface in the late 1990s and early 2000s. After that, we worked on improvements to the accounting and estimating code. From 2016 until Sept 2019, we tried rewriting the entire interface using the Cocoa framework: a necessity to run on 64-bit Macs. Then we started over, and repeated with MFC for Windows, until the pandemic hit. After neither of those frameworks worked out, we started over yet again with QT (cross-platform) this summer.

All that previous work wasn’t completely wasted. TCS_FOR_COCOA marks the places where our code connects with the Cocoa version. We are going through all 258 of them one by one, and writing a QT branch to do the same thing. It saves a lot of thinking and testing.

So far, QT seems pretty decent. However, it does have its oddities. For example, we will need to use four different QT classes to replace our current text fields. Cocoa and MFC only needed one, as did the original Goldenseal.

QDateEdit is pretty neat, because it pops up a calendar to enter dates. A bit nicer than just typing in text. QTimeEdit provides a similar pop-up tool for times (which we don’t use very often). For regular text, there’s QLineEdit for single-line fields, and QTextEdit for multi-lines. Splitting them is a minor nuisance, but QTextEdit does show scroll bars if multi-line text gets too big. To do that in the original Goldenseal would have required too much extra code.

The real test will be breakdown tables. We wasted almost a year on them in Cocoa, and still never got them working right. MFC was even worse. There’s other stuff to do first, but I think we’ll be able to move on to tables within a month or two.

QT just released a major update. Up until now, QT has been a weird mix of a commercial version, and one that is free and open-source. The bad news is that QT 6.0 won’t have a free option. The good news is that they dropped the license fee to something much more reasonable for small developers like us.

This may be a good thing in the long run. We wrote the original Goldenseal using a paid app (CodeWarrior). It cost something like $300 a year, but the software was a joy to use. Their support was great. These days most desktop programming happens with either Xcode (free from Apple) or Visual Studio (free from Microsoft). They and their frameworks have been a constant struggle.

Paid-but-great definitely beats out free-but-mediocre, especially when you’re using it for hundreds or thousands of hours.

Dennis Kolva
Programming Director
TurtleSoft.com

The Economy (Dec 2)

TurtleSoft was born near the end of the Reagan presidency. Those were the days of “trickle-down” economics, with a top income tax rate of 28%. It had fallen steadily from 91% in 1963, to 70% during the 1970s, then to 50% and down during the Reagan years.

I read an article back then predicting that the new tax policy would shrink the US middle class. They expected good fortune for Walmart (more poor people) and for Tiffany’s and Neiman-Marcus (richer rich people), but problems for Sears (bye-bye middle class).

At the time it seemed like a bold prediction. But 30+ years later, the writer turned out to be spot on. Sears is almost dead. Walmart is thriving. Aside from Amazon, their biggest competition these days is the dollar stores, which cater to even poorer people. Tiffany’s and Neiman-Marcus are in trouble right now, but that’s mostly because the Internet and Covid-19 zapped walk-in retail. Or maybe it’s because the moderately rich are also shrinking. The ultra-rich can buy islands and politicians (thank you Citizens United vs FEC). They don’t need to show off with jewelry or designer clothes.

The divide keeps growing, with fewer in the middle.

Covid-19 is definitely impacting the economy very unequally. It’s accelerating a trend that was already moving at decent speed. This is a very bad time to own a restaurant, or any type of walk-in retail. It’s difficult for most service professionals. AirBnBs. Much of the gig economy. Even hospitals and medical workers are worse off: higher expenses, layoffs, and less profitable work.

Construction seems to be a mixed bag. One of my neighbors is a contractor who has kept busy since May. However, the biggest construction project in town finished last month after many delays, and it is still completely empty. Nobody wants to rent offices or apartments in a building with shared hallways. The second-biggest project shut down in April, and it is still just a partly-finished foundation and elevator towers. That’s got to be hard on owner cash flow.

I’m no economist. But as a small business owner and a developer of accounting software, I do know how to track money. As the pandemic slithers into its scariest phase, I think the US is at a crossroads.

The conservative viewpoint is that the deficit is huge, and it’s time to cut back. Based on past history, that usually leads to austerity, layoffs, bankruptcies, deflation. Money stops flowing, so it becomes more valuable. Recessions are a good chance for people with money to pick up assets cheap.

The liberal viewpoint is that people are hurting and need financial help. The US can borrow at close to 0% interest. The economy needs stimulating. Stimulus makes things better in the short run, but the debt eventually needs to be paid to those who provided the money. Mostly rich people & foreign governments.

Hopefully there is some middle ground, to keep things stable until vaccines are widely available. Then life can get back to something close to normal. If the money goes into things that create wealth in the long run, then it’s an even better investment.

Unfortunately, this year a lot of money is shifting from places suffering from pandemic (US, Europe, India, Africa) to countries that contained the disease (China and East Asia). It’s too late to do anything about that. Wealth is also shifting upwards to rich people, since they are relatively less affected.

Meanwhile, I’m keeping busy, trying to stay middle class. Goldenseal Pro is inching along. I think progress will speed up soon.

Dennis Kolva
Programming Director
TurtleSoft.com

Covid-19 Update (Nov 22)

Our staff is back to working on Goldenseal Pro, though no major progress to report yet.

Meanwhile, here’s a chart for new weekly Covid-19 infections in each region in the US:

The numbers are from Johns Hopkins University. I multiplied counts for the first few weeks by 5x, because testing was so sparse back then. There’s still lack of testing now, but not nearly as bad.

50 million people are predicted to travel for Thanksgiving, so the curves probably will get steeper.

Covid-19 is now worse than the first surge 7 months ago, but the US reaction is very different. Here’s a chart of restaurant activity from OpenTable. It covers the entire pandemic from Feb 18 until yesterday.

Between March 10 and March 20, every state dropped rapidly from normal to 0% or close. Starting in May, seatings inched back to 50% or 60% of usual in most places (Rhode Island went crazy with restaurant dining, while Hawaii and DC mostly stayed closed). Attendance has dropped off a little in the past month, but many people are still eating out like it’s 2019. Presumably they are doing other things that spread virus, also.

I don’t know what to say. It’s like watching two trains on the same track, headed towards each other. The Coronavirus train is much, much bigger.

Dennis Kolva
Programming Director
TurtleSoft.com

Covid-19 in New York #5: Early Signs (Nov 13)

Here in Ithaca, we just set a record for active Covid-19 cases and people in hospital. Nationally, the US is also setting records. Things are getting worse in every state except Mississippi.

Globally, much of Europe is shutting down. Meanwhile, the US is chugging along about like normal. OpenTable shows restaurant seating declines in a few states, but most are about the same as a few months ago.

Back in March, I posted a link that talked about how fast Covid-19 will hit. It’s worth revisiting, since conditions probably will be like that again, and soon. Except, this time it’s starting from higher ground. Most of the US is headed towards conditions that are similar to New York City last March.

My parents are in a nursing home in Cattaraugus County NY. It’s rural, just south of Buffalo NY. I check their Health Department website weekly, to get an idea of how things are going there. It’s the only nearby county with a write-up on every case: gender, symptoms, how they caught it, why they were tested.

The odds of catching Covid-19 are growing rapidly. It may outstrip the number of test kits (already happening in the Dakotas). So, I decided to put all the Cattaraugus data into Excel (633 cases), then do math on them. The results may be useful for anyone trying to figure whether they have Covid-19 or not.

60% of Cattaraugus cases are female, 40% male. 20% are health care workers or employees in hospitals or group homes. 47% reported close contact with a Covid-19 carrier. They may not have known it at the time. 8% caught it while traveling elsewhere. 92% were local transmission.

34% had no symptoms when tested (they may have developed some later).

On average, the other 66% reported 3.21 symptoms each. The most common were fever (43%), coughs (43%), congestion (36%), body aches (33%), and headaches (31%). 21% had loss of taste and/or smell. That’s the only one that is different from a bad cold or the flu.

14% had shortness of breath: the most scary sign, since most deaths are caused by respiratory failure.

Victims also reported the usual stuff: fatigue, sore throat, chills, runny nose, nausea, diarrhea, sinusitis, weakness, dizziness, chest pains, stomach pains, vomiting. Sneezing was rare: only 3 mentioned it.

UPDATE NOV 22: Cattaraugus had 52 positive tests on Nov 17. Then 30+ most days after that. Not surprisingly, they stopped listing details for every case and just give a summary now. I revised the percentages slightly, with a few days more data.

If you want one more way to track the pandemic, Carnegie-Mellon now has a website with Covid-19 maps. It uses Google and FaceBook data to track doctor visits, mask usage and other indicators.

Back in March, people changed their behavior very quickly. It happened in just a week or two, even before Governors shut down states. I’m curious to see if it happens again.

Dennis Kolva
Programming Director
TurtleSoft.com

Goldenseal Pro Progress (Nov 2)

TurtleSoft is mostly done moving into the new office. It’s bigger, which was a bit of a gamble given the uncertain economy.

Next on the agenda is to finish interior work on my house in town, then sell it and buy another fixer-upper. Right now the local real estate market is still pretty good, and hopefully it will stay that way for a few more months.

Programming requires intense focus, which (for me at least) requires a calm environment. I was making good progress on Goldenseal Pro before the move, but still haven’t shifted back into programmer mode. It may take another week or two to really get settled in and productive again. Long nights and crappy weather also help.

The rate of progress this winter will depend on the pandemic, politics and the economy. Personally, I’m calmer when experiencing positive cash flow. Some of the ways to make that happen consume a lot of time.

The Goldenseal Pro project has dragged on much, much longer than ever expected. First there were a few subcontractors who tried it and failed. Then our staff took over, and failed with two different frameworks (Cocoa for Mac, MFC for Windows). QT is looking like it may be a winner, but that is not guaranteed. We will know better in a few months.

If it’s clear that we can’t finish Goldenseal Pro, I’ll fall back on the original retirement plan from before Turtlesoft started: buy, live in, rehab and sell fixer-upper houses on a 3 to 5 year cycle. Selling my current house in April +/- should provide enough extra cash to pay back folks who prepaid for Goldenseal Pro. That is a bit dependent on where the pandemic and the economy go. If there is a major financial crash, I’m pretty much screwed.

If QT works out, we probably will have something to ship by late 2021. Possibly earlier if sailing is very smooth. I’m sure the early releases will have some gaps and rough spots, but at least the core estimating and accounting functions are well-tested. They won’t be affected by the new interface code.

Meanwhile, please vote. Please wear a mask. Stay safe. Covid-19 is not a hoax:

Dennis Kolva
Programming Director
TurtleSoft.com

Health Departments & Politics (Oct 21)

I’ve been more than a bit obsessed with Covid-19 since it started. For a while it was almost a full-time gig. These days it’s calmed down to just a few hours a week: reading science papers, and spot-checking a few websites.

Among them are sites for Health Departments in some nearby counties. They vary. All have current numbers, but some break it down by towns; some give a brief description of each case; some have lists of places where infected people visited. Right after the Sturgis rally, Cattaraugus County (4 to the west) even mentioned that two cases were in people just returned from South Dakota. That’s a long motorcycle ride.

The sites are entertaining, in a geeky sort of way. I keep adding more counties, and now visit 15 of their sites. Reading between the lines, they paint a picture of what the pandemic must be like for staff in local Health Departments.

Pre-Covid, their biggest job was inspecting restaurants and other food services. Keep perishables below 45° or above 145°F, don’t put meat above salads in the fridge, control rodents and the like. They also administered WIC, and tried to keep people from catching STDs or growing too obese. Flu shots. Toxic algae blooms. Ticks and Lyme disease. Mosquitoes and West Nile. Opioids. Tobacco. Rabies.

Most of these departments are pretty small. They already had a lot on their plate. This year they’ve been in crisis mode for seven months already, and the battle has just started.

Contact tracing and quarantines are an important part of controlling a communicable disease like Covid-19. That’s mostly what they do now. I’m sure it is not an easy job. You’ve got to ask people where they’ve been, and who they were close to. Then persuade them to stay home for a couple weeks. Plenty of people resent authority or think it’s all a hoax. Even the best will be tempted to sneak out for a bit. You’ve got to deal with all that, and probably don’t have much enforcement power.

Normally I avoid talking about politics. As a business owner, I’m significantly less liberal than most folks here in Ithaca. As an Ithacan, I’m more liberal than most people using our software. It’s not worth arguing about.

Thing is, right now the US probably is headed into a major emergency. A once in a century situation. It’s right in the middle of an election for President, all of the House and 1/3 of Senators. Plus local races.

Both political parties got together in March, and signed the CARES act to support people and organizations affected by the pandemic. Since then, it’s been gridlock and antagonism.

All those local Health Departments will make the difference between a moderately bad Fall/Winter season for Covid-19, and a runaway disaster (or lock-downs and economic damage). To keep everyone safe, they need more staff to trace contacts. More tests. More resources to support folks in quarantine so they don’t wander off and infect others. Problem is, the states and counties that pay them are facing bigger expenses, and reduced revenues. They can’t print money to make up the difference. They need help.

And of course, many individual people are in the same boat. Life got a lot more complicated and generally worse in March. It’s not turning any corners, anytime soon. It will take extremely competent leadership to manage the next phase of the pandemic, and recover from the economic damage. States and counties can only do so much. Covid-19 is exactly the kind of problem that needs full attention at the Federal level. It’s not happening now.

You might say this country needs to come together to fight a common enemy: the coronavirus that causes Covid-19. And maybe come together for other stuff also. Life was already headed downhill for many people, even before March 2020.

I miss the days when there were liberal Republicans and conservative Democrats. When politicians compromised and solved problems (at least some of the time). Voting in a politician is a lot like hiring an employee or subcontractor. In the end, competence and integrity are what counts.

Dennis Kolva
Programming Director
TurtleSoft.com

Covid-19: Contact Tracing (Oct 12)

Our county had its first death from Covid-19 today. The number of active cases has gradually increased as well. Surprisingly, Cornell is not to blame. They’ve only reported 5 new cases in students and staff during the past week. The rest of the county had 30.

This is not just a local problem. Some parts of Upstate NY have even bigger increases. There currently are 226 active cases in Steuben County (2 to the west of here). 870 people are in quarantine (almost 1% of their population). It’s much worse now than in March/April. So far 60 people have died in Steuben, with 15 in the past week. Their population is similar to here.

New York State is actually doing better than most places in the US. Looking ahead, it makes me very concerned.

It’s possible to divide epidemics and pandemics into three levels of severity.

The best option is full containment. It’s what happened with SARS, MERS and Ebola (twice) in this century. There’s a local outbreak, but medical help rushes in to help the infected. Contact tracers find and quarantine everyone exposed to them. There’s public education, to help folks reduce their risk of infection. Eventually the disease stops spreading. Eventually it disappears.

With Covid-19, some countries have reached containment. China is the biggest example, but most of Eastern Asia is fully contained or close. However, until the disease is completely contained in the rest of the world, they all risk new outbreaks.

The next best option is just plain old containment. It still involves contact tracing and quarantines, to reduce the spread. Still public education to help slow things down. But for whatever reason, the growth rate stays about the same. People keep getting sick, but not at crisis levels. That’s where most of Europe is right now. Ditto for much of the US, especially New England. New York was there all summer, but it’s starting to lose it. Europe is starting to lose it too.

The worst option is out of control pandemic. Contact tracing doesn’t work then, because too many people are infected at once. You can’t keep track of everyone, nor quarantine them all. The disease pretty much runs its course exponentially. Eventually there is herd immunity, but it ain’t pretty getting there.

Influenza did that in 1918 to 1920. Plenty of other diseases did that in prior history. This year it happened for a few weeks in one Chinese province, then in Italy, Spain and New York City. Hospitals are overwhelmed. Almost everything becomes unsafe. Things can get very bad, even when a disease isn’t real deadly. It’s worse when every place is in trouble at the same time.

Steuben may be close to the edge now. They have 15 contact tracers, which means each of them is running daily checks on 18 sick people, plus 40 more who were exposed and in isolation. Things were fine there until Sept 23, then it went off a cliff.

Covid-19 has dominated lives for more than seven months. I think all of us are growing very, very fatigued. The problem is that Spring and Summer 2020 were just Covid 1.0. Best guess is that this pandemic will follow the 1918/9 curve. If so, we’re right at the leading edge of the second and bigger wave.

One big thing we have in 2020 that wasn’t common in 1918 is vaccines, plus the science to develop them rapidly. Vaccines are challenging. The immune system in general is not easy to understand. Luckily, Derek Lowe’s latest write-up on vaccine development sums up current progress. He is a writer for Science magazine, and all his posts about Covid-19 are great. UPDATE: the Chairman of Pfizer also just posted info about their vaccine development.

The short answer is that creating a safe & effective vaccine is a slow process. One probably won’t be ready in time to help with that middle bump (if it happens). But it may reduce the 3rd and 4th ones.

Dennis Kolva
Programming Director
TurtleSoft.com

Goldenseal Pro Progress (Oct 5)

Our staff has made some progress on Goldenseal Pro: text fields now fill in values, and popup fields get menus. QT is still working well, and I’m very optimistic that we’ll be successful with it.

However, our staff has mostly been busy with other things, the past couple weeks. The rest of October will be similar, before we get back on track.

First of all, TurtleSoft is moving to a less Covid-risky office. At the moment everything is boxes and disassembled shelving. The chaos will get worse before it gets better.

I also finished re-roofing my house last week. It was a big project that started in late May: removing 3 layers of ancient asphalt shingle from a 12:12 pitch, then installing new metal panels. I also added a couple of skylights in the attic. There’s still a small shed roof to finish on the rear, but that should only take a few days. It’s the first roofing project I’ve done with scaffolding rather than ladders, and the process was so much safer and more pleasant. Well worth the extra setup and take-down time.

Getting back into major construction work was satisfying. 20 to 25 hours a week of physical work seems like the sweet spot: enough to get very fit, but not enough for serious back and joint pains. So, I’m planning to finish some interior work over the next few months, then sell the place and buy another fixer-upper. Then repeat the process every five years or so.

For most of its lifetime, TurtleSoft has been a part-time operation. This really isn’t a change from how it’s always been here. Sometimes there are spurts, and sometimes gaps. Goldenseal Pro will be spurting again soon enough.

Dennis Kolva
Programming Director
TurtleSoft.com

Covid-19: Droplets (Sep 25)

A couple weeks ago, Cornell University had over 80 active infections, and it was looking pretty dire. Then, the students got scared, and more careful. Last week there were 29 new cases. This week only 5. Someone was hospitalized for a few days last week, but it’s down to zero again. Still no local deaths.

Cornell has already run about 90,000 PCR tests since classes started. Students are tested twice weekly, and staff once. It’s probably not cheap. But, there’s a lot to be said for testing everyone: it nips outbreaks in the bud, and also acts as a reminder that the situation is serious. Having same-day turnaround also helps.

Meanwhile, I’m still doing research for a Coronavirus risk estimator. The consensus now seems to be that most infections happen through the air, so I’ve read a few dozen research publications about droplets and aerosols. The best is a 1934 paper by W. F. Wells. Here are a couple of its charts:

The first shows what happens to droplets that leave a person from talking, coughing or sneezing. Anything smaller than about 140 microns (.14 mm) evaporates, and turns into a floating aerosol. Anything bigger falls to the ground within a few seconds. What that means for Covid-19 is that there are three basic risks:

  1. if you are close enough to someone, you may inhale one of those bigger droplets while it’s still falling. That’s what the 6-foot rule is all about, and the advice to cough into your elbow.
  2. After the big droplets land, you can touch that surface, then transfer virus into your eyes, nose or mouth. It’s the reason for washing hands, and not touching your face.
  3. If you breathe air, you may inhale those small dried-up droplets, which gradually mix into the entire room volume. This is where HVAC comes in. The risk for any space depends on the number of infected people inside and what they are doing, minus air changes and filtration. It’s also why masks are so effective: they block droplets both coming and going.

The second chart from the Wells paper explains why respiratory diseases are more common in winter. People are indoors more, which is half the problem. Even worse, the air is heated and dry, so more droplets evaporate, float around, and end up in noses and lungs.

When working with droplets and aerosols, it’s easiest to do everything in microns (symbol µm, aka micrometers). A micron is one thousandth of a millimeter. It’s about the size of the biggest tobacco smoke particles, a medium-sized bacteria, or the smallest pollen grains. PM2.5 pollution is 2.5 microns and smaller (the most dangerous size because it gets into your lungs easily). N95 masks filter 95% at 1/3 micron size. They hit 99% for both smaller and larger particles. 3M says that’s because the bigger particles are heavy, and ram into a fiber. Smaller ones are extremely light, so the fibers suck them in by electrostatic attraction. 1/3 micron is the sour spot in between. A coronavirus is about 1/10 of a micron.

A few researchers have measured the amount of Coronavirus in mucus and saliva: results range from 12 million to 36 billion virions per cc. It’s simple math to translate that to the amount of virus in droplets of different sizes. As it turns out, a one-micron exhaled particle only has a 2% chance of containing a virus, even at the maximum rate. The bigger droplets that dry up and then float are worse. The maximum size that evaporates in humid air (97 microns) will contain somewhere between 3 and 17,000 virions. The maximum in dry air (172 microns) has 16 to 96,000.

As those droplets lose water, they shrink down to roughly 10 microns diameter (about average pollen size). They become a tiny glob of mucus proteins and passengers, light enough to float for hours, easy to inhale. By the math, those are probably the most dangerous.

Dennis Kolva
Programming Director
TurtleSoft.com

Goldenseal Pro Progress (Sept 14)

Our staff is gradually getting Goldenseal Pro to run, using the QT framework. Right now the app launches, opens files, and fills in a list of accounts and transaction types on the left side of the main window. Next step is to get it to load layouts into tabs on the right. That’s the most important part of the interface for Goldenseal Pro.

Back when we attempted to use Apple’s Cocoa framework, it took two or three months to get this far. So far, progress seems faster with QT, despite spending fewer hours per week. Some of speed increase is because we can reuse previous programming, or at least the logic behind it. Some is because we don’t have to futz with two different programming languages.

We currently are working mostly on Macs, but the same code also runs on Windows. Most likely we will alternate between them.

People warned us that QT is bloated, and they weren’t kidding. I found a list of all the QT classes: there are 1,718 of them. In comparison, Apple’s Cocoa has 654 classes, and Microsoft’s MFC has 475. I put all the QT stuff into a spreadsheet and narrowed it down to things that we might actually use. That gets it to a couple hundred.

In the past few years we used both Cocoa and MFC to build Goldenseal Pro, and failed completely. Not the first time we’ve had to toss months or years of work. Since 1987, our staff has tried about 20 different frameworks for building desktop apps. Only three resulted in actual apps: Microsoft Excel (MacNail), Apple HyperCard (BidMagic), and Metrowerks PowerPlant (the current Goldenseal). All three of them were productive right from the start. So far, QT feels the same way. Despite the bloat, it works. It’s not painful to use. Success is not guaranteed, but I’m more optimistic that we will finish this time.

The real test will be breakdown tables. If necessary we can use the work-arounds already developed for Cocoa, but it would be better if we can have something closer to the current interface. It probably will be 2 or 3 months until we get that far.

Dennis Kolva
Programming Director
TurtleSoft.com