Codebook 5 - What to Test and Requested Feedback

Hi @cspeckrun,

I’m sorry to hear about the freeze on your local machine. It appears as if the freeze may have occurred within a drag/drop operation. In any event, it is probably prudent to perform a File → Exit Application from the main window, or the notification area icon in the task bar at this point in time. Once you restart Codebook for Windows and login, would you run the integrity check feature (located within the File menu) and report back what it finds. Are you missing any pending edits?

@cspeckrun

Thanks for posting with this feedback on the beta usage.

There have been some adjustments to this behavior on Codebook for iOS in the Codebook Cloud Beta version. I’ll outline the general overview below:

  • If an automatic sync is in progress when the application resigns active (i.e. swipe up/hit the home button to leave Codebook) Codebook will attempt to complete the sync which is in progress for the next 10 seconds or so (slightly less than the amount of execution time an App is allowed by iOS when resigning). If the sync doesn’t complete in this timeframe then it will be aborted.
  • Codebook for iOS will now also attempt to automatically sync while it’s in the background. The times which it’s “woken up” to attempt to automatically sync are dictated by the iOS operating system and determined by many factors (i.e. predictive based on when you usually use Codebook, how many resources your device has available, among other metrics)

These adjustments are great for smaller changes which can sync relatively fast. For larger changes (like multiple large images) Codebook won’t always be able to complete the automatic sync when resigning active (swiping up) or when attempting to sync in the background (we’re only allotted a certain amount of execution time when it’s “woken up”). When it doesn’t complete the sync when executing in the background, Codebook will send out a notification asking you to open the main Codebook application to allow the sync to complete.

All Codebook platforms should periodically check for new changes from the Codebook Cloud server even when no data has been edited locally. When Codebook is in edit mode only any platform (i.e. you’re in the process of editing an Entry/Field/Category/etc.) Codebook will not automatically check for new updates from the server. Once you complete editing (i.e. save/end editing), it will look for new changes, download them (if any exist), apply them, and then push up any local changes it has pending.

Codebook on each platform displays a status of what’s occurring as far as automatic sync protocol/steps. This status is located in different spots on each platform:

  • iOS: [More] > Sync View (footer of the options section).
    • iPhone: Sync toolbar icon will rotate when downloading/applying/uploading changes
    • iPad: Sync side navigation cell icon will rotate when downloading/applying/uploading changes
  • macOS: Lower right hand corner of the main window (hover to display tooltip with details)
  • Windows: Lower left hand corner of the main window

In addition to these status icons/messages, each platform should also notify you when it detects a situation where a “longer sync” may occur. Some examples of that are:

  • First time sync with Codebook Cloud
  • Advanced Sync Operations (i.e. Overwrite/Merge/Restore)

On Codebook for iOS, the “longer sync” message will appears a popover near the sync toolbar (on iPhone) and near the sync side navigation cell (on iPad). In addition to this, there will be an alert that appears prompting you to keep the screen awake prior to the other longer sync message popover. During out testing, we had noticed that the screen would fall asleep while we performing longer syncs so this prompt was added to notify the user that we recommend keeping the screen awake to prevent it from falling asleep during the longer sync.

Is one of these two what you’re referring to when you mentioned there’s an immediate notice on your iPhone? Or are you referring to the sync toolbar icon rotating right away?

If Codebook for Windows doesn’t appear to be syncing right away after login, then we may have a bug there that we’d like to investigate further.

There is no similar “background sync” processing while the Codebook for Desktop applications are locked. The Desktop applications will only sync automatically while they remain open.

Last Update means the last time that a change was downloaded + applied or the last time that a change was uploaded to the Codebook Cloud server. If you pull down to refresh (or automatic sync checks for any changes) but no changes were downloaded/applied or uploaded, then the Last Update date won’t be updated at all.

This sounds like it could be a bug that we want to investigate further. Just to confirm the steps to test:

  1. Add a bunch of images/PDFs to a new Entry in Codebook for Windows.
  2. Allow the sync to start, but close Codebook for Windows prior to the sync completing.
  3. Start Codebook for Windows again << sync never retries/newly added entry with images/pdfs never makes it across.

