Highcharts Data Migration From Older Versions - highcharts

I've been asked by a client to help them migrate their older Highcharts to the most current release. They are mainly using Highcharts v5.0.14 (Highcharts is currently v8.1.2), with a few older charts that are going back to v3.x and v4.x. I have not gained access to any of their resources yet, so I cannot comment on specifics, such as what modules they are using.
Have there been any changes in data requirements, or formatting of the raw data, with any of the past releases? Or has the data usage remained stable throughout all major releases?
I realize configurations and customizations have changed greatly since those older releases, but I'm more focused and interested in just the data right now, since that impacts the back-end servers.
I've tried to search for data migration documentation pertaining to older releases, but I have not been able to find anything. Nor do I just want to assume that the data formats have remained constant.
Thanks greatly for any information that you can provide on past data migration concerns.

I am not quite sure how about the 3 v. but for upper versions data structure is the same as it used to be, that means for basic charts:
array of numbers:
data: [1, 2, 3]
array of arrays:
data: [[x, y], [x,y], [x,y]]
array of objects with specific data:
data: [{x: number or string, y: number}]
Any other data format needs to be corrected by defining the keys: https://api.highcharts.com/highcharts/series.line.keys
What particularly has changed for each version you can find in the changelog: https://www.highcharts.com/blog/changelog/

Related

Swift 5.5 + Apple Core Data — How can I store a simple formula as an item/attribute in a Core Data?

I need to store simple math formulas IN Core Data for later use in/by my code.
Formula that dictate quantities and conditions under which a particular PDF Form will be included in an assembly of Forms.
I am writing an iOS app for managing sets of PDF forms that are to be
packaged together in various combinations.
I have multiple classes of users (members of User_A and members of User_B).
New Forms need to be able to be added and "described" without additional programming.
For example … a "set" of forms should have 1 copy of Form123, 2 copies of Form456, and 3 x (User_A_Participants + User_B_Participants) copies of Form789.
I have created a "Forms" Entity in Core Data and defined many standard Attributes within the "Forms" Entity (e.g., formTitle, formID, formVersion, pageSize, etc.).
However, I do not know how to store "3 x (User_A_Participants + User_B_Participants) copies" as an Attribute that my code will later be able to decipher into an actual quantity to copy/print.
For many reasons, I need to use Apple's Core Data to handle the underlying storage. I am OK with restricting myself to Xcode 13, iOS 15 and Swift 5.5 (I have no legacy anything that I need to worry about). I'm also open to any Cocoa Pods that may help.
Please forgive if I use incorrect verbiage as I have never attempted this aspect of programming before.
THANK YOU in advance for any assistance/direction.

AlphaVantage API Technical Indicators: Do they use only information of the past?

I am writing because I found no public documentation or code to solve this doubt. I have been using the AlphaVantage APIs for a project about stock markets prediction with Machine Learning. I have been using a lot of technical indicators of the AlphaVantage library, and, many of them use sequences (windows) of data points, rolling them (e.g. Moving Averages).
However, many financial libraries tend to update the values they previously computed for some of these indicators, by using windows retaining future information with respect to the point in time the indicator is referred to. Obviously, that would represent an "hidden" information that a predictive system (only relying either on past or present information), like mine, should not have access to.
Hence, I was wondering if it is the same case for the AlphaVantage library. I personally manually checked a lot of indicators referred to the same stock (and I repeated the process for many stocks), at a distance of days, and I did not find any inconsistencies on the values referred to the common dates (the only difference is that the most recent versions of those technical indicators have new points, referred to the new evolutions of the price in time).
I would be very pleased, if anybody of you could help me in solving this.
Most indicators will use a look back window of quote values, including current price, to calculate current indicator values. Many will also include previously calculated indicator values as a basis for current indicator values. Fewer even recalculate older indicator values based on new price information.
For this last scenario, in looking at the AlphaVantage library, I don’t see any in there that would recalculate older indicator values based on newer data. If you’re seeing indicator values change, it’s probably due to a revision or updates of their underlying quote history.
I have a rather large .NET library of indicators, so I’m familiar with which kinds behave that way, due to the mathematics.
Some examples of indicators with retroactive recalculation are ZigZag and Williams Fractal. The reason they do this is because they find local high and low points, which can’t be verified without several confirming bars of data. In other words, you cannot indicate a high point until several lower bars occur thereafter.

Fastest and light way(Sqlite or core data or plist or csv or flat file)

I have a simple problem to solve but want to know which is better pattern to use and understand the reason for the choice.
Problem :
I want to create a utility which developers can use to check whether the feature should be enabled/disabled depending on the server package version.
eg : server package versions like 10.234, 11.1 etc and client versions 9.3,10.2 etc
Validation on client to see min version on server package for feature to be enabled/disabled.
example data would be like "search lookup feature >= 10.234". And sometimes complex situation need to even check client version whether the feature should be supported.
edit:
Note: Application is very huge and memory is full for most of the time. (thousands of records of organisation data.) So memory is bottle neck.
Just it even flashed to mind to used macro as to do all comparisons and returning value.
I think Plist would be heavy as all the objects would be in NSDictionary and even to access one object, I'll be holding all data.
I want to reduce memory overhead and comparisons too.
For Light data, Use NSUserDefaults or PList. SQLite and Core Data is overkilled.
Updated Answer for Updated Question:-
For server package versions/your app version or other light weight data, you can always use NSUserDefaults or PList.
For records of organisation data, you might want to consider Core Data.
Yes, you can use 2 different types of persistent storage inside your app.
If your data is never going to change, or grow you better use NSUserDefaults, plist or csv file. If you think that user should have the ability to change or add new entries to this data file you better go ahead with CoreData
Plists, csv, and flat files have low overhead for small to medimum amounts of data (and for data where you use all or nearly all) of it.
Systems that only use some of the data on any given run AND have large amounts of data AND have the data structured so SELECT can use an index can be faster (lots and lots faster) with a database (SQLite, or CoreData with the SQL Persistant store).
As a gut feel I expect your problem could be handled well by SQL, but only if you are talking about 1000s of configurations not 10s or even 100s...but you would be better served by benchmarks then my guesses. Go code :-)

