Binary Snapshot Release 20110517 available for Download

17 May 2011 in Uncategorized

A new binary snapshot is available for download. You can get it here for Linux.

http://telegard.org/snapshots/telegard20110517.tbz  19MB Bzipped2 Tar File

Installation Instructions

cd /opt

tar -xjvf telegard20110517.tbz


Follow the instructions in the INSTALL file


This binary snapshot is provided as a way to get people interested in the project. Work has slowed dramatically recently, and we could use some fresh developers to help continue the work.


20110301 – Project Status Update & Screenshots

1 March 2011 in Development Screenshots, Project Status


Work has been slow lately due to my busy work schedule. I took on a new Job back in July, and since then have been travelling around North America. As a result, my free-time to work on this project has slowed, but not my determination. Since the last post, much progress has been made on the Message Areas. Screenshots posted here will show some of the functionality. There has been a lot of minor database changes as well, so if anyone is actually running the code on their own machines, they will either need to manually perform a schema change, or more easily, delete your existing databases and start fresh. In sticking with the Roadmap, the current goal is to get as much of the core functionality completed in order to reach a 1.0 release later this year. Subsequently, 2.0 will become a more feature enhanced version and include many refinements. Thanks to everyone who has offered their support for this project, and the fans who stop into the IRC chat room.

One important change, is support for the built-in editor is no longer available. The code remains, but the functionality has been disabled in favor of Nano which provides enhanced functionality such as being able to load and edit quoted text when replyin to a thread.

Commit Summary since last update


Entering the message reader, then displaying the message list for the currently selected area:

Posting a NEW message to the current area:

Messages are edited with restricted Nano by default:

Replying to an existing Post. Telegard automatically adds the "RE:" and asks if the user wants quoting:

Viewing a message. In this case, the one we just posted:


What's Next?

Next, work will be done of the FileAreas section to get working download functionality.


Project Update 20110117

17 January 2011 in Uncategorized

Well, 2010 is in the not so distant past, and what a great year for this project. Lots of progress was made on the core engine, and funcitonality improvements. I'd like to thank all of those folks who have been assisting with the tests on the Alpha server;  your feedback, and suggestions are appreciated and respected., keep it up!  Our IRC room has been getting more visitors lately, so thank you everyone for your support, even it its just to ask when the final release will be. I wish I had a better answer for that, but this project's scope is actually quite large. So what is happening since the last post in November and the last code commit?


Yes, research! I've been looking into some new toolkits for GUI development with the intention of creating an administration interface for the System Operators. What does this mean?  One of the coolest parts of operating a BBS back in the day was watching your callers login to the system, and being able to interact with them via Chat or allow them to request chat via the "Page Sysop" feature. This is a rather complicated feature to implement based on the design of the Telegard/2 code, which acts more like a UNIX shell than a listening server. The original Telegard and other BBS's made this much more accessible as the modem and tty handlers provided this facility, but not so much on pseudo terminals provided via UNIX and SSH. However, I believe there is a way to implement at minimum a sort of WFC style interface with administration tools and chat features.  

So to answer the question: what kind of research have you been doing?

I've been looking into toolkits for Swing programming. Swing is Java's GUI Widget framework. In particular, tols such as Griffon, MonkeyBars, Swiby, and Limelight. Each of these tools offers various ways of creating graphical interfaces using their own DSL. As of right now, testing is still on-going through Proof of Concept code.

Next Code Push

The next code push should be coming soon. The current goal is to get the message boards working entirely. Following this, work will resume of the file areas.

IRC Update

There have been some new regulars in #telegard, thanks for your ongoing support and keeping the project talk interesting.



100th Code Commit

11 November 2010 in Uncategorized

Since 2010-04-12 when the project was re-started as Telegard/2, the source code tree is now at Revision 100. Here are some statistics about the project and the progress thus far:

Total Files

ruby: 62 (100.00%), ftl: 102 Templates

SLOC Directory SLOC-by-Language (Sorted)
5181 lib ruby=5181
770 admin ruby=770
266 top_dir ruby=266
0 class (none)
0 conf (none)
0 db (none)
0 tpls (none)

Totals grouped by language (dominant language first):
ruby: 6217 (100.00%)

Total Physical Source Lines of Code (SLOC) = 6,217
Development Effort Estimate, Person-Years (Person-Months) = 1.36 (16.35)
(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months) = 0.60 (7.23)
(Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule) = 2.26
Total Estimated Cost to Develop = $ 184,035
(average salary = $56,286/year, overhead = 2.40).

* generated using David A. Wheeler's 'SLOCCount'.




JRuby vs MRI Ruby: Kernel.system() behavior with external Curses program

8 November 2010 in Uncategorized

** Update (20101110):

The solution to the problem is to use JRuby's FFI library. This allows connecting directly to 'libc' for calling POSIX execl. Nano support has been added to Telegard, and other editors may follow.

Original Post

In an effort to support external editors such as Nano, LE, NE, Joe, Jed, etc, I am working on finding a solution to a problem that appears unique to Java. Since this project is written in JRuby, it also inherits this apparent flaw in the JVM when calling external programs. Please see the email below which I have sent out to the JRuby Users list. I will be tracking a solution (if one is found) on this post.

Good Day,

I am writing a terminal program in JRuby, and I have a need to launch
an external Text editor, in particular 'nano' or more speficially, '/
bin/rnano' which is the Restricted nano. I have also looked at other
editors, but it seems they all use Curses or NCurses to handle the
screen. I tested this on MRI and it works prefectly as expected.
During research I have found lots of information about how Java
handles external programs, and it seems like I/O is somewhat tricky
for calling external programs.

