File Formats (Apr 23)

Back in 1994 I made detailed blueprints for my current house: enough to get a building permit for the rehab work. Now that it’s for sale, I wanted to show the plans as a selling aid. All the construction project files were still there in an old backup, but nothing would open the drawings.

I don’t even remember which app created the plans. Maybe MacDraw II, maybe MiniCAD. Definitely nothing that runs on current Macs. There is still one laptop here from the early 2000s, but nothing on it would open the files. All the older hardware died years ago.

As developers, Turtlesoft has had a hard time keeping up with changes on the Macintosh. It’s also a problem for plain old users. When an app dies, so does all the data that it knows how to unlock.

I’ve tried out a few simple CAD programs to whip out plans, both for the current house and the probable next one. FloorDesign2 seems like the best so far. However, it uses its own file format. You can print and then save as pdf, but the details won’t transfer to any other CAD apps.

Some types of data do have universal formats. For text, there is plain text (.txt) and rich text (.rtf), which many apps can read. Spreadsheet data translates well as either tabbed text, or comma separated values (.csv). Page layouts can use either .pdf or .html. Databases often uses SQL.

In addition, some apps are so dominant that other software is forced to support their file format. Excel and MS Word are that way. QuickBooks aspires to that role, at least for add-ons. AutoCAD may do it for higher-end CAD. Unfortunately, many apps have their own unique data formats, and it’s difficult or impossible to move it elsewhere.

I don’t know if there is any good solution for this, except for keeping old computers around. They seem to last longer if used regularly.

These struggles also apply to our Goldenseal software. You can export any data to a text file and then open it in Excel. However, there’s no easy way to move all the accounting details to some other app in a single step.

The transfer problem works both ways. We wrote code to import from QuickBooks, but it can only translate some of the data from their export file. The translator brings in all the account setup details, but not purchases, bank transactions or job costing. The two formats are too different. Importing from any other accounting software would be even harder.

One issue for accounting software like ours is security. Having the file format be too accessible is not a good idea. Too much risk that data will be changed or stolen. The Goldenseal file format is not encrypted, but viewing the raw file data is not very useful. Even if someone clever had access to your computer, it would take many hours for them to figure out how to, say, find and change a paycheck amount.

If you are really worried about that risk, you can encrypt the whole hard drive, and protect everything on it. All of the fraud problems we’ve heard about from users have come from employees who could just sign on and enter stuff the usual way. Preventing that kind of fraud requires careful use of password access, and occasional audits by the owner or their accountant.

An employee who enters data should not also be reconciling bank statements. Having a second set of eyeballs on the money adds a ton of security.

Dennis Kolva
Programming Director
TurtleSoft.com

Covid-19 in New York #7 (Apr 14)

This chart shows the local experience with Covid-19 over the past 13 months. Blue is number of active cases, yellow is number in hospital, red is cumulative deaths. The last two are 10x to make them more visible.

There was a bump after every major holiday. Even Halloween. The most recent was mostly Cornell students after Spring Break.

That first blue bump in March/April 2020 now seems downright puny. Of course, NYC and a few other places had a terrible time then. The spare capacity here saved lives. Local medical staff took a bus down to help. Some patients transferred here.

I got the J&J vaccine more than a month ago, but haven’t changed behavior much. The chart explains why. Almost 30% of local residents are fully vaccinated, and over 50% have taken one jab. But active cases and hospitalizations are still worse than anything before November. It’s not over yet.

In the rest of the US, the situation is similar. New confirmed cases are off the winter peak, but still higher than last summer. Most regions are showing a small fourth surge.

Deaths have fallen off faster, probably because older people were vaccinated first. It’s already better than last summer. These days, Covid-19 is mostly a young people disease.

BTW the green bump is because Ohio changed the way they classified Covid deaths, and suddenly added 5,000.

Covid-19 probably is winding down. Unless something dramatic happens, this will be my last post on the subject. It has been an interesting ride. I sure hope we are better prepared for the next one.

Dennis Kolva
Programming Director
TurtleSoft.com

Real Estate (Apr 2)

My house is getting ready for sale. I’ve also started looking at places to buy. The goal is to make both happen at the same time, and not be homeless in between.

