Jyalogue.org is a website which empowers coders (called members) who belong to marginalized groups. Much of the program logic is written in an open source language called Cooperscript (Python and Java can also be used). Cooperscript is used to build websites, as well as console-based apps (text only), GUI apps (desktop), and Android apps. Coopertags, a simplified form of HTML, is employed when building websites. Jyalogue training sessions consist of a dialogue between the tutor and student, using the web-based whiteboard.

Business Model

Volunteer tutors train members and subscribers remotely using a web-based whiteboard. Subscribers pay $10/year. They can receive tutoring and participate in Cooperscript forums. Members pay no fees and can also participate in Python and Java forums. Guests are neither subscribers nor members and pay no fees. They cannot receive tutoring or participate in forums, but they can use the Cooperscript SDK. Tutors pay no fees. Partners are employees of partner organizations which serve marginalized groups. New memberships must be verified by partners.

Subscribers can elect to pay an extra $20/year to enable access to Python and Java forums. Out of that $20/year, $10/year is donated to the partner organization chosen by the subscriber. Those donations are distributed to the partner organizations (if the subscriber doesn't pick one) in proportion to the member-hours generated by the members of each organization. Subscription fee revenue (augmented by outside funding if necessary) is used to cover expenses such as web hosting.

Marginalized Groups

Jyalogue serves individuals belonging to one or more of the following 7 marginalized groups: mental health issues, physical disabilities, addictions, immigrants, LGBTQ, history of being in jail, low income. The first partner organization will be Progress Place, a clubhouse in Toronto for people with mental health issues. Later 6 other partner organizations will be recruited, one for each of the other 6 marginalized groups. It is hoped that eventually dozens of non-profits will elect to become partner organizations.

Web-Based Whiteboard

A web-based whiteboard enables the tutor (a volunteer techie) to interact with a single student (a member or subscriber). The tutor and student take turns interacting with the whiteboard. At the beginning of each turn, every move (mouse clicks and text entered during the previous turn) is replayed, and then further interaction takes place. Prefabricated lessons are prepared by volunteer curriculum-writers and displayed on the whiteboard. A sample image-sharing Cooperscript script is provided as a demo project.

Monospace Mode

Monospace and rich-text modes pertain to websites created using Cooperscript and Coopertags. In monospace mode, all body text rendered to the screens of end-users is in a mono-spaced, typewriter-style font. Every character takes up 2 square cells: an upper cell and a lower cell. Superscripts and subscripts are handled by employing a vertical offset of one square cell. Header text is also mono-spaced, and each character takes up 2 oversized square cells.

Additional Formatting

The grid of characters can be subdivided into panels, which can themselves be subdivided into more panels, and so on. Any panel can contain zero or more text boxes, which may overlap each other. Vertical grid lines each take up one square cell per row of square cells. Horizontal grid lines are displayed in the same pixel row as underscore characters. Any row of square cells containing a horizontal grid line which is 2 pixels wide is taller by exactly one pixel. The following bracket characters: ( ) [ ] { } can be oriented vertically or horizontally, taking up a single column or row of at least 2 square cells, respectively. Widgets such as check boxes, radio buttons, and combo box arrows take up 4 square cells (2 by 2). Images, animations, and diagrams are contained in canvas objects, which can appear anywhere panels can appear.

Rich-Text Mode

In rich-text mode, a given header or paragraph of body text can consist of a single variable-width font. Paragraphs have before/after spacing, left/right indent, and line spacing (single, double, 1.5, etc.). Panels have margins on all 4 sides. In both rich-text and monospace modes, text is rendered to the HTML5 canvas object. Some features like form fields and submit buttons use hidden HTML.

Android Apps

Cooperscript can be used for developing Android apps. Every app consists of a single app-text file. Blanks are used as tabs and to separate adjacent alphanumeric tokens. Parentheses are used for grouping. String literals are delimited with double quotes. Oversize string literals are split up on more than one line: a backslash followed by a newline is employed to that end. Image file data is encoded using base 64. The SDK is available for Android, Windows and Linux.

Android Editor

Smart indentation is used to format code. Typing open parenthesis also inserts matching close parenthesis. Drag the close parenthesis somewhere else if desired. Dragging the first character in a line of code to the right expands all lower-level code. Result: every open parenthesis is followed by a newline, and every close parenthesis occurs at the beginning of a line. Dragging the first character in a line of code to the left collapses all lower-level code. Result: every statement takes up just one line, except the parentheses delimiting statement blocks behave as if they are expanded. Oversize statements are broken up on more than one line (2 spaces in a row indicate a line break). Use backspace to toggle highlight of text block delimited with parentheses (use Enter to delete highlighted text block).

Swipe Gestures

To switch back and forth between the command-line shell, code editor, design mode, and execution mode (what the end-user sees), the user swipes along the bottom edge of the bottom panel of the screen, from the left edge to the right edge or vice versa. Tapping a widget in design mode selects it. Left/right swipes scroll the screen by one panel width (panels may be nested), whenever the right/left edge of screen content is off-screen. Up/down swipes scroll down and up.

Files and Folders

Every file and folder in the directory tree corresponding to a given app (embedded in an app-text file) consists of a dir/file keyword, a file name, optional key-value pairs (meta-data) enclosed in parentheses, a body keyword, and a block enclosed in parentheses. All text lines in the body are indented 2 spaces. Hence subdirectories are indented 2 spaces per level of depth in the directory tree.

Android Keyboard

1 2 3 4 5 6 7 8 9 0
A S D F G H J K L ;
SP ( - " \ # : FN CR
  • SH - Shift
  • SP - Space
  • BK - Backspace
  • CR - Enter
  • FN - Functions
  • & - Symbols
[ Back to Top ]