Merge is actually different than the default auto sync operation. An important aspect of the Merge operation is that it doesn’t process any deletes. You can read more about it here: Codebook Help - Sync Operations

This sounds like it could actually be the expected behavior when performing the Merge operation. Did the resurrected entry exist on either device prior to performing the Merge operation?

Do you mean the entries that were created in Codebook for Windows in the previous test (where you closed the window prior to the sync completing) or were there additional entries missing as well?

I think the best way to proceed to see about truing things up is to disable automatic sync on each device temporarily. Perform a Merge Operation on each device, then see if the data is “trued up”. If so, re-enable automatic sync on each device.

No, it is different as mentioned above.

We’ll continue doing some additional testing around these scenarios while we await your further reply/feedback. Thanks!

I just downloaded version 5 on my iphone and desktop. I tried to activate a subscription but received the message “Not supported while in testing mode.” It does not seem to be syncing either.

@Lee_Hunt

Thanks for beta testing Codebook and posting to the discussion forum, although I’m sorry for the trouble. I just created a subscription for you on our backend. Next time you login your subscription status should be updated and it should allow you to begin using Codebook Cloud to automatically sync. Let me know how it goes. Thanks!

Looks like I’m good and everything sync’d. Thank you!

1 Like

Hi @mmoore thank you for responding!

  1. The behavior you describe for the iOS version sounds great. Clarifying my previous comment on this, I meant to convey that I liked the iOS behavior and it felt that the Windows behavior was not matching. Specifically on Windows when first starting the Codebook application it would not try to sync immediately on starting, and took several (~5) seconds for sync to occur. I don’t think it’s an important UX issue but wanted to point it out as a difference and possibly unintentional. I determined this difference from the indicators on the different platforms that you point out.

  2. The immediate notice on iPhone that I mentioned is precisely what you describe, and similarly I was intending to point out the difference with the Windows application. The iPhone behavior felt correct/natural, where the Windows behavior makes it possible to close Codebook without a longer sync being able to occur and no notice to the user. It would be easy to create/modify a note/entry with attached files, quit the Windows application, and believe that it has been synced and appear on another device. Especially given that there’s no “background sync”.


Yes that is the behavior I saw and those were the steps that I performed.

My previous descriptions of the issues I saw were written in prose, which makes it difficult to understand what had happened. I will try to describe this step-by-step to hopefully make it more clear and reproducible. I also indicated on specific steps where it seems to me a bug occurs.

  1. On iPhone, add a new Note Entry with images
  2. Close the Codebook app before sync could occur
  3. Wait some time and confirm it never appears on Windows
  4. Open Codebook on iPhone and allow sync to occur
  5. Open Codebook on Windows and confirm the entry (correctly) exists on both devices
  6. Delete the entry on iPhone
  7. Await for syncs, observe the entry is removed on Windows – the entry (correctly) does not exist on either device
  8. On Windows, add a new Note Entry with images (and PDFs)
  9. Close Codebook app on Windows before syncing could complete
  10. Wait several minutes for sync to occur (it never does, per your description this is expected)
  11. On iPhone, observe that the new entry from step 8 does not appear

After step 11, here is what Codebook contains on each device:

  • iPhone: neither entry exists, from step 1 and step 8
  • Windows: only the entry from step 8 exists

Continuing,

  1. On Windows, open Codebook and wait for it to sync up the entry added in step 8
  2. No sync ever occurs [bug?]
  3. To attempt to “force” a sync, run the Merge sync operation.
  4. After the merge, on Windows, both entries from steps 1 and 8 exist - even though previously the entry from step 1 had been successfully removed from both devices - the entry from step 1 essentially “resurrected” [bug?]
  5. Await for any further sync to occur
  6. On iPhone, observe no changes from sync/merge, neither entry exists on the iPhone
  7. On Windows, close the application
  8. On Windows, re-open the application
  9. After successfully entering the master password, the Codebook application never appears [bug?]

