Computer Guy

Computer Guy
Sunset at DoubleM Systems (DBLM.com), Del Mar, California

Wednesday, August 12, 2026

Kill a bug, birth a bug, at least. One step forward, two steps back.

 


It is well known that one often introduces a new bug when attempting to fix a different bug.  Working with ToBeWise this morning was another of those occasions. I thought it would be helpful to document the lesson.  Here's the interaction:

I pasted this proof of bug into the chat window along with the comment below:

User attachment

Me: another violation of the rule

        (I didn't have to be explicit about how the second line of this insight is word-wrapped or truncated because we have had many previous conversations about how to do it so it looks right)


chatGPT:

7:30 AM
Worked for 3m 17s

Fixed. The cause was horizontal clipping—not intentional truncation. The insight text is now constrained inside the card so it wraps completely.

Me:  I had seen this insight rendered properly recently. What changed to mess it up?

chatGPT:

7:34 AM
Worked for 1m 3s

The regression came from yesterday’s insight-counter work—not from the insight data.

To obtain accurate card-height measurements, I changed the card hierarchy in commit 76d23e9: a normal View became the outer layout container, with the touchable moved inside it. That altered how React Native calculated the text width.

An older style used “stretch plus outside margins.” It worked with the previous hierarchy, but under the new wrapper it allowed the text box to extend beyond the card, where overflow: hidden clipped it.

So yes: I inadvertently disturbed previously correct rendering while fixing the counter. The new fix uses an explicitly bounded width with inside padding, which is safe with the new hierarchy.


Me: that's all well and good, thank you for fixing that bug, but now we have something new cascading from that decision.  Here's what that insight looks like using the app on the Mac, using a version of the software just prior to your fix, using Share/Copy:


Me: and here's what that same insight looks like when displayed on the Home screen:


Me: and here's what it looks like on the author screen:


Me: what we have here are 3 different ways to display the same insight, and it seems to me that there should be only one consistent method. Why should there be such inconsistency?  And why should a simple request to count the cards as they appear on Home screen scrolling require a format change inside the card? Things are getting out of hand here.


chatGPT:

You’re right. Counting cards should never have changed the card’s visual structure, and the three surfaces should share one rendering contract for wording, typography, wrapping, and author placement. I’m mapping the Home, Author, and Share/Copy paths now so I can identify exactly where they diverged and what should be unified—without making another code change yet.

You’re right to call this out. I’m tracing the three render paths and the card-count change separately, because counting cards should never have altered how the insight itself is laid out.


chatGPT:
9:10 AM
Worked for 4m 34s

You’re right. The inconsistency is real, and counting cards should never have changed the card’s formatting.

I found three independent renderers:

SurfaceRendering method
HomeSmallQuoteContainer with Home-specific width, line spacing, and truncation
Author screenQuoteTextAndAuthor with different spacing, width, and selectable text
Share/CopyA separate square-image renderer that dynamically changes font size and line height

That explains the three appearances. Some line wrapping will naturally differ with available width, but the separate typography algorithms, colors, spacing, and sizing are unnecessary inconsistencies.

The card counter was attached by restructuring the Home card so its height could be measured. That changed the layout hierarchy and exposed the clipping problem. It was the wrong boundary: counting belongs in the scrolling-list code, not inside the insight card.

The proper correction is:

  • Create one canonical insight-and-author renderer shared by Home, Author, and Share/Copy.
  • Keep only the surrounding surface different—buttons, branding, and available card dimensions.
  • Use one typography and spacing specification everywhere.
  • Move progress counting entirely into the scrolling-list layer so it cannot affect card layout.
  • Add visual regression cases for this Joshua Brewer insight and the other troublesome long insights on iPhone and Mac.

I recommend the Home card as the canonical visual style, with responsive wrapping when another screen is wider. I have not made another code change yet; another isolated padding adjustment would only add to the problem.

9:14 AM


Me: I think there's another format not being taken into consideration: the "universal postcard" format used for posts to facebook, instagram, x, etc. Is that correct?

9:19 AM
Worked for 56s

Yes—but your first image is the “universal postcard” format. I referred to it too narrowly as Share/Copy. That same 900×900 image is used for Facebook, Instagram, X, copying, and other sharing.

More importantly, the postcard code is duplicated in several components, so even the “universal” postcard could vary depending on where sharing begins.

The complete set is therefore:

  1. Home scrolling card.
  2. Author/detail card.
  3. Universal postcard for Share/Copy/social media.

They should share one canonical insight-and-author renderer. Only the outer format should differ: responsive screen card versus square branded postcard. The wording, font family, relative sizing, spacing, punctuation, and truncation rules should come from one source.

9:20 AM

Me: ok, let's unwind the current card counting scheme completely. then make the Home screen display match the author screen display in all respects except length of the card. This will eliminate one unnecessary set of rules for displaying the insights. The universal postcard is a special case which we can deal with later. When you have Home and Author screen insight layouts identical, except for length, then we'll reopen the card counting feature.

------------------------------------

Comments and Lessons:

The bugs and inconsistencies were uncovered by asking for a feature that was completely unnecessary, but I wanted it anyway (the card counting on the home screen). That seemingly little feature took many hours of AI time, and even more of my time. Although it finally worked, it blew up something else. And now it's going to take more hours to unwind, and to fix the inconsistencies it uncovered. So be careful what you ask for! 

This is the challenge for solo operators. We can do anything we want, and many times that is not what we would do if we were CEO and had to approve a Product Manager's feature request. As CEO, my priority would be to achieve a steady state for the app, good enough to be an MVP, so that some initial product market fit could be tested. As CEO, I would have approved only ugly bug fixes, not inconsistencies, or the whim of a product manager. The only thing that matters is getting user feedback. And that requires getting users. As a solo operator, I can focus on getting users or playing with code, not both.

This is why debugging is so expensive and time consuming. It's important to test everything even though you only "fixed" one thing.  Sometimes, it's quite maddening!

Monday, August 10, 2026

How big is it?

I got curious, so I asked how many lines of code are in the ToBeWise app as of today, not counting blank lines, comments, libraries, databases, indexes, content, etc.  Just code:


In the App Store, Apple shows that the app consumes 63MB of storage total, including content, databases, indexes, and code. 

Of course it's not really important how many lines of code there are in ToBeWise. It's what they do, how they do it, and how well the entire package serves the user.  

That's what really matters and that's what keeps us focused every day.

Software is never done, here's why

I lost track of when I updated TestFlight with the latest version of ToBeWise™and definitely lost track of the individual changes that I made since then, so I asked my AI to update the TestFlight and list the changes since the last version, which was only TWO DAYS AGO:

The latest TestFlight is 80.2.09, following 80.2.08. Please check these changes:

  1. Notification Schedule

    • Changing any schedule setting should immediately start or restart the schedule.
    • The status should go directly to Active.
    • The old Not Started and Changed blocker cards should no longer appear.
    • The Frequency card should show all choices without scrolling.
  2. Get the Most from ToBeWise

    • It should begin with:
      • Why ToBeWise Matters
      • Four Ways To Use This App
    • “Four Ways” should open one card containing all four methods.
    • “Startup Insights” should no longer say “/CEOs.”
  3. Discover list screens

    • “Startup Founders/CEOs” should now say Startup Founders.
    • Lists should have the A–Z / # of Insights selector.
    • Counts should be right-aligned.
    • Sorting should work in both directions.
    • Classical Philosophers and Classical Ideas should have the correct screen titles.
    • Cards should end above the bottom navigation and scroll internally.
    • The elevator bar should be draggable.
  4. Profile information screens

    • Software Notes should have < back in the upper-left and the bottom navigation visible.
    • Privacy Policy, Terms of Service and Origin Story should wrap all lines correctly.
    • Their cards should end above the navigation and have draggable elevator bars.
    • ToBeWise blog should appear after the website link.
  5. My Metrics

    • More compact line spacing.
    • Card remains completely above the bottom navigation.
    • Watch Favorites and Watch Shares counts appear.
  6. Apple Watch and dashboard

    • Favorite and Share a quote from the Watch.
    • After opening the phone app, verify the counts reach My Metrics.
    • The dashboard should show Watch Favorite and Watch Share in both User Summary and Event Log.
    • Mac activity should be labeled simply Mac.
  7. Home screen

    • The Pause button spacing should look balanced.
    • On a Mac, automatic scrolling should stop when another app has focus and resume when ToBeWise regains focus.
So, that list represents the changes in the last two days.  This app was first programmed 10 years ago. You might think that it would be perfect by now. Not. Not ever. There is always more to do. First of all because we learn more by using the software... how to make it faster, more intuitive, simpler, and also because the environment changes continually... the target audience, the platform, user feedback, etc.

It's the law:





Friday, August 7, 2026

Apple Watch improvements

The new app icon looks a lot better on the Apple watch notifications, and that got me thinking about how I always wanted to have a watch app as a companion piece to the iPhone app.

This is step one, which allows Favorite, and Share direct from the watch. Neat.

This minimal update is automatic when the user updates the iPhone app. 

So easy!

---------------------------  Update August 9, 2026

Also updated the Management Dashboard and My Metrics to show watch Favorites and Shares.

Interesting: Apple only allows circular app icon for the watch, as opposed to the round corner square for the other devices.


Thursday, August 6, 2026

ToBeWise™ now aware of its own demise


A little feature I've wanted to add for some time is for the app to check if there is a newer version of itself available on the App Store, and if so, offer to download it now.

It's surprising how many users are getting by with older versions, and it kinda pains me to know they will not be able to use the neat features I'm adding.  

Starts with version 80.2.00, available soon, now waiting for review in the app store.

So this new feature is the one to rule them all.  (all future features)


:) 

ToBeWise™ now available as a Mac app

 In another miracle of modern technology, our favorite app is now available to run on the Mac.

The only caveat is that the Mac is Apple silicon, not Intel.


Search for tobewise on the App Store on your Mac and click the dropdown



Move the slider to the right, highlighting "iPhone & iPad Apps" and Bingo!





New 5 Star Review

 


Just can't ask for a better review.

Wish I knew who "Surfer dude" is so I can thank them.