• Hello game master! Welcome to our growing community. Please take a moment to Register (top right button, see how: Slides).

    If you use Campaign Logger, you can use the same login details - we've linked the app to this forum for secure and easy single sign-on for you.

    And please drop by the Introductions thread and say hi.

An odd "missing [XYZ]" event...

GM Rob

Member
Gold WoA
Yesterday I held the first session of a new campaign. As usual, at least for me, I was scrambling the night before to get all the things I needed into Campaign Logger. I was in pretty good shape by the time we started yesterday. Or so I thought!

As I was shifting from one encounter to the next, I started looking for the encounter notes I had prepared. I couldn't locate them anywhere! I had a few brief skeleton Pages, but all of the new content I had entered on those pages the night before was missing. My session planning Log entry looked like it was missing stuff as well. I tried the "Clear Cache and Reload All" function, but nothing showed up.

I did what all of you do so well. I made it up on the fly! We survived and had fun.

Later when I got home I jumped back into CL and ... presto! The content was all back! Some serious thinking and sleuthing followed. Here are some bullet points on what I learned and speculate:
  • I remembered after the fact that I had been switching browsers. I think some of the time I was using Chrome, and some of the time Firefox. I can't remember exactly which one I used when, but I think the missing stuff was on Chrome.
  • I now have two Logs, almost identical. One has my extensive prep notes in it, one has simple notes and the notes I took during the session.
  • I remember having to "Apply Incoming Changes" when I started the live session just to get any of my preparation notes to show up.
  • I think I had to apply changes when I got home as well (on Firefox, I think).
  • I speculate there is some issue with changes not being propagated to the online storage from the browser, but I have no idea how that works, so I can't be sure.
  • I tend to treat "Log This" as a button that saves my entry someplace where I can get it again. It seems that's not quite true. At this point, I'm not sure how to check if my content is saved-really-saved-honest -cross-my-heart-saved. I'm worried about next session because I've stopped bringing any hard copy materials to the session and I'm completely dependent on CL.
So, some questions for the hive mind:
  1. Is a "really bad idea" to switch browsers like this?
  2. How can I be certain my content has been safely saved?
  3. How does browser-online sync actually work?
  4. Why does the "Apply Incoming Changes" function even exist? If there are incoming changes why are they not automatically applied? What's the use case for making this a manual function? Is there a time I would not want to apply the changes? How would I know?
 

ExileInParadise

RPG Therapist
Staff member
Adamantium WoA
Wizard of Story
When switching browsers or accessing campaigns from multiple browsers on multiple devices, you do have to watch the upper right corner to make sure changes from one side get synced back to the cloud and pulled down to the other side.

Under the hood, there are in-browser databases and workers that run to push things back and forth.
Not all browsers reliably implement all of the bits of the web database, web workers, and web networking pieces - so there are manual controls to "hit it with a stick" and make sure it does what it is supposed to.

My use-case is a big linux desktop where I do a lot of the preppish stuff and then a tablet for logging / reference during the session.
My desktop screen is just too big to use a table directly.
And yes, I have synced from desktop to tablet back to desktop manually using the upper right controls ... just to make sure changes got changed.
Sometimes if the net is cruddy (like when everyone else where is streaming wifi movies etc) it can be time to "dump cache and reload all" just to make sure everyone gets back on the same page.
 

GM Rob

Member
Gold WoA
Not all browsers reliably implement all of the bits of the web database, web workers, and web networking pieces - so there are manual controls to "hit it with a stick" and make sure it does what it is supposed to.
One of my favorite pet peeves is software that makes me responsible for making sure it works even when I have no idea how its internals are built!

This is what makes software hard, and yet others seem to have solved the problem and hidden the browser issues. I don't have problems like this with orther web-app kinds of tools. Gmail, OneNote, Notion, and others seem to have sorted this out in a way that makes it all but invisible to me, the end user. Now all of those tools are backed by an army of full-time developers, which likely helps a bit!

So, if I want to make sure everything got saved before I close my browser I should "Dump cache and reload"? I would have guessed that would delete all the local stuff and pull everything in from online. Doesn't that delete my local changes that haven't been synced yet?
 

JochenL

CL Byte Sprite
Staff member
Adamantium WoA
Wizard of Story
Wizard of Combat
Gamer Lifestyle
Borderland Explorer
Is a "really bad idea" to switch browsers like this?
No, I do this all the time. Cross-device, cross-OS, cross-browser-brand.

How can I be certain my content has been safely saved?
When your content displays after your hit "Log This," it has been successfully saved on the server. If your changes don't reach the server, they don't display.

How does browser-online sync actually work?
Originally, it worked in the background, populating the cache during the app start. This did not work out for some users due to laggy internet connections, e.g. I then introduced this button to indicate the incoming changes and make the sync a manual decision. This is working for said users. But it is bad UX.

Therefore, I am currently working on a new solution to do the sync incrementally and intelligently in the background (i.e., really in the background without blocking the UI, like in the first approach). This involves additional coding and advanced browser functions like Web Workers and a full-fledged indexed database on top of Indexed DB. With fallbacks for shutdown systems. This change is my priority for Q1 this year. Accidentally it will also enable full offline use of the app.

Why does the "Apply Incoming Changes" function even exist? If there are incoming changes why are they not automatically applied? What's the use case for making this a manual function? Is there a time I would not want to apply the changes? How would I know?
I always apply incoming changes. I even do Clear Cache and Reload All before I start my work. The why is easy (and sad): The sync was blocking the UI thread, and it took me several iterations to settle on the final model of how I wanted this to be implemented in CL.
 

ExileInParadise

RPG Therapist
Staff member
Adamantium WoA
Wizard of Story
I totally run on Preview CL so its been a habit for me "just to make sure" - but I've never really noticed it... but I don't switch back and forth often ... its more "do this for hours on this device, now change over" and maybe have to sync during the change over if the tablet wass off wi-fi or something.
 

GM Rob

Member
Gold WoA
I always apply incoming changes. I even do Clear Cache and Reload All before I start my work. The why is easy (and sad): The sync was blocking the UI thread, and it took me several iterations to settle on the final model of how I wanted this to be implemented in CL.
Good advice I think. I'll try to remember to do that!

Coding multi-threaded applications is complex, difficult business. (Especially when you need to deal with whiny users like me!)
 

GM Rob

Member
Gold WoA
Therefore, I am currently working on a new solution to do the sync incrementally and intelligently in the background (i.e., really in the background without blocking the UI, like in the first approach). This involves additional coding and advanced browser functions like Web Workers and a full-fledged indexed database on top of Indexed DB. With fallbacks for shutdown systems. This change is my priority for Q1 this year. Accidentally it will also enable full offline use of the app.
This is good news indeed! Thanks for all the effort you put into making this thing work!
 

JohnnFour

Game Master
Staff member
Adamantium WoA
Wizard of Story
Wizard of Combat
Gamer Lifestyle
Demonplague Author
Borderland Explorer
Thanks for the feedback @GM Rob!
 
Top