For buying, Zillow and Realtor.com are fantastic. Put in the right filters, and you can see a map with everything that matches. I wish it existed for the three other times I bought property. Real estate agents are still doing business as usual, but I think it’s an industry that soon will be disrupted by technology.

As a remodeler, I always talked directly with clients. We negotiated prices and talked out the details. It worked well. A few bigger jobs had an architect involved, but they were not much different than subcontractors: another expert handling their part of the project.

Real estate is very different. Around here, there is a listing agent working for a 3% commission. They are supposed to look out for the seller’s interest. Then a separate buyer’s agent getting their own 3%. It’s more like a lawsuit than a sale.

Usually I try to look at properties with the listing agent, since they know more about the property and the seller. However there’s a fixer-upper Victorian in Waverly NY that had to be done via buyer’s agent. Questions take about a week. I ask the buyer’s agent, who asks the listing agent, who asks the seller. Then it comes back the chain. Often so garbled that it’s not even useful. Three people eager to make a sale, who might be lying.

Aside from the communication issues, those 3% cuts are big chunks of money. They fall from the sky and land on agents almost randomly. That creates all sorts of perverse incentives. It turns some people into assholes.

Last weekend I booked to see a different Waverly Victorian at 2 PM Sunday. The listing agent planned to be out of town, so someone else was going to show it. An agent called me Saturday night. I incorrectly assumed he was the replacement, even though he mentioned the wrong address. Rather than clarify, he got the appointment details from me and said he’d show it. Then he called the listing agent and booked for 1 PM. Then texted me to say the time had changed. He also did some web stalking: looked up my house in the tax rolls, prepared a detailed sale analysis, and spent most of the visit trying to sell me on having him list it. The scam fell apart when I got a call at 2:15 from the original agent, wondering why I didn’t show. Yuch.

Having agents involved doesn’t seem to add 6% of value to real estate selling. So, I’m going to try a FSBO (for sale by owner). I’ll probably have to pay a buyer’s agent. Zillow is very aggressive about pushing them. But maybe I can talk directly with buyers and, you know, figure something out. I’ve sold 2 properties out of 3 that way, and the sales went much more smoothly than the one with an agent.

This is kind of an experiment. I’ll handle the sale the way I think it should be done, and see what happens. There’s already a web page. House for sale in Ithaca NY. Pix, videos, lots of detail. For the next 2 or 3 weeks it will be a work in progress. The house is on Craigslist now. It will list on MLS and the realty sites when there are more photos and videos, probably via Houzeo.

There’s a little construction work still undone, but mostly what’s left is sorting and boxing 27 years of accumulation. Feels good to get everything into better order. There’s already a Home Depot bin full of assorted door and shelf hardware. Another with plumbing. Electrical will need two of them. One bin is nothing but hammers.

Meanwhile, I kinda won’t mind when technology disrupts the real estate biz.

Dennis Kolva
Programming Director
TurtleSoft.com

Goldenseal Pro Progress: Resources (Mar 23)

Goldenseal estimating and accounting software is built from three components. There is C++ source code that runs business functions and the user interface. There’s construction accounting and estimating data in the starter files. And in between, there are resources: text, layouts, icons and other program details.

The source code is compiled into machine language, with no easy way to see it. The estimating data is totally visible and easy to change. Resources are in between.

In the original Goldenseal for Mac, resources were built into the app file. Anyone could use an app called ResEdit to change them. One user actually converted all the text to Spanish. Other changes were possible if you hacked the right resources. Sadly, ResEdit never made it out of Mac OS 9. It was still possible to hack Goldenseal while it ran on PPC Macs, but the switch to Intel zapped all user access to resources. Meanwhile, the Windows version never had resource access at all.

We are still trying to figure how best to handle resources in Goldenseal Pro.

These days, the Mac hides resources inside what’s called a package or bundle. You can see the resources for any app: just right-click on the icon and choose Show Package Contents from the menu. Early on we wrote temporary code that exported all the resources out of the current Goldenseal, and into the Pro version. Those resources were in the bundle, and user accessible.

Apple really likes XML as a way to store data (it’s similar to the HTML that builds web pages). We tried XML at first, but didn’t like it. The text is hard to read: stuff like <tag><anothertag>blahblahblah</anothertag></tag>. Just one wrong punctuation mark, and it crashes. So, we switched everything to plain text. It’s easy to edit in Excel or TextEdit, and reads are 10x to 100x faster.