Here is where I found very odd behavior that I will attempt to describe. The Codebook application did not appear however I found that clicking in the screen area where the Codebook application should be, results in behavior that indicates the Codebook application really is there (and not frozen) but is invisible. This is what my screenshot is attempting to show – that empty space behind the drag/drop there is actually a functional Codebook application window under the cursor/drag-drop. The screenshot was grabbed while I was in the middle of a drag/drop but the drag/drop behaved normally, and not frozen/locked. I could hit escape and the drag operation would cancel and I could click/drag another entry (guessing where the entry list should be on screen) and the drag would perform as normal, meaning I got that transparent image of what I was dragging following my cursor while I held down the mouse button. So Codebook was running and not frozen, but the entire window was invisible. The software I used to capture the screenshot has a feature making it simple to select a window to grab an entire window as a screenshot. When I was hovering over the area where Codebook application should be, the screenshot software recognized that there really was a window there (named “Codebook”) but there was nothing visible on screen. Very bizarre.

  1. Eventually my Windows computer had restarted, so effectively closing Codebook and the agent/service
  2. When starting Codebook on Windows again, it started normally (no invisible behavior)
  3. No sync occurs when starting Codebook, and it still shows both entries from steps 1 and 8 – note that Codebook when it started appeared to automatically put the entry from step 8 as selected and in edit mode.
  4. I hit cancel to get out of edit mode and the entry from step 5 disappeared
  5. A sync occurs

Now after step 25 here is the state of Codebook on my devices:

  • iPhone: neither entry exists, from steps 1 and 8
  • Windows: entry from step 1 exists (the one that “resurrected”)
  • macOS: at this point I opened my macbook to check what Codebook was going to do here. It synced and contained the entry from step 1 (the “resurrected” one).

I have not yet tried any manual syncing operations but have continued to create entries on each of the devices which sync correctly across all devices. However the resurrected entry will never appear on the iPhone but still exists on Windows and macOS.

@cspeckrun

Thanks for the response with the detailed reproduction steps. We haven’t been able to reproduce the bugs yet, but are still continuing to test this scenario on a few different machines with Windows 10/11.

The icon indicators on Codebook for Windows is slightly different in that it includes an additional icon of an empty cloud when it’s first initialized/unlocked and then will show the cloud with the checkmark once the successful sync occurs. I believe that what you were seeing is that Codebook for Windows showed the initializing icon for that first little bit and then showed the cloud with checkmark once the sync completed, does that sound correct?

Thanks for this feedback. I’ll also bring this up with the rest of the team. In Codebook for windows, it should show a status message in the lower left hand corner when it detects a longer sync could occur (i.e. First Time Sync, advanced sync operation like merge or overwrite), but perhaps that wasn’t displayed in this scenario for you or we could make it clearer. On Codebook for macOS, we show that text in a small popover displayed near where the icon is. We’ll consider some additional ways to make this more prominent so that it’s clear a large sync is occurring.

I’ll post back here when we have any further details about the causes/resolutions for these issues or if I have further follow up questions when trying to reproduce it.

Feel free to post any additional information if you happen to reproduce the issue again or have any further feedback.

Thanks!

I am not sure what happened today but my Windows beta version locked up today. The is the first time I’ve had any problem. I could see there was an error window but I could not get it to display to see the message. I ended up having to stop the process and restart the application. I was not performing any task at the time. The application was open and in the background.

Hi @Lee_Hunt,

I’m sorry to hear about the error. When you logged into Codebook after the restart, did the application reconnect properly to Codebook Cloud? You can tell if you have a blue cloud displayed in the lower-left corner of the main window the connection resumed. Alternatively, there could be a halting error in which it might display as a red cloud. If the application received an error that was unrelated to Codebook Cloud there may be a log file captured in the following directory (copy and paste this path into Windows File Explorer):

%appdata%\Zetetic LLC\Strip\crashes

What are the plans for the Cloud-enabled Android version?

Hi @leonid55,

Sorry for the late reply. We plan to fully support Codebook Cloud within Codebook for Android just as we do our other platforms.