Goldenseal Pro Progress (Dec 31)

Our staff made some progress on Goldenseal Pro, then the holidays hit. This week we are futzing with payroll tax tables for 2021. Next week it’s back to working with QT. The big question is, how fast will it go?

Since the pandemic started, I have done a lot of of construction work. As a result, I’m now almost as lean as during Turtle Creek Carpentry, 30+ years ago.

The other day I carried a bucket of joint compound upstairs. About 60 pounds, the difference between my current weight (195) and my maximum during programming spurts (255). I imagined carrying that kind of load around, every single day. Nope. I really, really don’t want to go back there again. The mass piles on gradually so you don’t notice it right away, but I sure notice the lack of it now.

From 1987 to 1992, I was the main programmer for Turtlesoft: writing Excel spreadsheets and a HyperCard app. It meant many days sitting at the computer full-time. I gained 60 pounds. Then I switched to supervising real programmers, bought a fixer-upper house, and did a major rehab evenings and weekends. By the end of that I was lean again.

After the year when Apple almost died, I ended up finishing Goldenseal myself. It was six years of C++ frenzy, and back up to 255. That seems to be the usual max. Some combination of burning more calories because of the extra burden, and feeling unhealthy enough to do something about it.

Since then, my weight has correlated pretty closely to the amount of time spent sitting at a computer. Usually it’s somewhere between the two extremes.

Programming work is intense. It requires that you hold a huge mass of stuff in your brain’s RAM. The big picture is necessary so new code fits in well. Remembering many hundreds of names is necessary, so you can whip out code without looking up functions and classes. C++ syntax and good programming rules need to be in the brain’s best Level-3 cache, on call constantly.

Loading it all is a big mental effort. But once it’s in, you can get into a productive groove and really fly. Write a few lines and boop, something works when you run it. The process is very satisfying. I can’t think of anything in construction that gives such amazing results so quickly. But it requires sitting still, only moving fingers and eyeballs, and living in a fantasy world of CNextRecordButton and ShowBreakdownTable(const SInt32 tableID) for hours at a time.

Losing it is like a blown engine. Bye-bye forward motion. Programmers are often surly, because a single interruption can pop the whole mental picture like a balloon. It may take hours to restore it.

Because of all that, when not programming, it’s hard to start. Then once you’re in, it’s hard to stop. If it were a drug, a programming buzz would have the unpleasant start of mescaline, followed by the addictive rush of cocaine.

Some types of programming don’t require all the intensity. Fixing small bugs is possible to do in shorts spurts. Adding a small feature to familiar code is easy. Problem is, building a whole new QT interface for Goldenseal will require full-on high-impact frenzy. I’ll need to be in the zone for quite a while. Maybe 100 days of it? It’s still just a guess now.

I still haven’t figured out the right balance, to be both code-productive and healthy. The next few weeks I’ll try scheduling two-day spurts, and see how that works out. Then tweak it if needed.

The goal for 2021 is to finish Goldenseal Pro on a reasonable schedule, but not get fat. And not get Covid-19 before a vaccine is in my arm.

Dennis Kolva
Programming Director

Covid-19 in Charts (Dec 26)

This chart shows new confirmed Covid-19 cases in each part of the US. A couple months ago things got bad in the Dakotas and surrounding states. Then it improved there, but got worse everywhere else. There was a sudden reverse last week. New cases declined in every region. It may be good news, but more likely it’s because health departments ended the week early.

This one shows weekly restaurant seatings from OpenTable, comparing this year to 2019. After the April/May shutdown, it rose gradually to about 60% of last year. Now it has declined back to about 35%. There’s a big spread between states: New York is at 12%, California 6%. Texas and Florida are still near 60%. I don’t know why everyone decided to eat out during Labor Day week.

Last July I divided the largest countries into 5 groups, and made charts for their cumulative confirmed Covid counts. Here are updated global CCCCCCs. All numbers are cases per 100,000 people.

First are the countries that were doing it right back then. Almost all of them are still doing it right. They have very few cases, and economies that are close to normal. The only exception is Tunisia. It’s starting to catch up with Europe.

Next are countries that were just starting to increase in July. Most of them halted the growth, but Jordan, Morocco and Greece are acting like Europe. Some of the poorer countries may have low counts from lack of testing, rather than lack of disease.

The third group is countries in Europe, plus Canada. They had serious early outbreaks, but contained the disease over the summer. Sadly, things got much worse once the weather cooled. Canada and Germany aren’t too bad, but the rest are doing almost as badly as the US.

The fourth group is countries that were just starting to have serious problems in July. They are a mixed bag now. Some are doing OK, but the ones in Europe and South America have growth rates similar to their neighbors.

The last group I called the “basket cases”, with outbreaks that were bad and getting worse. Those in the Southern Hemisphere slowed down as their summer hit. Those with disease-friendly politics became even more baskety. Portugal started zooming recently, similar to the rest of Europe.

The countries with the most per-capita Covid cases now are #1. Czechia, #2. Belgium, and #3. USA.

About 45% of the world population is in places where Covid-19 is no big deal: China, all of East Asia and Southeast Asia, Australia, New Zealand. A few island nations and isolated countries. When a disease is contained, it’s possible to keep it that way. Though it’s much harder when neighboring countries don’t have it under control.

About 5.5% of people in the US have been infected so far. Keep in mind that it takes roughly 80% to reach ‘herd immunity’. Take the pain of the past 10 months and multiply it by 15 to get there naturally. It’s why we need vaccines.

Dennis Kolva
Programming Director

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

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