Qt also manages resources. It wasn’t hard to re-use most of the existing stuff when we switched over. Unfortunately, Qt hides them somewhere. If you open the app bundle, they aren’t visible. There may be some way to make Qt resources act more like Cocoa, but so far we haven’t discovered the secret.

It may be a moot point. Apple has toughened its security: to run Goldenseal Pro on newer Macs we must jump through hoops to guarantee that the app comes from a legitimate source. That probably means that users can’t hack app resources any more. The changes will be considered a security threat and it just won’t run.

We could store resources and other data outside the app bundle, but that makes installation and updates more difficult. Having just two things to keep track of (app and company file) is simpler for everyone.

Aside from the Goldenseal app, there is also your own accounting data, stored in your company file. One of the first things we wrote was a translator which converts existing Goldenseal files into Goldenseal Pro format. It even makes a few improvements along the way.

There is one piece of data that gets lost in the move: pictures. The current Goldenseal stores them in an obsolete format (PICT) which neither Cocoa nor Qt support. Fortunately, there are websites that convert PICT files to .jpg, .png or whatever. When we launch the Pro version we’ll provide links and instructions so you can salvage any pictures you may have stashed away.

Dennis Kolva
Programming Director
TurtleSoft.com

Goldenseal Pro Progress: Layouts & Actions (Mar 16)

After two weeks, Custom Layouts is starting to look like something. It loads fields. You can drag them around on the screen. Click a tool, and you can add a new field. The app is already further along than we ever got with the Cocoa version.

Unfortunately, there isn’t any Qt sample code for doing a MacDraw-like environment. We’ll have to create most of the interface from scratch. None of it is real hard to write, but there are many fussy details. Undo in particular is a PITA.

The original Custom Layouts command needed at least one programmer-year to finish. Qt will be faster, but most likely it will take 2 or 3 months to get everything working well.

This stage of programming is a bit like starting rehab work on an old house. Sometimes you have to knock a few holes in the walls, just to see what the guts are like. Then you can get a better estimate of what’s needed. We kinda just did that with Custom Layouts. Now there’s a clear scope of work, and we know it’s doable.

Speaking of knocking holes, I must share a construction tale from an Ithaca rehab project in the 1980s. It was a small, odd house that had been owned by a custodian who worked at Cornell. The new owner wanted to remove a non-bearing wall to combine two rooms. I tried knocking holes to check for wiring, but couldn’t. It was plaster over an old door, with concrete fill behind it, then wood scraps nailed together, then plaster on the other side. Demolition was like an archeology dig through all the random building materials that someone brought home from work. Bricks, putty, roofing tiles, wadded newspaper, grout, tar, woods of all sorts. Too bad YouTube didn’t exist back then, because the demo (or the construction process) would be an amazing time-lapse video.

Anyhow, next on the agenda for Goldenseal Pro is the final untouched mode: action commands (Reconcile, Pay Bills, Deposit Funds, Project Billing, Sales Billing, Write Payroll, Job Costs). It definitely will be hard, because the current code sucks. Giving a complete overhaul to the interface has been on the to-do list for more than a decade.

The rest of Goldenseal uses Custom Layouts to arrange fields on the screen. It makes setup easy for our staff. It also lets users make changes. Action screens currently use a different system that is awkward for us. Users can’t change anything there at all. Since we have to rewrite anyhow, now is the time to switch them over to the Custom Layouts system.

Our staff probably will be working on the two areas in parallel for a while. If it gets too frustrating, we’ll take a break and work on other, simpler loose ends.

Meanwhile, this winter I’ve been doing major interior work on my house. In 2 or 3 weeks it will be ready to list and sell. This area is in a seller’s market for single-family homes, so it probably will go fast. I’m already looking at fixer-uppers to replace it.

The current house was built in 1910, right after the chestnut blight came through. Chestnut lumber was cheap for a while, so they used it for all the trim work. I wouldn’t mind finding another house from the same era. Chestnut looks great, and it’s easy to work with. Too bad it’s now a fossil.

If the next house needs trim or flooring, I’ll put in ash. This century’s cheap hardwood caused by a major species loss.

Unfortunately, the whole selling, buying and moving process may cut into programming progress for a couple months. We’ll see.

Dennis Kolva
Programming Director
TurtleSoft.com

