|
1 | 1 | --- |
2 | 2 | title: Help > About Portfolio Performance |
3 | | -todo: platform choice implications |
| 3 | +lastUpdate: 2025-05-18 |
| 4 | +description: Detailed information about the Portfolio Performance program, including version, platform, Java version, key software components, contributors, translators, and installation details. |
| 5 | +changes: |
| 6 | + - date: 2025-05-18 |
| 7 | + author: Nirus2000 |
| 8 | + description: |
| 9 | + - Updated to version 0.76.2 (May 2025) |
| 10 | + - Expanded Key Software Components & Libraries section |
| 11 | + - Updated contributor and translation info |
4 | 12 | --- |
5 | | -Detailed information about the Portfolio Performance program could be found in the menu `Help > About Portfolio Performance`. The top panel contains the version, e.g. 0.67.0 from december 2023, the platform and the Java version it runs on. The platform could be Windows (win32, x86_64), Linux, or macOS; see [Installation](../../getting-started/installation.md). The Portfolio Performance program is built with the Java programming language. The most recent Long Term Support (LTS) version of the OpenJDK (Java Development Kit) is obtained through [Azul.com](https://www.azul.com/downloads/?package=jdk#zulu). From the copyright info, you learn that the author `Andreas Buchen` started development back in 2012. |
6 | 13 |
|
7 | | -Figure: The About Portfolio Performance panel.{class=pp-figure} |
| 14 | +# Help > About Portfolio Performance |
8 | 15 |
|
9 | | - |
| 16 | +Detailed information about the **Portfolio Performance** program is available under the menu: |
| 17 | +`Help > About Portfolio Performance`. |
10 | 18 |
|
11 | | -The bottom panel contains links to the used (open source) software, code contributors, translators, and Writers. There is also a section about Installation Details. |
| 19 | +--- |
12 | 20 |
|
13 | | -## Software |
| 21 | +## About Panel Overview |
14 | 22 |
|
15 | | -[Eclipse Foundation](https://www.eclipse.org/): Eclipse is a free and open source software development environment that supports various languages, platforms and plugins. It is a very popular and widely used IDE (Integrated Development Environment). Eclipse allows developers to create, test, debug, and deploy applications using a common framework and a rich set of tools. From a user perspective, the choice of a specific IDE is not important. The development platform e.g. Java SDK however is very much. |
| 23 | +Figure: About Portfolio Performance Panel {class="pp-figure"} |
16 | 24 |
|
17 | | -[Apache Software Foundation](https://apache.org/): Several libraries are used; for example to extract text and metadata from PDF documents, and to perform HTTP requests and handle responses (e.g. communicate with Portfolio Report). |
| 25 | + |
18 | 26 |
|
19 | | -[SWT Chart Project](https://github.com/eclipse/swtchart/wiki): The Eclipse SWTChart software is used to create the line and pie charts in the app. Portfolio Performance uses the Standard Widget Toolkit (SWT) which is a graphical user interface (GUI) library that allows Java developers to create native-looking applications for different platforms. You enable this library in `Help > Preferences > General`. |
| 27 | +--- |
20 | 28 |
|
21 | | -[Tree Map Library](https://github.com/smurf667/treemaplib): Treemaps represent a distinct visualization technique for illustrating hierarchical data by using a series of nested rectangles. This kind of map is used in the Taxonomies menu. |
| 29 | +### Top Section |
22 | 30 |
|
23 | | -[jsoup Java HTML Parser](https://jsoup.org/): jsoup is a Java library that simplifies working with real-world HTML and XML. It offers an easy-to-use API for URL fetching, data parsing, extraction, and manipulation using DOM API methods, CSS, and xpath selectors. The library is used for example to fetch the historical prices from a table on a financial website. |
| 31 | +- **Version:** 0.76.2 (May 2025) |
| 32 | +- **Platform:** Windows (win32, x86*64), Linux, or macOS |
| 33 | + See [Installation](../../getting-started/installation.md) for details. |
| 34 | +- **Java Version:** Version of the Java Runtime Environment (JRE) or Java Development Kit (JDK) used |
| 35 | + Portfolio Performance is developed in **Java**. It is recommended to use the latest **Long-Term Support (LTS)** OpenJDK version, available from [Azul Zulu](https://www.azul.com/downloads/?package=jdk#zulu). |
| 36 | +- The project was started in 2012 by **Andreas Buchen**. |
24 | 37 |
|
25 | | -[JSON.simple](https://github.com/fangyidong/json-simple): JSON.simple is a simple Java toolkit for JSON. You can use JSON.simple to encode or decode JSON text. This tool is used in the app for downloading historical prices from a JSON data source. |
| 38 | +--- |
26 | 39 |
|
27 | | -[Protobuf](https://github.com/protocolbuffers/protobuf): Protocol Buffers (a.k.a., protobuf) are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data. The software is used to convert the XML-datastructures of the portfolio file into Java usable data structures. |
| 40 | +### Bottom Section |
28 | 41 |
|
29 | | -[Guava](https://github.com/google/guava): The Guava libraries are intended to complement the core java libraries and make working in the Java language more pleasant and more productive. |
| 42 | +Links to: |
| 43 | +- Open source software used by the program |
| 44 | +- Code contributors |
| 45 | +- Translators |
| 46 | +- Documentation authors |
| 47 | +- [Installation Details](../../getting-started/installation.md) |
| 48 | + Detailed information about the environment Portfolio Performance runs in (operating system, Java and Eclipse components, log file paths, etc.) |
30 | 49 |
|
31 | | -[JsonPath](https://github.com/json-path/JsonPath): JsonPath is a query language for JSON. It allows to select and extract a sub-section from a JSON document using a simple syntax that is similar to XPath for XML. |
| 50 | +--- |
32 | 51 |
|
33 | | -[D3.js](https://d3js.org/): D3.js is an abbreviation for Data-Driven Documents and is a JavaScript library to work on data visualization e.g. graphs. |
| 52 | +## Key Software Components & Libraries |
34 | 53 |
|
35 | | -[XStream](https://github.com/x-stream/xstream): A Java library that allows you to serialize and deserialize Java objects to and from XML or JSON. |
| 54 | +Portfolio Performance leverages a robust set of open-source libraries and frameworks to deliver its features, ensure cross-platform compatibility, and provide a native user experience: |
36 | 55 |
|
37 | | -[OpenJDK](https://openjdk.org/): Running a Java program on for example a Windows machine requires that the Java Development Kit (JDK) is installed on that computer. Portfolio Performance uses the JDK provided by Azul.com. |
| 56 | +- **[Eclipse Foundation](https://www.eclipse.org/)** |
| 57 | + The backbone development platform for Portfolio Performance. Eclipse provides the **Integrated Development Environment (IDE)** and the **Standard Widget Toolkit (SWT)**, a GUI toolkit used to create native-looking graphical interfaces across platforms. SWT enables rendering components that feel consistent on Windows, Linux, and macOS by using the underlying OS widgets. |
38 | 58 |
|
39 | | -## Code Contributors |
| 59 | +- **[Apache Software Foundation](https://apache.org/)** |
| 60 | + Provides multiple foundational libraries. For example: |
40 | 61 |
|
41 | | -A link to the Github pages of each of the 159 contributors is given. A graphical overview of all contributions from 2012 till today can be found at [Github](https://github.com/portfolio-performance/portfolio/graphs/contributors). |
| 62 | + - PDF parsing and metadata extraction (allowing Portfolio Performance to handle PDFs for reports or document processing). |
| 63 | + - HTTP client libraries that manage network communication, including requests to online price data providers and Portfolio Report services. |
42 | 64 |
|
43 | | -## Translators |
| 65 | +- **[SWT Chart Project](https://github.com/eclipse/swtchart/wiki)** |
| 66 | + Extends SWT with rich charting capabilities. Portfolio Performance uses it to render line charts, pie charts, and other visual financial data representations, ensuring interactive and high-quality graphics. |
44 | 67 |
|
45 | | -Portfolio Performance has been translated into Spanish, Dutch, Portuguese, Brazilian Portuguese, French, Italian, Czech, Russian, Slovak, Polish, Chinese (simplified), Chinese (traditional), and Danish. |
| 68 | +- **[Tree Map Library](https://github.com/smurf667/treemaplib)** |
| 69 | + Implements treemap visualizations, a space-efficient way to represent hierarchical data with nested rectangles. Used notably in the Taxonomies menu to visualize portfolio asset distribution and classifications. |
46 | 70 |
|
47 | | -## Writers |
48 | | -The two main sources of documentation for the program are the Forum ([German](https://forum.portfolio-performance.info/c/deutsch/10) - [English](https://forum.portfolio-performance.info/c/english/10)) and the Handbook ([German](https://help.portfolio-performance.info/de/) - [English](https://help.portfolio-performance.info/en/)). |
| 71 | +- **[jsoup Java HTML Parser](https://jsoup.org/)** |
| 72 | + A powerful, user-friendly HTML and XML parser library. Portfolio Performance uses jsoup to scrape historical price data and other relevant information from financial websites by parsing real-world web pages, even if they are poorly formatted. |
49 | 73 |
|
50 | | -## Installation Details |
| 74 | +- **[JSON.simple](https://github.com/fangyidong/json-simple)** |
| 75 | + A lightweight Java toolkit to encode and decode JSON text. Essential for handling data downloads from JSON APIs, such as retrieving historical price feeds and other online data sources. |
| 76 | + |
| 77 | +- **[Protocol Buffers (Protobuf)](https://github.com/protocolbuffers/protobuf)** |
| 78 | + Google's efficient, language- and platform-neutral serialization mechanism. Portfolio Performance uses protobuf to convert the portfolio’s XML-based data structures into optimized Java objects for faster access and manipulation. |
| 79 | + |
| 80 | +- **[Guava](https://github.com/google/guava)** |
| 81 | + Google's core Java libraries extension. Guava provides immutable collections, caching utilities, advanced concurrency libraries, and other utilities that make the codebase more robust and developer-friendly. |
| 82 | + |
| 83 | +- **[JsonPath](https://github.com/json-path/JsonPath)** |
| 84 | + A query language for JSON, inspired by XPath for XML. Portfolio Performance uses JsonPath to extract specific pieces of information efficiently from large JSON documents. |
| 85 | + |
| 86 | +- **[D3.js](https://d3js.org/)** |
| 87 | + Although primarily a JavaScript library for creating dynamic, interactive data visualizations on the web, D3.js is used within Portfolio Performance's reporting components (e.g., Portfolio Report) to generate rich, web-based charts and graphs embedded in the app. |
| 88 | + |
| 89 | +- **[XStream](https://github.com/x-stream/xstream)** |
| 90 | + Serializes and deserializes Java objects to XML and JSON formats. This library helps Portfolio Performance persist and load complex portfolio data structures seamlessly. |
| 91 | + |
| 92 | +- **[OpenJDK](https://openjdk.org/)** |
| 93 | + The open-source Java Development Kit required to run Portfolio Performance. The recommended builds come from [Azul Zulu](https://www.azul.com/downloads/?package=jdk#zulu), ensuring stability and long-term support across platforms. |
| 94 | + |
| 95 | +--- |
51 | 96 |
|
52 | | -Clicking on this tab will generate a very long and detailed description of the environment Portfolio Performance is running in (OS, Java and Eclipse components, paths to log-files, ...). |
| 97 | +## Contributors |
53 | 98 |
|
| 99 | +Portfolio Performance is developed and maintained by a large, worldwide community of contributors. Hundreds of developers from around the globe continuously improve the software. |
| 100 | +A full overview of contributors and their activity since 2012 is available on the [GitHub contributors graph](https://github.com/portfolio-performance/portfolio/graphs/contributors). |
54 | 101 |
|
| 102 | +Figure: Contributors {class="pp-figure"} |
55 | 103 |
|
| 104 | + |
56 | 105 |
|
| 106 | +--- |
| 107 | + |
| 108 | +## Translations |
| 109 | + |
| 110 | +Portfolio Performance is localized into many languages including but not limited to: |
| 111 | +Spanish, Dutch, Portuguese, Brazilian Portuguese, French, Italian, Czech, Russian, Slovak, Polish, Simplified Chinese, Traditional Chinese, Danish, and many more. |
| 112 | + |
| 113 | +You can contribute or join the translation effort via [Join the POEditor Project](https://poeditor.com/join/project?hash=4lYKLpEWOY). |
| 114 | + |
| 115 | +--- |
| 116 | + |
| 117 | +## Documentation Authors |
57 | 118 |
|
| 119 | +The primary sources of documentation are: |
58 | 120 |
|
| 121 | +- **Forum:** [German](https://forum.portfolio-performance.info/c/deutsch/10) | [English](https://forum.portfolio-performance.info/c/english/16) |
| 122 | +- **Handbook:** [German](https://help.portfolio-performance.info/de/) | [English](https://help.portfolio-performance.info/en/) |
59 | 123 |
|
| 124 | +--- |
| 125 | + |
| 126 | +## Installation Details |
| 127 | + |
| 128 | +The **Installation Details** tab provides a comprehensive report about the environment Portfolio Performance is running in, including: |
| 129 | +Operating system details, Java and Eclipse components versions, configuration paths, and locations of log files. |
| 130 | + |
| 131 | +--- |
0 commit comments