So I have 2 questions:

1) Depending on the Java version, external programs can be called
a) Some examples use the java call "Runtime.exec()"
b) Newer versions use ProcessBuilder
Which does JRuby implement?

2) The programmer must handle then input and output streams so the
caller can transmit I/O to/from the executed external program. But
this doesn't seem to work with Curses programs under Java.

This far, here is what I have tested:
Test 1: The C or MRI Ruby Way
#!/usr/bin/env ruby

Test 2: The JRuby Way (same as test 1 but using JRuby)
#!/usr/bin/env jruby

Executes nano, displays the rendered nano editor screen, but any
subsequent input or output does not interact with the editor including
Nano's CTRL functions. Hitting CTRL-C terminates the program.

Test 3: The Java Way

import java.io.*;
import java.util.*;
public class DoProcessBuilder {
   public static void main(String args[]) throws IOException {
     if (args.length <= 0) {
       System.err.println("Need command to run");
     Process process = new ProcessBuilder(args).start();
     InputStream is = process.getInputStream();
     InputStreamReader isr = new InputStreamReader(is);
     BufferedReader br = new BufferedReader(isr);
     String line;
     System.out.printf("Output of running %s is:",
     while ((line = br.readLine()) != null) {

When running the compiled version of test2. I run as "java
DoProcessBuilder /bin/rnano". In either case of these tests under a
JVM, the curses application seems unusable.

Anyone have a suggestion on how to accomplish calling an NCurses
program correctly in JRuby/JAVA?

Project Updates 20101106

6 November 2010 in Uncategorized

There has been a lot of work going into the project lately. Some of the key areas of focus have been around Security and Administration.

Here are some of the more exciting bullet points from the most recent commits in no particular order:

  • Trap CTRL-Z (SIGTSTP) POSIX Signal to prevent undesired breakout or stopping of process by an end-user. 
  • Security Enhancement: No plain text passwords in configuration files. Created new 'module Security' to handle various encryption methods.
  • Security Enhancement: H2 Database now uses a defined SA user & password instead of blank values.
  • Added 'webremote' to h2.init script to allow remote access to DB on demand
  • User preferences editor
  • Replaced JGoodies with Apache Commons Validation library.
  • Web Based administration tool intial groundwork completed based on Ramaze.
  • MidoriJS integration into WebAdmin
  • Upgraded H2 to 1.2.145
  • Renamed main configuration file to 'telegard.conf.yaml'.
  • Added new configuration file 'security.conf.yaml'.
  • Added Password Generator script.

One of the most important changes made was the removal of "Clear-Text Passwords" from configuration files. This has 2 significant advantages:

  1. A remote intruder or user on the operating system cannot decipher the password string by simply viewing the file.
  2. Passwords in memory are now encrypted strings instead of cleartext preventing a savy user from retrieving them from the heap.

Note: UserPasswords have always been stored encrypted in the database 'users' table.

Also, a new Alpha Test Server has been setup for providing a testing ground for the latest working code snapshots. For information and access, please ask in the IRC channel.


Screenshots 20101106 – Web Admin

6 November 2010 in Uncategorized

Lots of work has been going into the project lately. The following screenshots show the initial work on a Web-Based administration tool. The GUI is basic, and currently unrefined. It is based on Ramaze and heavily integrates with the Telegard/2 Libraries.

Web Admin Overview Page

Web Admin BBS Settings Web Admin BBS Database Settings Web Admin BBS Login Settings Web Admin BBS Signup Settings Web Admin List of Message Areas Web Admin List of BBS Networks Web Admin Details for TGnet Network Web Admin User Manager Web Admin Details for User



Screenshots 20101022

22 October 2010 in Uncategorized

This month, lots of work has gone into Message Areas. With this, the planning for TGnet (Telegard Network) has also been introduced into the code. TGnet is a Roadmap item which will allow OpenTelegard BBS systems to share content across a distributed network, similar to FidoNET or WWIVnet, but using modern protocols designed specifically for this project. 

Here are some screenshots of recent new functionality:

Notice the ability to Toggle Menus and Toggle Pager.


This screenshot shows an uncolorized (incomplete) template. If the area is not Network, the template hides that section.



20101012 – Project Status Update

12 October 2010 in Uncategorized

Work continues on various areas of the software. In the last update, I talked mostly about some of the work happening in the FileAreas. This work is important, but has been put on hold to work on the Email and Messaging Areas. The primary reason for this change of focus is due to the fact that more work must be done on the administration tools before File Areas can be completed. The administration tools requires far more work, and without functioning user front-ends, would be more difficult to program. This is the opposite approach of the original OpenTelegard/1 project where I first wrote the administration tools and later moved to the front-end.  

Other changes are minor revision updates within the Toolchain. Java version 1.6.0_22 is now released, as is JRuby 1.5.3

Don't forget to stop by our IRC channel  #telegard  @  irc.FreeNode.Net


Interactively working with the Telegard Source Code through jIRB

12 October 2010 in JRuby

A new wiki document has been posted describing how developers and testers can debug Telegard interactively using the JRuby IRB shell.


Browse Source Code

BBS Resources

Powered By Open-Source

Corporate Sponsors & Donors

Developed withEasy FreeMarker development. Coding
assistance, error highlighting and more

Telegard/2 Project would like to thank JetBrains for their generous donation of an IntelliJ OSS license.

Related Advertisements

Increase your website traffic with Attracta.com