Covid-19: Mutations (Mar 8)

Life is not easy when you’re a coronavirus. If you can even call it a life.

You’re tiny. Too small to see in a microscope. Rock bottom on the food chain. You can’t move, and you’re delicious. Rich in protein, plus tasty fat and sugar. Happily snarfed up by bacteria or dust mites. Easily killed by UV, or just about anything else.

You only have one trick: sneak into the right vertebrate’s cells, and you’ll reproduce like crazy. But even that’s just temporary. In days or weeks, their immune system will learn how to stomp you. Eventually, the entire species will be resistant. The only way to survive long-term is to mutate, and change enough to infect again. Or better, jump to a new species and start over with fresh victims.

We are already seeing that with Covid-19. New versions keep popping up. Some reinfect people who survived earlier versions. Some are jumping to minks, cats, other species.

This is yet another reason why it’s a whole lot better to nip contagious diseases before they become pandemics. Fewer infected people means fewer mutations, and lower risk that the disease recurs for decades. SARS and MERS both were caught in time. Now SARS is gone forever. MERS is gone if you don’t hang out with camels.

It’s way too late for Covid-19 to ever be contained. The question is, what happens next?

For the short term, vaccinations are starting to kick in. They will help slow down the spread. Life will probably be close to normal this summer.

Unfortunately, Covid-19 will keep making new mutants. Most likely, there will be reinfections and outbreaks for years or decades. It’s established too deeply, now.

The only good news is that co-evolution is likely to happen. A virus spreads faster when their carrier is out and about, not deathly ill. If they kill the host, they also die. That means mutations and natural selection gradually make a disease less serious (but faster-spreading).

Warts are the ideal end point, from the viral point of view. Common colds are almost as good: infect everyone, rarely deadly. There already are four coronavirus strains like that (229E, NL63, OC43 and HKU1). Covid will eventually settle down to be the fifth.

Sadly, the process of becoming less deadly takes years, and it’s not 100% reliable. Folks probably will need an annual Covid booster to go along with the flu shot, at least for a while. Face masks may be a long-term reality.

In 2009, the US launched the PREDICT program. It set up a global network of labs and researchers to act as an early-warning system for pandemics. It cost about $20 million a year. Funding for that and other international health programs was cut in mid-2019. That was a 5 or 6 trillion dollar mistake just for the USA.

In this century, there have been 3 serious Coronavirus outbreaks: an average of one every 7 years. Fatality rates of 34% (MERS), 10% (SARS) and about 1% (Covid). Toss in Zika and a couple of Ebolas, and it’s one outbreak every four years. That’s not even counting influenza and other random diseases.

Humans are a densely packed and mobile species. Pandemics are nature’s way to fix that sort of overpopulation.

We probably should do more stuff like PREDICT, not less. Along with the sickness, dying and inconvenience, pandemics are very expensive.

Dennis Kolva
Programming Director
TurtleSoft.com

Goldenseal Pro Progress: Reports & Layouts (Mar 1)

Our estimating and accounting software has five different modes. Three of them are now working: data entry, Find command, and reports.

That doesn’t mean the project is 60% finished. Our rule of thumb: this stage is the first 1/3 of the work. The second 1/3 is finishing all the little details. The final 1/3 is testing and debugging.

Building software is similar to building a house. We did foundation work last Fall. Now three wings out of five are framed up and closed in. The app is starting to look like the architect’s drawing, but it’s not too late to tweak the floor plan. There is still plenty of utility and finish work to do.

It took a couple months to get the basic app window set up. Data entry screens needed a couple more months. Find and reports only required a week or so apiece. The two remaining modes (layouts and action screens) will be somewhere in between.

While working on the new Qt code, we often step through the old, partly-finished Cocoa version to recall how it works. No sense in re-inventing any wheels. If there’s nothing useful in the Cocoa app, we can also go back and step through source code for the current Goldenseal.

Back when we stopped work on the Cocoa version, I estimated that it was 1/2 to 2/3 complete. However, stuff keeps turning up that was never even started. That estimate probably was too optimistic. While struggling with Cocoa every day, I guess it was hard to see what a morass it was. Not seeing the forest for the trees.

Last week our staff worked on Reports. To see a report in the current Goldenseal, you choose something from the Reports menu at the top of the screen. It’s way over on the far right, so people often miss it. In Goldenseal Pro, there is a Reports button right on the main window. It makes navigation easier. From then on, the interface is similar.

