• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Information for beta testing library sync feature
#1
Installation:

Download the files I have provided in the messages to get started. One file I did not send out originally is needed for the Windows 10 installation:

www.zubersoft.com/mobilesheets/downloads/cert.zip

In order to install the appxbundle file, you need to install the certificate included in that zip file.  Open a console window with admin privileges (type cmd.exe in taskbar to search for it, right-click and "Run as Administrator"), then enter "cd <directory you extracted cert.zip to>" in order to change to the correct directory, and then run the following cmd:

certmgr.exe /add MobileSheets_2.1.8.0_x86_x64_arm.cer /s /r localMachine root

Then the appxbundle should hopefully install without error. If you do run into errors, you can also drop the appxbundle in the same folder as the the certificate, and then run the powershell script Add-AppDevPackage.ps1 (which may require putting Windows 10 in developer mode first). 

Instructions for testing:

The way the library synchronization feature is set up, you use one device as the server, and the other device will connect to that server as the client. The server is the one that is doing all of the real work during the merge. It requests the database from the client, and then runs through the deltas between the libraries and sends or requests files as needed. So you will see all of the output on the server side, and very little output on the client side. There are some important settings for the library sync feature:

1) Folder settings - if you have specific folders you are using on one device and you want those folders to be maintained on the other device (especially if one is Android and one is Windows 10), you will want to use the folder settings. This lets you set up a name/path pair one device, and another name/path pair on the other device. So here is an example:

Android mapping:
Name: Realbooks
Path: /storage/emulated/0/RealBooks

Windows 10 mapping:
Name: Realbooks
Path: C:\MobileSheets\RealBooks

If you set up those mappings, and a file is encountered on Android that begins with /storage/emulated/0/RealBooks, the server will look for a matching mapping name on the other device (Realbooks in this case), and then replace /storage/emulated/0/RealBooks with the path found (C:\MobileSheets\RealBooks). With Windows 10, all folders have to be under the storage location, so make sure you set it up this way otherwise errors will occur during the sync (I may need to add code to enforce this). 

2) Data to sync - There are a series of checkboxes for controlling what data is synchronized. I think this is pretty self-explanatory, but it's important to note that song metadata includes a lot of things (metronome settings, link points, bookmarks, all the group assignments, various fields like custom, duration, etc). Checking "Sync groups" will synchronize the groups on both devices (most of which usually occurs through synchronizing song metadata), but what this mainly means is that Setlists will be synchronized between the two, as setlists aren't a metadata field for songs.

3) Merge behavior - This is one of the most powerful settings. If you selelct "Use data form the song that was modified last", MobileSheets will just look at the last modified timestamp on each song to figure out which song's data to use. This isn't always desired though, and when it comes to files, the file last modified timestamp is used instead (which can be different on each device). Therefore, if you want the most control, switch this to "Prompt user for decision". You will then get a merge window where you can see exactly what data will be merged between the devices and you can select exactly what data you want to use (and you can skip things you don't want to merge). The last two options are useful if you only want to merge new songs and groups instead of processing songs that match on each device. The only difference between the last two options is that "Only merge new and prompt user" will use the same prompting mechanism as "Prompt user for decision".

4) Connect using - The only choices are WiFi and Bluetooth, but I thought that I should mention that bluetooth is not adviced for performing large merges. I've seen data loss, so it's less reliable than WiFi, it's much slower, and it's more difficult to set up. I just wanted to provide the bluetooth option if users need to merge in a setting where WiFi is not available.

Mike
Reply
#2
Hi Mike,

I have tried the install of the beta version with mbs_beta.appxbundle. The first attempt after installing the certificate said that version 2.1.8.0 was already installed, so I don't know if that was a good or bad message...

I then used PowerShell, but the command you gave didn't work, but the suggested one did - I think. See below for the details.

However, I am now a little lost, as I am not sure if the program has updated, and I can't seem to find anything concerning "folder". Sorry to be such a Dunce ;-)

Cheers
John in Sunny Carnarvon - Western Australia

Windows PowerShell
Copyright © Microsoft Corporation. All rights reserved.

