There's been a lack of visible progress on this application for 6-8months
This is partly because:
- the weather was good over the summer and I'd much rather be outside
- I've written the Di2 decoder application for a change of programming focus ("a change is as a good as a rest")
- and I have also been making significant changes to the Strava Data Tool "under the bonnet" based on learning from the TCXConverter and Di2 Decoder apps that I wrote and could see benefits in making it easier to mainatin the Strava Tool
- The Strava tool grew organically making it a nightmare to edit and change the code - this is because I wrote it learning as I went and adding feature ad-hoc and hence there is no design to the code
I also thought ready to release back in February 2020 but some last minute tetsing showed a major issue when creating a new database. It took me a long time to work out the change that caused this, which was in fact trivial and related to changing to a static SQL class and getting confused with the constructor behaviour
Although the app looks almost identical there is a big change list which includes the following (not-exhaustive) list
- Only raw data stored in the database (~60% reduction in database size and improved performance)
- Use of SQL_BLOCKCOPY to load data to database tables)
- Consistent use of DataTables throughout the app, and programmatic creation of these rather than predifined. Also the Datatable definition are used to programmatically create the Database tables menaing a much greater level of consistency and alignment
- Conversion to static for a number of common classes
- Introduction of a static Global_Constants class to improve maintainability and readability across the application
- A lot of code tidying up
- Removal of redundant methods- so the code base is now smaller
There's still a lot of improvements to be made:
- The most major issues seems to be a change with the authentication process that is less seamless than it was a few months ago - I have yet to resolve this. When you start the application for the first time it will open a web page asking you to approve access to (your) data. This is as designed. However if you then close the application or don't use it for a further 6 hours the application needs to re-authenticate - this is as required by Strava. In theory th eapplication should use one of the tokens set in the first initialisation and silentrly re-authenticate. However it doesn't and it throws an exception "Error #3000 during Web POST, Authentication_Web_POST/Get_Tokens". However if you select OK it will then open a web page and re-authenticate. I need to look at this more
- Some database tables still need "re-formatting" to the new process
- Lost the ability to export the graph as an image (as I changed how the export feature worked)
- Better logging format and verbosity - although its better, it's still a mess
- More testing and error trapping - again it's a lot better but still not exhasutive
- The redraw code still does not function correctly
- Further code general improvements- readability, structure, style etc.
- Adding the ability to (manually) load di2 data from a .fit file and asscoiate with existing down loaded data, inluding the statistics and graphical displays (i.e. incorporate my Di2 Decoder application into this application
- Adding segments data
- Refining the statistics - I think allowing a level of user query building would be good (to an extent). Also getting data per bike and ride type for example - i.e. how many miles in 2019 on Bike X on a trainer
- Fixing some of the things athat are still broken
Anyway here are the links to the program
- The standalone .exe file is uploaded to here:Link to V3 standalone exe Zip file
- The installer package is uploaded to here: Link to V3 Full installer - Recommended
I strongly recommend using the installer - its been tested and works as I expect it to
As far as I can tell there are no viruses in the zip and there is no spyware - it just reads your Strava data
Best Help page is here: Notes from release 2.0.0.0
No comments:
Post a Comment