Flow State (Mar 24)

You probably have experienced flow state: also known as “in the groove” or “in the zone”. You cruise along doing something with total focus. A lot gets done in an hour. It’s not just a work thing: people skydive or downhill ski to feel that flow for a while.

Software development relies on flow state. There’s a lot to keep track of, and it’s hard to get much done without 110% brain power. Intense focus is fragile, and it doesn’t take much to break it. Programmers often complain about how bad interruptions can be, because it kills concentration and flow. Recovery can take 15 minutes or more.

TurtleSoft started having problems last November, when a dance studio moved in the the office suite below. Not to mention a day care center two floors down. It’s an old building, transparent to noise. Now there is music, voices and tap dancing at random times, loud enough to break flow.

Progress on the new accounting app still continues, but it’s lagging. Rock and roll in earphones helps some, but it’s too distracting for flow state.

TurtleSoft started in 1987, in a rural farmhouse. It was quiet. Flow could go on for hours. After the business took off, at times there were five employees squeezed into the spare bedroom and hall. Not great for flow, so TurtleSoft moved to downtown Ithaca circa 1993. More space, and no need for employees to reverse-commute.

There always were relatively cheap (and quiet) offices for an online business, but I think that may be over. Between the Internet and Covid, there’s less reason for people to rent space just to sit at a computer. Office buildings are shifting to other uses that aren’t as quiet.

TurtleSoft will soon go back to its roots, and become a home-based business again. Not rural: it will be nice to have things within walking distance. Ithaca has become too pricey, so it’ll be a fixer-upper in a nearby town.

The move is already underway. Most of the office is now in boxes, and my house was listed yesterday.

Expect chaos for a couple months during the move, then it’ll be back to easier flow state and faster progress.

Dennis Kolva
Programming Director
TurtleSoft.com

Fonts (Mar 13)

The current Goldenseal code handles fonts like it’s the early 1990s. Back then, PCs only had a few dozen fonts, with numbers instead of names. There also is a style byte for text, with one bit apiece for bold/italic/underline/outline/shadow/expanded/compressed/plain text. Three more bytes for text color, alignment and size. It’s all stored in a TextInfo class that’s used in binary layouts and elsewhere.

We started out with the same system in the new accounting software, with plans to revise it when we switched over to text-based layouts. That change is happening now.

These days, fonts are more complicated. There are thousands of choices, so they go by name not number.

Modern fonts are fancier in other ways. Instead of bold, there are 9 possible weights now: from extra thin to extra dark. Italic has 3 options. Expanded/condensed have 9 spacing types. There are multiple underlines and strike-throughs. Outline is long gone. Shadows are more complex.

Font specs are scattered in many parts of the code. The easiest way to find them was to rename TextInfo to OldTextInfo. That produced hundreds of compiler errors.  We set up a NewTextInfo with modern font specs, and gradually switched over.

With that out of the way, fonts look good again. You’ll be able to do slightly fancier stuff with them in the new accounting app.

We’re still working on the best way for you to change fonts. Qt has a built-in dialog that is too simple. We can use the native OS font dialogs, but they are very complicated. We may need to roll our own font-setter that’s somewhere in between. It’s not high priority, so we are moving on to more general testing.

Dennis Kolva
Programming Director
TurtleSoft.com

Layouts, Breakdowns and Onwards (Mar 6)

The past few months, our staff has been futzing with Custom Layouts in our new accounting software. It took longer than expected, but that’s not unusual for software development. The work is almost done.

Last item on the list is breakdown tables. The new software handles them differently, so Custom Layouts does too.

In Goldenseal, many windows have a popup menu on the left with three choices: None, Category, or Item. They let you add an itemized list for estimates, purchases, sales, and other business transactions. Category breakdowns have type-in items, while Item breakdowns show a pop-up list with cost items or assemblies.

That interface has confused many a user. It also was hard to program, because three separate layouts. For example, when you change the popup, data has to jump from one layout to the other. That’s a good place for bugs to lurk.

The new app has just one layout. To itemize, click the Breakdown button: it shows a breakdown table in a separate, pop-up panel. The category/item split is gone: you can enter either into the table.

Last week we got Custom Layouts to edit breakdown tables separately. Double-click on a column to edit the details.

We didn’t want to build all the tables from scratch, so the code reads from the old layouts, then saves the data into text. All that’s left is to read text back.

Meanwhile, TurtleSoft will be moving soon. The are noisy neighbors downstairs, and this building will soon convert from offices to apartments anyhow. Programming will still continue, but the pace may be slower at times, during the transition.

Dennis Kolva
Programming Director
TurtleSoft.com