PS C:\Users\jblyt> cd "C:\Users\jblyt\Downloads\MobileSheets_2.1.8.0_Test"
PS C:\Users\jblyt\Downloads\MobileSheets_2.1.8.0_Test> Add-AppDevPackage.ps1
Add-AppDevPackage.ps1 : The term 'Add-AppDevPackage.ps1' is not recognized as the name of a cmdlet, function, script
file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct
and try again.
At line:1 char:1
+ Add-AppDevPackage.ps1
+ ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Add-AppDevPackage.ps1:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException


Suggestion [3,General]: The command Add-AppDevPackage.ps1 was not found, but does exist in the current location. Windows PowerShell does not load commands from the current location by default. If you trust this command, instead type: ".\Add-AppDevPackage.ps1". See "get-help about_Command_Precedence" for more details.
PS C:\Users\jblyt\Downloads\MobileSheets_2.1.8.0_Test> ".\Add-AppDevPackage.ps1"
.\Add-AppDevPackage.ps1
PS C:\Users\jblyt\Downloads\MobileSheets_2.1.8.0_Test>
Reply
#3
You may need to uninstall the Windows 10 version in order to install the beta version. You can back up your library first and then restore it in the beta version. Or you can just copy the storage location for MobileSheets, uninstall the app, and then copy those files back (if you are using a custom storage location, make sure to copy C:\Users\<your username>\AppData\Local\Packages\41730Zubersoft.MobileSheets_ys1c8ct2g6ypr\LocalState as well) . Make sure you don't allow the Microsoft Store to install version 2.1.9 either (you'll probably need to disable automatic updates). I'm going to work on creating a version 2.1.9 with additional logging for errors tonight. 

Mike
Reply
#4
Thanks Mike,

That worked....

As a matter of interest, is there any reason why a DropBox or OneDrive etc local folder couldn't be used as the MS main data folder? I do that with my Calibre E-Book data.

Cheers
John
Reply
#5
MobileSheetsPro was designed to be used without with an internet connection, so none of the code is set up to stream content from a cloud source, or to download files temporarily so they can be viewed. For most users, I would think they wouldn't want the delays associated with having to download all of the files every time they open a setlist, especially if they are using fakebooks which can be 50+mb. There are so many parts of the application that depend upon the file being accessible at any time, versus having to establish a connection to Dropbox or OneDrive before the file can be downloaded (which happens asynchronously, so any synchronous action that wanted quick file access would no longer work correctly). One of the primary goals of MobileSheetsPro is to let users load the songs and setlists quickly, and having to download from cloud storage does not support that very well.

Mike
Reply
#6
Even without download delays, in many of the places I played there was no (reliable) internet connection available.
Johan
johanvromans.nl — hetgeluidvanseptember.nl — mojore.nl -- howsagoin.nl
Samsung Galaxy Note S7FE (T733) 12.4", Android 13.0, AirTurn Duo & Digit (Gigs).
Samsung Galaxy Note S4 (T830) 10.5", Android 10.0 (maintenance and backup).
Samsung A3 (A320FL), Android 8.0.0 (emergency).
Reply
#7
Mike, either you or I misunderstood.

I think John is talking about setting the *local* Dropbox (etc) folder as data folder.

Is there indeed such a limitation? I didn't notice that. It makes sense though to have it this way so you can sync (without the library sync) your sheets folders between devices (and I use dropsync and folder sync to achieve the same result on my Android devices).

And of course you need (and have) a local copy on your device for playing gigs without internet access.
Reply
#8
(05-31-2018, 03:02 AM)BRX Wrote: Mike, either you or I misunderstood.

I think John is talking about setting the *local* Dropbox (etc) folder as data folder.

Hello BRX,

Yes, you are correct. I was asking about any impediment in using a LOCAL copy of the MS files on a Laptop in particular. There is a scenario that could cause issues, I suppose. That would be when your LOCAL cloud files are not up to date when you run MS. That could lead to conflicted copies of the database and other files. However, if a user ensured that the LOCAL files were up to date, then there shouldn't be any issues.

I have been doing this with the Calibre E-Book program for a number of years, and it uses databases too.....
Reply
#9
The SQLite database file has to reside in the application data directory. The SQLite library I'm using will fail to load the file otherwise. So as long as you keep your database in the default location, but you synchronize all of the other files through Dropbox, then sure, that should work just fine.
Reply
#10
Hi,
when I try to launch MS, I get briefly the grery screen with the blue logo in the middle, and then I'm back on the Desktop, leaving the following in the event viewer.
I tried uninstalling/reinstalling an resetting the application from the add/remove software tool.

