TagTime In The Cloud

Definitely the same universal schedule, as long as you keep the gap set to 45 minutes

I wanted to test this part, to check whether ā€œas long as you keepā€ means that changing it to something else and back to 45 mins derails it from the universal schedule. I tried to install the app onto a different phone to test this, but it seems like the app is not available in play store anymore. (Unless itā€™s a region thing. But the last time I checked I was unable to change the region from the US to where I am now despite actively trying.)

@CortTheWart, anyways, let us consider this a confirmation that the schedule works as intended if people use the app as intended. Which is what most people do, I believe - keep the gap at 45 min :slight_smile:

Trying to build the original android app with android studio, what part of the TagTime build do I need to download to try to build it? doesnā€™t really say in the readme.md, just says you need to get Android Studio. In the meantime, are you able to confirm that the pings I posted are correctly on your schedule?

Here:

@scarabaea @dreev I just had to check for myself to make sure. After painstakingly trying to figure out how to build the original app (I needed to download an old version of Java locked behind creating an account on oracle which didnā€™t work and then figuring out which settings to change since all of the instructions are very outdated) I was able to build the app properly, and without changing the gap settings, the pings came at the same time from the app and my version. So thankfully Iā€™m using the correct universal schedule. All Iā€™m assuming now is that the when you change the gap settings on the android app, it never properly sets you back on to the correct schedule. Donā€™t know how you could fix that without reinstalling the app (which is no longer on the play store). But at least itā€™s good to know that Iā€™m on the correct schedule.

1 Like

Does save to SD just let you choose to save a copy of your log file elsewhere?
and Iā€™m assuming with attach to email initiating a sharing event it just lets you share your log file?

Also whats the difference between delete saved logs vs delete all data

Probably not. It just hanged for a moment and then said ā€œdone!ā€. I have no idea where it saved the logs. The sharing through the other button definitely gives many more options.
The latter question should probably be directed to someone else, since I donā€™t want to try and delete my real data :slight_smile: and installing a dummy copy to play around is not an option anymore.

@dreev do you think you could elaborate on this please?

@dreev also I just have a general question. What is your idea for cloud-based logs? Iā€™m just wondering how you think it should work exactly. As I have a cloud database for logs, but I donā€™t think itā€™s implemented the way you imagined.

The TagTime Android app has options for saving/exporting oneā€™s log file that made sense in like 2009. I would not be surprised if thereā€™s no way to export logs from the Android app on a modern phone.

Iā€™ve lost track of what youā€™re doing with the Android app though. Probably not for sanity checking the universal ping schedule but just in case, hereā€™s the thread documenting the official reference implementation:

See also https://tagtime.glitch.me

Iā€™m imagining a SaaS that basically centralizes your TagTime log so you can answer pings on different devices and then log in to the app and see all your pings, export them, etc.

Thank you, but I just have one question. If you had TagTime on multiple devices, would you expect both pings to be shown in the centralized logs, or would you expect the first device to answer the ping to be the ping that shows up, and then it would cancel the ping on the other device as its already answered?

No, I think the log should track the universal schedule, with no duplicates. If you only answer the ping on one device, itā€™s easy. If you answer the ping on multiple devices, thenā€¦ probably the union of the tags makes sense? Or make the user resolve the conflict?

2 Likes

My own log merge does a union of tags for the rare event that a ping is answered on multiple devices. It was rare enough not to worry about correcting it via manual conflict management.

The merge also highlights outstanding pings that didnā€™t end up getting answered on any device.

Definitely following the universal schedule, not least because itā€™s cool when everyoneā€™s devices ping at the same time, and also allows for collective consensus about what we were probably talking about at that moment.

4 Likes

Big update coming soon. Ty for the insight @philip

2 Likes

