项目作者: NathanCheshire

项目描述 :
Multipurpose tool written entirely in Java without FXML or other modern GUI dependencies (custom UI library built over Swing/AWT).
高级语言: Java
项目地址: git://github.com/NathanCheshire/Cyder.git
创建时间: 2020-07-25T01:52:33Z
项目社区:https://github.com/NathanCheshire/Cyder

开源协议:MIT License

下载


Logo

What is Cyder

Funny you should ask this question, I’m asked it quite a lot and usually fail to give a comprehensive and elegant
answer. The best I can do is something along the lines of “Cyder is a multi-purpose, desktop manager, GUI tool.” It is
written using a custom Swing UI library which was built on top of lightweight Swing components. No modern GUI
dependencies such as FlatLaf, MaterialFX
or FXML were used, thus all Cyder components are closely related to java/awt/Component.java.

Some examples of what you can do with Cyder include:

  • Downloading Audio from a YouTube video, playlist, uuid, or link
  • Image transforms, markup, and painting
  • Evaluating mathematical expressions as simple as 2 2 or as complex as sin(e^picos(64^cos(e^-1)))
  • Visualizing algorithms such as A*, Graham Scan, Game of Life
  • Converting audio files between formats such as wav and mp3
  • Playing local audio files with the ability to “dreamify”
  • Hashing inputs with a nice hashing widget using algorithms such as MD5, SHA1, and SHA256
  • Reading, writing, and storing notes
  • Demonstrating how Perlin noise works in both 2D and 3D with a visualizer
  • Converting between temperature formats such as Kelvin, Fahrenheit, and Celsius
  • Storing and running shortcuts
  • Playing games such as hangman or nxn tic-tac-toe

Screenshots


Cyder Console
Liminal Cyder

Audio Widget


Audio Player



Audio Player Search



Weather Widget
Weather

Paint Widget
Paint widget
Paint widget controls

Pathfinding Visualizer


Pathfinding Visualizer



Game of Life Widget


Conway's Game of Life



Perlin Terrain Visualizer


Perlin widget


Usage and Setup

To get started with Cyder, first download your favorite Java IDE such as IntelliJ, NetBeans, Eclipse, etc. You’ll then
want to make sure the IDE supports gradle operations. Next, clone Cyder
via git clone https://github.com/NathanCheshire/Cyder.git --depth 1. If you don’t absolutely require the entire git
history, I highly recommend shallow cloning as the extensive git history is quit large. Now load the project in your IDE
and allow the gradle setup task to run and the IDE to synchronize. Now you’ll be able to run Cyder by a runtime
configuration which invokes the main method inside of Cyder.java. Once started, Cyder should recognize there are no
users found and prompt for the creation of a user. Go ahead and create an account now.

For development purposes, you may want to add three props within a props file:

  1. autocypher set to true.
  2. autocypher_name set to your user’s username.
  3. autocypher_password set to your user’s hashed password (hash your password once using SHA256).

These props should be annotated with the @no_log annotation to ensure their values do not appear in any log files.
Additionally, your the props file containing your password should be added to your .gitignore file to avoid VCS
tracking. Cyder double hashes passwords to help prevent rainbow table lookups. However, leaving your singly-hashed
SHA256 autocypher password exposed leaves you more prone to attacks.