Re: [birt-dev] Better charting (was better graphics)
- From: Henning von Bargen <H.vonBargen@xxxxxxx>
- Date: Tue, 7 Mar 2023 15:21:17 +0000
- Accept-language: de-DE, en-US
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=t-p.com; dmarc=pass action=none header.from=t-p.com; dkim=pass header.d=t-p.com; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Vk6enwJav+fEt+xh6nyiOa53nGpeabFRlbid2qWq2CU=; b=RxX9+23YmVJieHlarhoEoVXdyqVnGCif5QcKnOThpBbqOfMBrsyz+345HVCwsRA+iYl+M/muTR+tiCBHsXZuy+zq05VIhI5/0k/MXltLF48s5ftZKYb1O0QRw5YIVrYfocqjZVt8TNP6w85zjNAA+oCFVbjN9T//8Tym1E+acV8gWbHsCFuopER3jh4f5N9tPacvmZ0O2a7PiMAcGXpFj0f+SdSuVBrHx5JkVPhLGkATVmKIY13JVvkO4cfcFB8GmIMG+eoptaJjoP38fXmEoLxyFTYyvVdYqlAj4OVMx+u3CSCrcV0PpIdUfmTPFfjOTIygsjIdvTkVPi2Cv+1pHw==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gJu1l1yjgRoa5t6AnrfQHWyiByLg+ifOzD+z3AP7ohZBuBqMfHWF9mqoC8rxmkN1WRWMNdvBi/FwyTBt7Men987nzhVjTh4muum2klcwmfTvVNUxwWehR+gKdPuwEm5Hwzp+5P9P8x+F+Cp0JfYBAvmYGAS8dHqpitDo6I7pBVv9eikTjbWui6Hl3S4D0CPViAje09uR2638qpmgLGmwu+BSrp7nJgbrBe4qzPzHjStLhI7EJqWvzcFk29zRRE2XPqGjxw5MIh22FGgWabU6OEIqyHelmAJfmcAJOeevtBgpmviBrqtxpDp6NM6aky1QWtRnNKNB5YspCgFwOkEBaw==
- Delivered-to: birt-dev@xxxxxxxxxxx
- List-archive: <https://www.eclipse.org/mailman/private/birt-dev/>
- List-help: <mailto:email@example.com?subject=help>
- List-subscribe: <https://www.eclipse.org/mailman/listinfo/birt-dev>, <mailto:firstname.lastname@example.org?subject=subscribe>
- List-unsubscribe: <https://www.eclipse.org/mailman/options/birt-dev>, <mailto:email@example.com?subject=unsubscribe>
- Thread-index: AQHZUO3PLAB414HB0kOnnKltY5nmZa7vXX/w
- Thread-topic: [birt-dev] Better charting (was better graphics)
Yair Lenga wrote:
> I do not think that BIRT need “BIRT charting” for client side charting (like the server side). There are multiple amazing packages out there, with unique functions, use cases, etc.
> Instead, I believe we should look for a way to export all the chart information (series, data, attributes, properties, including user defined attributes) into json object,
> I would even go to the point that for minimal implementation, there is no need for HTML preview - in the editor. The existing server side can initially be used.
> Once we have exporter, we can see what connectors will be available, and pick one (or more …) that can be bundled.
Feel free to develop and contribute something like that, as a plugin.
You can use the existing chart plugin as a template.
I SERIOUSLY doubt the BIRT open source community can maintain it
We need to stay focused on the core functionality of BIRT, which is to convert data into documents.
The situation would be different if some company is willing to pay 2-3 full-time developers for several months or years.
Anyway, if you can develop a chart plugin that gets the chart data from a JSON service of the BIRT server on demand in a secure way and renders on the client, that would be great.
Step one would be to specify such a JSON service in a generic way.
Parameters which I think would be needed generically:
- An ID for the currently shown report (I don't know, but I think this must already exist anyway for those reports with pagination in the browser).
- An instance ID for the chart in question.
- A generic JSON structure to specify which data exactly the client requests.
Step two, then, is to develop the backend side:
- Create the JSON service as part of the server.
- Create an alternative chart plugin which does not render charts, but instead can interact with and provide data for the JSON service.
Step three is to develop the client side:
Of course, all this interactivity only works for HTML reports.
For all other output formats (e.g., PDF), a solution is needed which runs on the server and creates static output as an Image or SVG.
Now this part is *really* tricky because this means you have to simulate a modern browser on the server side!
Developing a *dashboard* solution is something completely different, though.
Just to mention some points which users would expect and which you must think about:
- Access control
- An editor to create your own dashboards
- High performance
- Zoom in and out
Take HomeAssistant with its Lovelace UI as an example.
To reach these goals, it is not only necessary to develop software for all this - the data access API and the data structures have to be optimized for this.
- For example, for efficient zooming in and out of time-based data with large datasets, you need to have data structures which allow this, e.g., not only the raw individual values must be stored, but also statistics per hour/day/week/month.
- And of course, you need some kind of URL structure.
- In many cases computing the statistics you want to show in the dashboards may be too slow to do it on-demand, so you'll have to pre-generate and cache them.
As much as I would love to see interactive charts in BIRT or even dashboards, I don't think we'll find volunteers to develop and maintain it.