Just pushed out an update to GitHub.

  • Any changes to the gap will reset your waiting time, and put you on the correct universal schedule for your new gap. Thanks @scarabaea for the recommendation
  • Adjusted Cloud logic for answering a ping. Instead of sending over your current log file after every answered ping, it now sends just the prompt you entered, and adds it to the existing log filed saved in the cloud.
  • If multiple devices answer the same ping, it will merge the two responses on a single line within the cloud log, eventually syncing to your local log file. (Your local log file is now synced to your Cloud log file after every answered ping). For example: If you answer the ping on your phone first, and then answer the ping on your computer, you will be able to see your phoneā€™s ping response on your computer right after you answer it there. Thanks @philip
  • New button in Log Editor: Import Log to Cloud. Lets you select a log file to replace your Cloud log. Useful if you have an old log file that you want to add to the Cloud in order to add new pings on top of it.
  • Adjusted the export log option in the Log Editor to work more smoothly with the new system, basically a ā€œSave asā€ button for your cloud log.
  • Made a custom icon for this program as I needed to make something for the Android App besides just using a screenshot of the clocks from the tagtime website, it should work in all portions of the desktop application, you can also view the full scale image of the icon by going to imgs/tagtime.png

No one it seems has tried to login with their Google account in order to use these cloud features yet, so let me know if thereā€™s anything I can do to help out with this. However the flow for Google Authentication goes like this:

Click Sign in to Google from the TagTime Application ā†’ A Web Browser page gets opened up to the TagTime backend server ā†’ it redirects you to Googleā€™s official Authentication site ā†’ you login without needing a password (if already logged into google on your browser) ā†’ Once signed it, you are redirected back to the TagTime backend ā†’ it authenticates you ā†’ sends information back to the TagTime Application to let it know you are successfully signed in ā†’ stores your refresh token for future use (accessing your cloud log essentially)

Iā€™m still working on the Android App, progress has been good, but Iā€™ve really just been spending the past month learning Kotlin in order to atleast know what iā€™m doing before I dive into anything major. Polishing up this desktop application before I do the main features is also gonna helpfulā€¦

2 Likes

@scarabaea If thereā€™s any reasons or concerns for why you havenā€™t tried logging in with a google account yet for the cloud features, please let me know! Iā€™d like to get feedback on it before implementing it to the android app.

I will try it out sometime soon! Just have been super busy recently.

1 Like

Ah gotcha, well let me know once you have the time!

Updated settings.py and logviewer.py to reflect the following changes:

Settings:

  • Logging in through Google will now automatically extract your log from the cloud, and save it to your local log.log file. This means that if you have a saved log in the cloud under your account, as soon as you sign in, you will be able to view that saved cloud log immediately in the Log Viewer without having to extract it manually. Makes everything much smoother!

Log Viewer:

  • When importing a log (to save an old log to the cloud) it now automatically replaces your local log.log file, and will refresh the Log Viewer with the updated one. Say you have an old log from a previous version of TagTime named ā€œvenus.logā€ that is in your downloads folder. You click import in Log Viewer, select that file, and that old log is now saved as your cloud log (which will now act as the source file, and gets added upon with new pings), as well as being saved as your local log.log file. Hopefully that explanation makes sense? Let me know if it doesnā€™t, but this also makes things smoother.

Few Major Stability Fixes and changes to how this program interacts with the Cloud to bring it more in line with how the android app interacts with it.

Log Viewer is now a lot faster, same with settings and the main prompt. I figured out I was launching these python scripts the wrong way, and they now use multiprocessing to load up. @scarabaea let me know if you feel the difference if you have the time.

Ping times are now saved on the correct universal schedule ping time, instead of saving the ping time at the current time of pressing the submit button / enter. This will allow pings from another device to be properly merged. (as they will both have the same ping time)

Planning on merging the mac build into the same files, so everything will all be in one place.

You will need to redo the ā€œpip install -r requirements.txtā€ as I added a few new libraries.

Iā€™ve also cleaned up the logging statements, so the terminal window should be less cluttered.

Happy Holidays!

1 Like

I have combined the Mac build and the Windows build into the same python scripts. I have removed the mac folder from the GitHub because it is no longer needed, and you can just download the main scripts.

I have also added some instructions to easily set up TagTime using a python virtual environment within the TagTime folder, this might help in your case @dreev where you have python libraries installed globally, and donā€™t want to mess with anything external outside of TagTime.

Let me know if you need further help installing and running TagTime on Mac.