We just started on the 4th mode: Layouts. It lets you change the appearance of data entry screens, printed forms and reports. In the current Goldenseal you get there via Options–Custom Layouts. Another nifty feature that is tucked away and hard to find. In Goldenseal Pro, it also gets a button on the main screen.

Custom Layouts was one of the first components we built in the current Goldenseal, back in the mid-1990s. It allowed the project manager (me) to design the app, while the programmers were writing C++ code to make it work.

It would also be nice to have Custom Layouts right away in Goldenseal Pro. Then we can adjust the current layouts for bigger screens.

Apple has sample source code for a drawing app that is very similar. We had high hopes it would make the work easy for the Cocoa version. Unfortunately, the sample code was old and unusable. As the project bogged down, we finally decided to skip Layouts entirely for version 1.0.

Based on results so far, I am optimistic that Custom Layouts will be easier to create in Qt. We’ll know better about that in a few weeks.

Goldenseal’s layout mode is similar to the MacDraw program on early Macs. That app never made it to OS X. Too bad, since I had useful data in MacDraw files: house plans, travel maps, flow charts, ad layouts. There was never a great replacement.

If Qt is not too much of a struggle, it will be tempting to spin off a MacDraw clone some day.

Dennis Kolva
Programming Director
TurtleSoft.com

Goldenseal Pro Progress: Monopolies (Feb 21)

Ithaca has five new-car dealerships scattered along the main drag. Years ago they were independent, but one of them started to buy up the others. Now they’ve gobbled all five, and are expanding into nearby towns and cities.

There’s a lot to be said for owning a monopoly. You can charge your customers more. You can pay less to your sales and repair staff. Where else are people gonna go? Even better, you can use the excess profit to expand and/or purchase the competition, and get even more monopoly. It’s a positive feedback loop. A chance for exponential growth. One reason why the rich get richer.

Doing business with a monopoly? Not so great. Fortunately, there still are independent repair shops in town. It’s also possible to drive an hour and get dealer services for 1/2 to 2/3 the local price. Both those options may dry up if the trend continues.

Sadly, more car monopoly is likely: dealerships are consolidating everywhere. The local group isn’t even in the top 150 for size. Their industry is following the same path as banks, auto parts stores, lumber yards. However, the difference is that auto dealers already have franchises: a local monopoly for one or a few brands. Merge them, and it’s like owning every bank in town. Hedge funds must be drooling.

Monopoly is a problem we face as a construction software company. TurtleSoft is a minnow swimming in a sea owned by trillion-dollar tech monopoly sharks.

The Apple/Microsoft desktop duopoly doesn’t mean higher prices for us. In fact, their development tools are free. The problem, I think, is a more general arrogance. It happens when wealth and power get concentrated. No competition, so no need to make their tools excellent. If it takes 4x as long to build for the platform, well, that’s just the cost of entry. Suck it up.

Plain old incompetence may also be part of the problem. Too many pointy-haired bosses in the decision chain. Or maybe there is something else at play. Minnows can’t easily understand sharks. All they see is skin, teeth and turbulence.

For whatever reason, we wasted more than 4 years with Cocoa/Xcode from Apple, and MFC/Visual Studio from Microsoft.

I did a post-mortem recently, looking back at all our past successes and failures. They very much correlate with monopoly.

TurtleSoft started with MacNail, estimating software based on Excel spreadsheets. It was back when Microsoft was the scrappy underdog struggling against Lotus 1-2-3. Later we released BidMagic, made with Apple’s HyperCard when they were the scrappy underdog competing against IBM, DOS and Windows. Next came Goldenseal, built using CodeWarrior from Metrowerks. They were the smallest, scrappiest underdog of them all. CodeWarrior was also the best tool our staff has ever worked with.

In all three cases, I think the scrappiness led to excellent programmer tools. They had to be amazing, or die. The end result for us was being able to create software in a reasonable amount of time. The tools were satisfying to use. Almost fun. Definitely productive.

Sadly, all three of those tools lost their greatness prematurely. Excel grew bloated after Version 3.0, with a bug that randomly zapped code in our macro sheets. HyperCard stagnated and soon disappeared. Metrowerks was absorbed by Motorola. After a few years they butchered CodeWarrior and sold its organs.