Updating iOS app jumping from 1.0 to 1.x missing all update in the middle

I have not been able to track this down with any of the official Xcode instruments.
I am not trying to solve any particular problem. I wanted to know, for a deeper understanding, what happens, from a CoreData+sqllite point of view, when the user miss an update, and update a future version.
I mean app 1.0 is installed, then 1.1 is released with change in its xcdatamodel, but for any reason, user didn't update it.
Then a few days (or weeks) later 1.2 is out with change in its xcdatamodel, and user update the app. Or worst, he only update at version 1.x.
In the meantime, the app has not been removed from the device, so the documents folder is still there.
My understanding is: when an app is updated, at start up the model is updated too.
Just because a sqllite database cannot have column renamed, plus other restrictions, I suppose a new set of tables, if needed, are created and populated with old data, then old tables get dropped.
So, with the xcdatamodel containing all previous versions, is iOS traversing all the chain up to the latest version updating the model step by step, or is it smart enough to jump directly to the latest version ?
When running a newly updated app with Core Data, iOS will look at the previously active Core Data model, and the new Core Data model. It will make its changes based on all the versions in between. If there were no versions in between, it just does what it normally does. If there are versions in between (because, like you said, the user skips an app update), it applies all of those versions and makes the changes based on those.
So, to actually answer your question: yes, the system is smart enough to do that. As long as you make sure that it can migrate from one version to the next (be it lightweight or using a mapping model), the system will take care of the rest.
I am assuming you are referring to NSManagedObjectModel versioning.
That is a mute question. Of course you maybe could jump to another version and it might work. Why not just go through the sequence of versions as described in the API documentation?
You could parse the core data managed object model file, which is simple XML and try to manipulate it... But why even waste time on something like that? What does it have to do with the model being "smart"=?
Yes, you could cross a street blindfolded and not be run over by a car.

Delphi histogram component?

Does it happen that no one ever needs histogram in Delphi ?
Google gave me a bunch of half-baked code snippets. But it means that each time you need one - you have to invent one more ad hoc bycicle.
Torry mostly told me about some very expensive closed source Math Statistics or Financial packages, that as a subproduct have histograms. But they are very expensive and since you have no source code, each time you install update onto IDE/RTL/VCL you're probably screwed, until the vendor would make (soon ? ever?) updated packages. Given thatvendor is still does exists.
S.O. told me nothing, nil.
For what i found...
Mitov.com provides some histograms in PlotLab. which told to be free for non-commercial. Alas, it is again closed-source, and if the Histogram - quite fancy let's admit -is the onlything i need from it - why pay the whole price ?
One more example http://DSpatial.sf.net
Just few years ago i used it in Delphi 5, but even then i felt the author is loosing interest in the project. I made few enhancement, fixed some bugs, he merged them and that's all. The component was not very useful and lacked upon features, yet better than nothing. Now the project seems to be completely dead. Good old days, etc. But i do not want them back :-)
And Stack Overflow seemingly carries no single question about it. But maybe just no one bothered to create topic, after search found nothing ? I mean, Delphi was created for database access, histograms are one of basic ways to visualize data, and no one crosses them ? Something with nice style, with rich mouse tooltip like in HTML/CSS/JS on http://www.moskva.fm/stations/FM_95.2 ?
Or is this too domain-related and not ever possible to have good abstraction ?
TChart is a control that ships with most versions of Delphi. TChart can be used to make histograms (bar charts) in style. The following give you some ideas about how to use it: http://www.digitalcoding.com/tutorials/delphi/Simple-steps-to-create-Delphi-chart.html and http://delphi.about.com/od/adptips2006/qt/chart_selectbar.htm .
If you need something with code, google the pages at delphiforfun.org/programs/oscilloscope.htm . These are not controls. The oscilloscope article has a histogram with source. Some of the other projects at the site have other histogram graphs with source..not elegant but useful and free. Use them as a template to make your own control.
The link at http://delphiforfun.org/programs/Math_Topics/probability_distributions.htm shows how to make your own statistics displays with "histograms." This example makes use of TChart.
Here is some more stuff to try I found looking at my resource file:
http://wiki.lazarus.freepascal.org/TAChart, http://members.home.nl/mvanwesten/en_lazarus.html , http://www.martinole.org/TAChart.html ...some of these are GPU components that supposedly work with some versions of Delphi. Perhaps this is your lucky day as there is some source code. The first and third listed probably will work reasonably for histograms. You may have to write your own statistics algorithms.
Found this thread while doing some searching. The ImageEn component suite has a THistogramBox component. It's the NOT prettiest thing in the world, but it's the only one I've found so far.
http://www.imageen.com
I came across a histogram example in a gdiplus package available for download from code central. I don't know if it will do what you need but when I saw it I remembered your SO question.
HTH.
If you were using firemonkey, you could just created a series of TRectangles in series. They can be made unclickable by turning hittest off. Or is that too easy and straightforward?

Resources