Goldenseal Pro: QT Creator (Aug 24)

In the movies, programmers type hundreds of code lines at a furious pace. Then they hit a button, and it saves the world/hacks into the FBI/some other dramatic theme.

There may be non-movie programmers who can program like that, but I’m not one of them. I’ve never met anyone who can do it in real life, either. We mortals spend 10% of our time writing a few lines of code (slowly). Then 90% figuring out why it doesn’t work. To help with that, we use an IDE (Integrated Development Environment). It’s a text editor that also runs the software, with tools for debugging.

A productive day of programming might have 100 cycles of write/run/debug. Multiply that by 100s or 1000s of programmer-days, and it’s almost like being married to the IDE. It’s as big a choice as which programming language to use.

For Macintosh, almost everyone uses Xcode: free software from Apple. For Windows, the main IDE is Visual Studio: free software from Microsoft. Both are OK but not great. I think a competitive environment would produce better quality IDEs, but nobody can compete against big-company and free.

QT comes with its own IDE: QT Creator. This past couple weeks, our staff has been migrating Goldenseal Pro into it. I have been cautiously skeptical about QT Creator, mostly because QT itself is a confused mishmash. There is a free, open source project, and also a company making a living from a commercial version. It’s an odd combination that could end up better then having huge corporate overlords, or it could be worse. Still too early to tell which it is.

Running code in an IDE is a three step process. First there’s a compiler, which checks everything for errors, and gives warnings for code that is suspicious but not deadly. If no fatal errors turn up in the compile step, the IDE then links everything into an app, and runs it. For step three you use the app, and see if it works right. If not, the debugger will step through the code bit by bit, so you can see if it’s working as expected. A fix might take minutes, or days.

Today we just finished getting Goldenseal Pro to compile. It meant eliminating about a thousand errors, mostly caused by old, obsolete code. Some could simply be tossed. Some could be rewritten immediately, with minor changes. The rest is just bypassed for now, until we see whether it’s needed or not.

The next step is pretty quick: fixing link errors probably won’t take more than a day or two. Then we start the long process of getting it all to run properly. For MFC my first guess was a year for that. It’s also a reasonable guess for the QT version.

Overall, QT Creator has its quirks, but it seems to function OK. I think our staff will get used to it.

Dennis Kolva
Programming Director

Roofing, Risk & Covid (Aug 18)

I dropped out of Cornell in 1971, bought some land, and started doing odd jobs. One of the first was at minimum wage, for an old geezer who hired me to put roll roofing on his gambrel barn. He sat in a wheelchair at ground level and talked me through the whole project, step by step. It was all done on old wooden ladders, with a few patched rungs. I was terrified the entire time. Thinking back, there was good reason to feel that way.

Right now I’m re-roofing my own house. I bought some good fall protection for the job, but then decided even that wasn’t enough. So, now there is a comfy scaffolding platform at the eaves, with safety rails. It’s almost like working at ground level.

These days, the risk that scares me most is not falling and dying. Something less could easily be worse: serious injuries, massive hospital debt, chronic pain, permanent loss of mobility. It’s also a matter of comfort. As a builder/remodeler I often worked on roofs with just a safety rope around my waist. Back then I woke up all the time from falling dreams. Now that I do construction more safely, they are very rare. It’s nice to sleep well at night. Less working at odd angles = less back pain. Thank you OSHA.

BTW someone mentioned the unsafe angle of the orange ladder. It’s a support slide for 17 foot roof panels, raised with a rope winch via a pulley at the ridge. Humans use the 3 small ladders inside the frame.

The same risk calculation plays out for Covid-19. What scares me the most is a long hospitalization, then chronic lung damage and piles of debt. Even a mild case still means two weeks of quarantine, boredom and worry. Masks and social distancing are inconvenient, but much less so than what they prevent.

Many colleges that reopened are seeing outbreaks. Cornell and other local schools still plan to open on-site, so I am very worried about the next few months. It inspired me to start building a Covid risk estimator, using Microsoft Excel. It will help for personal decisions.

The process is similar to construction estimating: break things down into smaller pieces, calculate each of those, add them up. For construction, the components are scaffold setup, square feet of metal roofing, skilled labor. For Covid-19, it’s risky environments, and time spent in each. Add up the construction costs and you get a dollar amount. Add up life in 2020 and it’s an estimate of inhaled virus particles, and odds of getting sick.

Turtlesoft got its construction estimating data from our own projects. Covid-19 will be trickier. There’s a fair amount of useful data out there, but it does not translate so easily into virus per hour.

A basic problem for any estimating system is accuracy. Our construction unit costs were calibrated by matching them to actual costs for our remodeling projects. Then we refined them with feedback from users. For Covid-19, I’ll run it on a few case studies like the choir practice in Seattle, and tweak the values so it hits on the nose for those. County case counts and cell phone location data from the Social Distancing Scorecard will also help, especially from back when nobody wore masks.

This is not a rush project, but it ought to come together over the next couple weeks.

Dennis Kolva
Programming Director

Goldenseal Pro & QT (Aug 10)

Our staff planned to spend the summer learning QT, but we soon discovered that it is very similar to other GUI frameworks we’ve already used. Much less to learn than expected. It’s time to jump right in.

To make the first steps easier, we cheated. Last week a subcontractor coded up the basic windows, using screen shots from the Cocoa version that we abandoned last year. He is a QT expert, so it only took a few days. The app runs on both Mac and Windows, and it looks pretty decent.

It’s nice to work with a framework that is based on modern C++. Apple’s Cocoa and Objective-C were just too quirky and weird. Microsoft’s MFC was far too old, and their new WinUI is still just vapor.

Right now we are checking the code, and deciding how to link in our existing accounting and estimating. The biggest challenge is figuring when & where to work on Goldenseal Pro. We definitely can’t subcontract the whole thing. Tried that once and it went nowhere. We know our own business software better than anyone, so it makes sense for our own programmers to do the work.

Problem is, Cornell and Ithaca College both decided to open in-person this Fall. Students are already starting to move in. Many are walking around without masks. Their parents are even worse. Some have come from states with many active infections. It makes life challenging for those of us over 60.

Even worse, the TurtleSoft office is in the densest part of town, sharing a four-story wooden stairway with nine other offices. Everyone shut down in March, but most are reopening gradually. People walk the halls and use the shared bathrooms without masks. The building dates from about 1890, so there is zero ventilation inside. I’m still trying to figure how to cope.

Personally, I maintain work/life balance by not having computers or Internet at home. That may need to change.

Meanwhile, I’m in a re-roofing groove. Just moved the scaffolding to finish the last bit on the east side of my house. The west side is more complicated because it has pipe flashings, rusted-out gutters, plus plans to add a couple skylights. The construction project will finish some time in September.

This early phase of software development requires plenty of head-scratching, design thought and planning. It probably won’t suffer much if it gets limited attention over the next month or so. As days get shorter and the weather grows worse, it will be easier to slither into a coding frenzy. Somewhere or another.

It’s still far too early to even guess at how long this software project will take. It’s the third attempt. Maybe we are getting better at it.

Dennis Kolva
Programming Director