Scrappiness does not guarantee great software. Over the years we’ve tried at least a dozen development platforms that didn’t work out. Some came from big fish, but most were made by minnows that later died. It’s always a gamble.

Fortunately, Qt is proving to be like the 3 best development tools we’ve used. Every week it lets our staff make serious progress on Goldenseal Pro. Things are really cruising.

In the future, TurtleSoft will be less tolerant of BS from the trillion-dollar companies. They lost something important, getting to be so big.

Looking at the bigger picture, monopolies may have grown too powerful. There’s too much concentration of wealth and power these days. Too much arrogance and incompetence.

It may be time again for some Teddy Roosevelt-style monopoly busting. Clamping down probably won’t help car owners around here, but at least it can rein in the biggest of the sharks.

Dennis Kolva
Programming Director
TurtleSoft.com

Covid-19: Vaccines (Feb 15)

From 2008 until 2013, I went back to Cornell part-time to finish up a BA in Molecular Biology. It’s an interesting field that didn’t even exist during my first shot of college. Mol Bio kinda squoze into the gap between Biochemistry and Genetics, with big help from the Human Genome Project.

Molecular biology is the reason you can get vaccinated for Covid-19 now. Previously, it took a minimum of 4 years to develop and test a vaccine. What sped things up is mastery over the big molecules of life: DNA, RNA and proteins.

Derek Lowe is a molecular biologist who blogs for Science magazine. He’s an expert on diseases and vaccines, but he writes for mere mortals. If you want to make intelligent decisions about Covid-19 vaccines, here are links to some of his recent posts. They are way better than anything you’ll ever see on Twitter or Facebook.

B Cells, Infection & Vaccination
Pfizer/Moderna Vaccines
J&J and Novamax Vaccines
Oxford/AstraZeneca Vaccine
Vaccine Production Myths
Why Lower Efficacy Isn’t That Bad (Vox)

I’ll try to summarize vaccine results so far, in very over-simplified form.

The first Covid-19 vaccines approved in the US were RNA vaccines from Pfizer and Moderna. Both require two jabs, with about 94% efficacy at preventing infection. They use mRNA that includes the code for Spike protein. It’s stuffed into a tiny sphere of fats, cholesterol and probably some proteins. Composition and size similar to a Coronavirus, or like LDL “bad cholesterol” plus RNA. When injected, the nanoparticles are absorbed by muscle, lymph and liver cells. Inside them, the mRNA hooks up with a ribosome, which uses its sequence to build Spike proteins. Some Spikes leave the cell, float around, and trigger the immune system. Later, a real Coronavirus comes along, but immune cells recognize its spiky bits and send in the killers. Protected!

The Oxford/AstraZeneca, Johnson & Johnson/Janssen and Sputnik vaccines use a different approach. Instead of nanoparticles, they deliver via a modified Adenovirus (a mild virus that causes sore throats, pink eye etc). The DNA code for Spike is spliced into its genome. After injection, the virus infects some human cells. Its DNA sneaks into their nucleus and is transcribed into mRNA. That exits the nucleus, then follows the same path as the RNA vaccines: ribosome to Spike to export to immune response.

Of the 3 DNA vaccines, Sputnik (2 jabs) has excellent results, but probably won’t be available in the US. J&J (1 jab) is mediocre at preventing infection, though it’s OK at blocking serious disease and death. Oxford (2 jabs) is somewhere in between. The lower efficacy may be because some people are already immune to Adenovirus: so they kill it prematurely. Sputnik uses two different virus forms, which may explain its better performance. J&J and AstraZeneca are testing variations that may also be more effective.

Novamax takes a third approach. It cuts to the chase, and injects Covid-19 Spike protein directly. The Spikes are manufactured by moth (!) cells. How cool is that? To produce the vaccine, the DNA sequence for Spike is spliced into a virus genome. That infects the moth cells, which then produce Spike via the same path as the DNA vaccines. The protein is purified, then attached to a fatty nanoparticle. To the immune system, it looks a lot like a Coronavirus. Trials in the UK showed 89% efficacy (2 jabs). US Phase 3 trials started in December.

The DNA and protein vaccines have a big advantage: both molecules are more stable than RNA. They only need fridge temperatures for distribution instead of freezers (Moderna) or dry ice (Pfizer).

