A JavaFX App for doing some stuff related to information theory.
Georgio Yammine
-
Calculates the entropy in bits for a String.
-
Calculates the huffman encoding for a given string and compares it to the uniform encoding. It shows how many bits will be used in each and how much is saved by using huffman.
The program also shows the Symbol frequency, the symbol encoding, and the message encoding.
-
Encrypt and Decrypt a plaintext using the Trifid cipher with a key. The cipher uses the key to create a 3x3x3 table using the key and then uses it to encrypt and decrypt.
The program shows the 3x3x3 generated table and the step by step to encrypt/decrypt.
Trifid only supports alphabet characters [a-z] and the '.' character (3x3x3=27) while the spaces are ignored and added later.
-
The application support both LIGHT and DARK mode. This can be changed by the user in the top right window using a switch button and this is remembered by the program.
Application builds can be found under releases for both [Windows] and Mac devices.
You can run the release by opening bin/Information Theory Calculator[.bat]
-
- JDK 11+: OpenJDK 11 (LTS) - JVM: Hotspot, AdoptOpenJDK 11, available at https://adoptopenjdk.net/.
-
- org.openjfx JavaFX 11
- org.jfxtras jmetro
- org.controlsfx controlsfx
-
- Run via IDE launcher.Main
- Run via Maven:
mvn javafx:run
-
mvn clean javafx:jlink
-
To create a cross platform build (for a different OS): First, you will need the JDKs for those other platforms. Download them as archives (zip or tar.gz), not installers from https://adoptopenjdk.net/releases.html, and unpack them to directories of your choice. Then pass this to the jmodsPath tag in the pom.xml file as follows:
<plugin> <groupId>org.openjfx</groupId> <artifactId>javafx-maven-plugin</artifactId> <version>0.0.6</version> <configuration> <launcher>Information Theory Calculator</launcher> <mainClass>launcher.Main</mainClass> <!--for building for cross platform include the platform jdk below (/Contents/Home/jmods)--> <jmodsPath> <!--mac--> C:/Program Files/AdoptOpenJDK/mac/OpenJDK11U-jdk_x64_mac_hotspot_11.0.11_9/jdk-11.0.11+9/Contents/Home/jmods </jmodsPath> </configuration> </plugin>
After passing the target JDK, running
mvn clean javafx:jlink
will generate the image for the target OS.
Generated Image can be found under target/image.
-
The project is licensed under GPL 3. See LICENSE file for the full license.