What can I try?
My Windows version is 1803.

Faulting application name: MobileSheets.exe, version: 1.8.7.2, time stamp: 0x5b0c7b2f
Faulting module name: Windows.UI.Xaml.dll, version: 10.0.17134.1, time stamp: 0x46278cb1
Exception code: 0xc000027b
Fault offset: 0x00000000006a4a12
Faulting process id: 0x998
Faulting application start time: 0x01d3f89d1fc40d40
Faulting application path: C:\Program Files\WindowsApps\41730Zubersoft.MobileSheets_2.1.8.0_x64__ys1c8ct2g6ypr\MobileSheets.exe
Faulting module path: C:\Windows\System32\Windows.UI.Xaml.dll
Report Id: cf2e9703-01e4-455d-9bda-a4316bd29621
Faulting package full name: 41730Zubersoft.MobileSheets_2.1.8.0_x64__ys1c8ct2g6ypr
Faulting package-relative application ID: App
Reply
#11
I'm interested in the experience of the other beta testers. Have you successfully synced between devices yet? I still haven't.

I've been  concentrating on syncing to Android devices for now (because I haven't yet tried to install to W10 with the latest cert again).

It seems to work fine at first. I get the message that the library db has synced successfully. Then it starts to compare metadata of some songs but stops at the 6th or 7th.

And the database on the client is still the same as before the start of the sync.

Is my database too big (> 50 k entries, about 50 MB)? Will it go through all the 50k songs individually? I get no indication if the sync is stuck or just takes so long (because of the size of my library it took a while for the message that it has been synced as well. I wasn't sure if it was still working or not. Some percentage indicator would be nice).
Reply
#12
I'm working on adding logging so hopefully we can gather more information about what isn't working after that. I only tested merging fairly small/simple libraries (because it made repeated testing much easier).  The database size shouldn't really be a problem, but it's certainly going to take a long time to go through every song/file with a library of that size (because if any file modifications are detected, it has to perform a hash calculation on each file to figure out if the file is actually different on each device or if it's just a timestamp issue but the files are actually the same). I agree that a progress indicator is a useful addition, so I can work on adding that, although I'm going to have to figure out how many steps the progress indicator should have, because it has to iterate through every song, every file, every group, then there are extra steps with updating the database on the client side, sending necessary files over, etc. For some of the steps, I won't know at the start how many operations will be required (i.e. how many files the server might need to send to the client). So I may decide to have the progress indicator reset to 0% between each step of the merge. I'll have to think about what is the most meaningful to a user. I imagine most people don't care about where they are in a certain phase of the merge, so they just want an overall progress, which means the progress bar would appear to be stuck at certain percentages while a long operation is proceeding.

Mike
Reply
#13
Although not a tester, I suggest there be some kind of indicator the process is not locked up during long operations. It could be a double progress bar similar to that Clonzilla uses, one overall and one for the current step.
Dell Latitude 13.5" 2-in-1 Ubuntu/Win 11
Samsung Note Pro SM-P900 12.2 Android 5.0.2
Samsung S7+, Android 12
Reply
#14
I've uploaded new builds for Android and Windows 10. Use the same links I provided for the first releases. A log.txt file will be generated in the storage location for both versions. Users that are having issues should email me the log.txt files so I can try to figure out where the problems are. I may need users to help provide library backups that demonstrate some of the issues if I'm unable to find any problems in the log files. These new builds don't have the progress bars - I can work on adding those next.

Mike
Reply
#15
Just an idea for the UI of the progress bar(s):
My backup program has similar questions to answer.
It displays a "preparation" step with two progress bars and running counters that show the number of files to process.
Then follows an "execution" step again with two progress bars showing the progress.
Everything in one window, very clear and easy to understand. If you're interested I can provide screenshots.
first language: German
Acer A1-830, Android 4.4.2 - HP x2 210 G2 Detachable, Win 10 22H2 - Huawei Media Pad T5, Android 8.0 - Boox Tab Ultra C, Android 11
www.moonlightcrisis.de - www.basdjo.de - www.frankenbaend.de


Reply




Users browsing this thread:
10 Guest(s)


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2024 MyBB Group.