As an old dude, I’m eligible to be vaccinated now. The original plan was to wait for J&J vaccine data before deciding. That quickly became moot, since there’s a huge backlog. It will be a while until I can get any vaccine regardless. By health and habits I’m low-risk, so it won’t be too bad to live the pandemic lifestyle for a few more months.

New York vaccinated nursing homes and health care staff first. Now the priority is essential workers and teachers. That approach is already having an impact. There were 20+ daily cases in the local hospital for the month after Christmas, but it’s down to 3 or fewer. Surrounding counties are also doing much better.

At the moment I probably would pick Novamax, if its US trials are similar to the UK results. I probably already have Adenovirus immunity, and it makes sense to save mRNA vaccines for the next pandemic. However, the decision is barely more than a guess. There may not even be a choice of vaccines.

The big picture for humans: the success of all these vaccines is extremely good news. They’re fast, and will be even faster to release in the future. Minor DNA/RNA/protein tweaks to keep up with mutations will only take days, and won’t need such a long approval process. All three of the methods will help fight other diseases. And that’s not even counting newer techniques like CRISPR that are gradually being developed.

Looking back ten years from now, Covid-19 may seem like a wonderful disaster that launched huge medical advances.

Dennis Kolva
Programming Director
TurtleSoft.com

Goldenseal Pro Progress- Smart Fields & Qt (Feb 8)

Accounting software is all about accounts: the people and companies you do business with. There may be hundreds or thousands of them. MacNail Accounting, our first attempt at job costing software, gave everyone a number. Data entry meant using a printed cheat sheet (or memorizing numbers). It was easy to make mistakes.

For Goldenseal, we found a better way: clairvoyant fields. They pop up a list of items when you start to type, so you can just use regular names for your accounts. Usually you type a few letters, and get what you want. Worst case, you scroll through a list or use a pop-up button.

Goldenseal Pro still has the same thing, but with a name change to smart fields. They are an important part of our estimating and accounting software.

For example, when you enter a Material Purchase, smart fields link it to a vendor account, sales tax rate, payment method and payment terms. They allocate job costs to a project, cost category and subcategory. Smart fields may also tie the expense to an allowance, bid, change order, room, unit or project phase.

Goldenseal does useful stuff with all those links. It sets up Accounts Payable, or pays the vendor instantly. It gives you expense reports and job cost reports. It does time & materials billing for projects. If you include an itemized breakdown, it updates material prices for future estimates.

You may interact with smart fields hundreds of times per day. Because of that, they need to perform well. It took some effort to make that happen in the current Goldenseal.

Last week we used the Qt framework to set up smart fields for Goldenseal Pro. After a couple days they already look great, and perform properly.

Smart fields are the last interface detail we were worried about. As a tool for finishing Goldenseal Pro, Qt has aced the test. It’s going to build the new 64-bit interface on a reasonable schedule. Wheee!

For the short term, the question is: how long will it take to finish? We don’t have enough experience with Qt to answer that yet. It took 3 years with Cocoa to get roughly half to 2/3 done. So far, programming with Qt has gone about 4x faster than Cocoa. If that math continues, the best guess is another year or so.

One uncertainty is Apple’s new M1 chip. We won’t have to change our code for it, but the Qt framework needs an update to run natively there. Qt is mostly open-source, and folks are working on M1 compatibility now. They probably will finish before we do. It helps that TurtleSoft doesn’t use anything fancy in Qt— just the basics. BTW that need to rewrite for M1 is a big part of why we decided to halt Cocoa development. It was last straw on camel’s back.

For the medium term of five to ten years, my biggest concern is that the Qt Company probably will get bought. It could be swallowed by any big fish that sees strategic value in them: Apple, Google, Microsoft, Oracle. Nokia owned Qt for a while, and maybe they will re-buy before they get swallowed. With luck the actual Qt framework won’t suffer too much from assimilation, so we’ll get a 10 year lifetime or more.

For the real long term, we’ve found out the hard way that long term planning does not exist for software. It’s risky to rely on any small or medium-sized company: they often disappear. It’s risky to rely on the big players: their frameworks and tools often disappear (or become useless). Maybe things will settle down some decade, but probably not soon.

Dennis Kolva
Programming Director
TurtleSoft.com