I am pleased to announce that the OpenTG Theme Editor (tgthemer) is completed and will be available as part of the final release. Features include:
Graphical mode application (currently tested on KDE-qt5 and MacOS-cocoa toolkits)
Loading and Saving template files from disc
Syntax Highlighter within the editor to distinguish colors and known variables
XML based highlighter rules to provide customization and easy future expansion
Colors & Text effect selectors via radio buttons to quickly insert the correct variable
Insert Variable feature to inject a properly formatted placeholder variable.
Compiled and tested on MacOS and Linux desktops.
While it does not provide syntax checking, nor advanced freemarker tags/logic, I have already found it very useful working with the output templates. Here is a screenshot on KDE (NetRunner), this time using a lighter windowing theme. It shows editing of he BBS Directory Listing template. The documentation is available in the Wiki.
If you have comments or suggestions, please email the project mailing list.
OpenTG uses a template engine to render all screen output. The architectural decision to use templates provides the ability for easy language translations, customizations, and user selectable themes. Editing templates can be a challenge, and does not provide an easy way to get a preview until you run and look at the rendered output from within the software. Additionally, inserting variables and properly setting the tags can also pose a challenge.
Introducing ‘tgthemer’, the OpenTG Theme Editor. While not fully functional, the proof of concept code has been written and is in-progress. Below is a screenshot of the current snapshot. This shows the editor functioning on NetRunner 18, a KDE based Linux desktop. The program is designed with Lazarus, and compiled in fpc using the Qt5 widget set.
As 1.0 approaches, this will become an important tool in user-adoption of OpenTG.
Work continues on clode cleanup and updates on the OpenTG code. Below is a summary of the recent changes in the codebase that have made a significant impact toward a 1.0 release:
The Input module had used a Java library “JLine-0.9.4”, a quite old and no longer supported jar file. Special thanks to the JRuby team for their help in resolving the issues. A newer feature in Ruby’s library ‘io/console’ provides features similar to JLine which allows for ‘raw’ console input. This allowed the code to replace several methods in the Tgio library. Benefits include a memory reduction, removal of an outdated jar file, and usage of a native ruby library.
Timebank feature has been implemented, which allows users to deposit and withdraw time from user sessions,
Database simplification has been made by removing the option for non-embedded databases. All future development will focus on using and optimizing the H2 database.
Other minor cleanups and code enhancements have been made.
Today I have published an updated project roadmap with a goal of reaching a 1.0 release by February 2019. This is an aggressive goal, but with the code in a positive state and many features nearly implemented, I believe this date is achievable. While the first release will not meet all of the project’s final objectives, a minimal viable product will be made available for community download. This is an important step to gain interest in the project, and plan for the next milestone.
The OpenTG project is pushing out the latest snapshot release for download. Testers and Developers are encouraged to download and report issues. This version is an early preview of the software, and many features are not implemented.
In 2008, I started writing a modern clone of the Telegard BBS software. I spent about 3 years coding until life and full-time work dictated my full attention. Several weeks ago I pushed the shelved code to GitHub, with the intention of posting it for reference, so that others might find it useful. With the thought in the back of mind, I began to wonder if I could get it working after almost 8 years of neglect. Much had happened in the software world since then. Java had gone through some tough bouts with the OpenSource community following the Oracle v Google battle. Apache Hibernate, the JRE I had embedded was retired. JRuby had made significant leaps going from MRI 1.9 to 2.5. The Sequel ORM had been significantly updated, deprecating features I had relied upon. Other libraries had released new versions. I took the challenge.
After two days of work, I was able to get the toolchain updated and fixed parts of the code that had stopped working. I wrote several new Rake tasks to help automate some things and make getting the system working easier. Finally, I wrote a short, 16 step INSTALL document so that others might be able to use the development snapshot. While I prefer mercurial ‘hg’ as my VCS, I decided to push the code to GITHUB for the time being.