MoonEdit

From S23Wiki
Jump to: navigation, search
Moon Edit Liberation

Ein atemberaubendes Programm zur simultanen gemeinsamen Textbearbeitung online.

MoonEdit is a collaborative editor for text that allows several users to edit the same document simultaneously from different internet-accounts. Every user can modify documents at any place or time, without restriction. You can watch other people's cursor movements in real time as they make changes. Each user writes text having an own background color so you can easily tell who wrote what. It also included are a few bells and whistles, such as simulating the typing sound of a keyboard (so you know when others are making changes), an in-line equation evaluator (so you don't need to open a separate window for a calculator), and even a rudimentary music sequencer.

There is also community-wiki MoonEdit dealng with this software.

The ting-wiki is for the application of moon-edit in tings (regular sessions).

(See also the ting-wiki / moon-edit which is for commonly developing the program.)

The moon-edit server runs on s23.org, default port (32123). Mutante 20:03, 12 Mar 2005 (CET)


outdated comments:

Gehört flux in wiki integriert ;) MattisManzel

sweeeeeeeeeeet, try server c.h23.org port 32123 , it's famous!! - TaLisMaN (it was - til it left)

DANKESCHÖN :))) - zakx

moon-edit libaration front


MoonEdit readme.txt

==============================================================================
                      MoonEdit, created by Tomasz Dobrowolski
==============================================================================
                         ME version 0.14.1s, 2005-01-29

         Contents:
            0.0  INTRODUCTION
                  0.1  SYSTEM REQUIREMENTS
            1.0  RUNNING "ME"
                  1.1  RUNNING WITHOUT A DEDICATED SERVER (ME.EXE)
                  1.2  USING EXISTING SERVER (ME.EXE)
                  1.3  SETTING UP A DEDICATED SERVER (MESERVER.EXE)
                  1.4  SAFETY ISSUES
            2.0  EDITOR FEATURES (ME.EXE)
                  2.1  BROWSING CHANGE HISTORY AND "UNDO"
                  2.2  SAVING FILES (.ME vs .TXT) AND EXPORTING AS HTML
                  2.3  COMMANDS AND SCRIPTS
                  2.4  CONFIGURATION FILE (ME.CFG)
                  2.5  QUICK CALCULATIONS
                  2.6  MUSIC SEQUENCER
            3.0  HISTORY OF UPDATES
            4.0  KNOWN BUGS
            5.0  CREDITS

==============================================================================
0.0  INTRODUCTION
==============================================================================

MoonEdit is a collaborative text editor which allows many users over the internet to edit the same document simultaneously. Every user can modify documents at any place or time - without restriction. You can watch other people's cursor movements in real time as they make changes. Each user writes text in their own color so you can easily tell who wrote what. Also included are a few bells & whistles, such as simulating the typing sound of a keyboard (so you know when others are making changes), an in-line equation evaluator (so you don't need to open a separate window for a calculator), and even a rudimentary music sequencer!

------------------------------------------------------------------------------
0.1  SYSTEM REQUIREMENTS
------------------------------------------------------------------------------

           PROCESSOR: PENTIUM II 400MHz (or better)
    OPERATING SYSTEM: WINDOWS 98 or WINDOWS XP (recommended) running DirectX 5.0
                      (or better), or Linux
            GRAPHICS: SVGA with 800x600 resolution
               SOUND: DirectSound compatibile sound device (optional)
               INPUT: keyboard, pointing device: mouse / tablet / trackball

MoonEdit uses the UDP network protocol (TCP/IP family).
Default UDP port number is 32123.

==============================================================================
1.0  RUNNING "ME"
==============================================================================

The MoonEdit package consists of two executable files:

   Me.exe - a text editor with full GUI. It can act as client or server capable
      of hosting or joining a session for editing shared documents. Use me.exe
      as a host for single documents - perfect for quick multi-user brain
      storming, programming jobs, or general chatting.

   Meserver.exe - a dedicated server for bigger projects that require a whole
      directory of files to be shared. Meserver is a lightweight console
      application meant to be run in the background. It stores the history of
      all sessions in a special log file. To see how it works, run a me.exe
      client on the same machine and connect to it using this IP: 127.0.0.1

------------------------------------------------------------------------------
1.1  RUNNING WITHOUT A DEDICATED SERVER (ME.EXE)
------------------------------------------------------------------------------

Step 1. Start hosting a text file for multi-user editing:

   Menu: File\Host...

     The user with the best internet connection or most accessible internet address
     should host the server.

Step 2. Joining:

   Menu: File\Join...

     Other users can join and edit a text file together by typing the
     IP address or URL name of the host server.

Step 3. Multi-user editing experience.

Step 4. Disconnecting:

   Menu: File\Disconnect (keyboard shortcut: F10)

   ATTENTION!
     The host should be the last one to disconnect.
     This is because other users are directly connected to the host,
     and they can only edit together when the host is running.

------------------------------------------------------------------------------
1.2  USING EXISTING SERVER  (ME.EXE)
------------------------------------------------------------------------------

Step 1. Joining a server:

   Menu: File\Join...

      Type the IP address or URL name of a dedicated server,
      and click "Join server" (or press ENTER).
      By default, a shared files list will be displayed.
      This is what it should look like:

      ---------------------------------------------------
      Hello. This is ME standalone server.
         ME v0.14.0 Jan  5 2005 17:43:43

      Press [CTRL+ENTER] or double-click on file to join.

        Cmd        File name           Passwd    Users
       djoin     diary.txt               yes      0/14
       djoin     readme.txt              no       1/14
       djoin     (chat)                  no       0/14
       djoinnew  (new file)
      ---------------------------------------------------

   Now move your text cursor to the line containing the file you want to join
   and press CTRL+ENTER (or you can double-click the line with the mouse).
A "Join file" dialog box will appear. If this file is protected with a password,
   you must type that password. Before clicking "Join" you can also specify some
   additional options (see instructions below).

   If you select "djoin (chat)", you will connect to log-free ME chat session.
   Text written here automatically resets when everyone leaves.

   If you select "djoinnew (new file)", you can add a new shared file to the
   dedicated server directory and start editing it. If you do so, a "Create new
   file" dialog will appear. Now you need to type a new file name, optionally add
   a password to protect this file and, click "Join". If you type "(chat*)" as the
   file name (where * is your own text), you can start your own log-free chat session.

  ADDITIONAL OPTIONS FOR "JOIN FILE" DIALOG:

     "Remove history"
         Click "Yes" to permanently remove all the history of changes to a file.
         It will remove it only if nobody is currently editing the file.
         Removing history is irreversible operation but can significantly
         decreases file download time.

Step 4. Multi-user edit experience.

Step 5. Disconnecting:

   Menu: File\Disconnect / file list

      As a client, you can disconnect at any time safely.
      After clicking "disconnect" in the menu or pressing F10, a dialog box will
      appear with two options:
         1. go back to the shared file list (see Step 1)
         2. edit the file offline (disconnecting permanently).
      If you choose to edit the file offline, you can always go back to the
      shared file list by selecting "disconnect / file list" (or F10) from the
      file menu.

------------------------------------------------------------------------------
1.3  SETTING UP A DEDICATED SERVER  (MESERVER.EXE)
------------------------------------------------------------------------------

In this ME version, "meserver.exe" can only share files from one directory:
the current working directory.

Step 1. Preparing existing files to share.

   For every file ("name.txt" for example) that you want to share,
   you must create a file with the name "name.txt.pw" containing an encrypted password
   followed by an end of line character.
   If you don't want to protect your file with a password, you still need to create
   a "name.txt.pw" file, but it should contain only a single end of line character.
   Also ".pw" files are used by a dedicated server to store last access time stamp
   and put it just after the password info.

Step 2. Running dedicated server.

   "meserver.exe" stores and shares files in the current working directory.
   To show command line help for "meserver.exe", type:

      > meserver.exe -?

   If you want to share another directory other than the current working directory,
   you can (for example) create a directory called "my_shared_files", change the
   current directory to it, and run "meserver.exe" from the parent directory:

      > mkdir my_shared_files
      > cd my_shared_files
      > ..\meserver.exe [+command line options]

   The default port is 32123 (UDP). You can override this at the command line using:
      "-p <port number>" option
   You can also set up a default password to access the file list and files
   not protected by their own passwords using: "-k <password>".

Step 3. Once the dedicated server is started, other users can run "me.exe". You can
   also run "me.exe" on the same computer as the server and join server.
   (see instruction in chapter 1.2).

------------------------------------------------------------------------------
1.4  SAFETY ISSUES
------------------------------------------------------------------------------

If a dedicated server crashes or hangs up, no data will be lost.
All changes made by users are automatically saved to the file in the
shared directory.
To bring up a dedicated server, you just need to start it again with the same
command line options.

If you overwrite a file on local hard disk, the following steps are done for you,
to assure full safety:
Step 1. A new temporary file is created with a random filename and .tmp extension.
Step 2. If step 1 is successful, the old file is removed and the temporary file
        replaces the old filename.

==============================================================================
2.0  EDITOR FEATURES (ME.EXE)
==============================================================================

------------------------------------------------------------------------------
2.1  BROWSING CHANGE HISTORY AND "UNDO"
------------------------------------------------------------------------------

While editing, a full history of changes is maintained for every user. Every user
sees the same history. Thanks to this mechanism, you can go back and view the
document state at any time in the past - you can think of it as an infinite "undo".

  Menu: Edit\History (F7) - toggle history mode

Once activated, the history slider will appear at the top of the document area.
In history mode, you can still edit text, but every change will automatically be
removed after returning to live editing mode. Any changes made in history mode will
have flashing colors to show that it is only temporary.

You can watch a replay of changes made by others:

  [ -> ] button near the history slider

Or play it step by step:

  Menu: Edit\Go back    (F6 or ALT+BACKSPACE)
  Menu: Edit\Go forward (F8)

This is useful if you want to see what happened while you were away.

The editor doesn't support a standard UNDO feature, but with the history,
you can easily recover any text that was accidentally removed.
At any time during editing, you can press F6 or ALT+BACKSPACE
(once or many times) until you reach the desired point from the past.
From here, you can copy and paste text using standard clipboard functions
(CTRL+INSERT and SHIFT+INSERT). You can switch back to live editing mode
using F7.

------------------------------------------------------------------------------
2.2  SAVING FILES (.ME vs .TXT) AND EXPORTING AS HTML
------------------------------------------------------------------------------

ME supports 3 file formats:

1. .ME: Native ME documents.

   Text colors, user list, and full edit history are preserved.
   Loading a .ME file restores the document to its previous state.


2. .TXT: Pure text files. ME acts like a normal text editor in this case.

   If you save your document in .TXT file format (any file extension other than .ME),
   only text will be preserved. You will lose colors and edit history.

3. .HTML: Export to HTML files. Note: save-only. Use this to show off your colorful .ME
 sessions to non-ME users. Like TXT files, ME will lose your edit history when
 exporting to HTML, but it will retain the proper colors.
 As an option (enabled by default) you can append at the end of previously
 exported HTML file. That way you can maintain single HTML file for many short
 sessions (like daily chat with your friends).

Important notes:
   It's not recommended to edit offline a copy of a file hosted
   by a dedicated server, because there is no way to automatically update
   your offline changes.
   The .ME file format contains full edit history. However, in future MoonEdit
   versions, the history format may become obsolete due to protocol changes.
   After loading an old .ME file, only colors and nick names may be restored.

------------------------------------------------------------------------------
2.3  COMMANDS AND SCRIPTS
------------------------------------------------------------------------------

You can take advantage of some advanced editor features using commands.
With commands, you can do quick calculations (evaluation of arbitrary expressions), perform additional editor configuration, and many other things.

To execute a single command, open the "Exec" window:

  Menu: Scripts\Exec... (CTRL+E)

You can also execute a command from the standard text window by highlighting the
appropriate line of text and pressing CTRL+ENTER. Whole lines of selected text
are treated as commands and executed. The interpreter will ignore the following
characters before the command: // # ;

A full list of commands can be found in the online help:

   Menu: Scripts\Help (F1)

------------------------------------------------------------------------------
2.4  CONFIGURATION FILE (ME.CFG)
------------------------------------------------------------------------------

The configuration file is created automatically when you exit the program. It
stores a list of commands that will be executed the next time you run the program.
You can modify these commands if you wish. The best place to insert your own commands is after the "[userconfig]" line.

Some useful configuration commands:
   shell <shell command>              (execute system command only on local PC)
   script <command>                        (add new script to Scripts menu)
   bind <keyboard shortcut> <command or script index>
                                           (bind command/script to key)
   copybind <source key> <destination key> (copy key binding)
   usercolor <user_id> <RGB> <RGB negate>  (set user text background color)

------------------------------------------------------------------------------
2.5  QUICK CALCULATIONS
------------------------------------------------------------------------------

You can type arbitrary expressions in C-like notation followed by a "=" character.
For example:
   2+3=
and press CTRL+ENTER.
If the expression is between some text, you need to select it
before pressing CTRL+ENTER.
Features of the built-in calculator:
* Standard operators:
   + - * / % ^ * < <= > >= == != && ||
* Assignment operators:
   = *= /= %= += -= ++ --
* Mathematical functions compatibile with the standard C library:
   abs(), min(,), max(,), ceil(), floor(), fmod()
   sin(), cos(), tan(), acos(), asin(), atan(), atan2(,)
   sqrt(), exp(), pow(), log(), log(,)
* Additional functions:
   int(), sgn(), unit(), fact()
   pi (built-in constant)
   rnd (gives a uniform random number between 0 and 1)
   nrnd (gives a normal distributed random number)
* Statements such as IF..ELSE (and other standard ones) are supported
   Note: Calculations are executed locally, don't even try endless loops :P
* In-line comments are supported: /*...*/ and //
* Enter characters and show their ASCII code (i.e. 'a'= )
* Type hexadecimal numbers in 0x# format (i.e. 0x12AB345= )
* Show a result as hexadecimal number:
  For example:
    'a'+0x56+1234=0x
  (press CTRL+ENTER)

Other examples:
   Dice - so you can play a fair game online!
      (int(6*rnd)+1)=
   Quadratic equation:
      a=1;b=5;c=4;(-b + sqrt(b^2-4*a*c))/(2*a)=

The expression evaluator is based on EVALLIB.ZIP which is available here:
   http://advsys.net/ken/download.htm#evaldraw

------------------------------------------------------------------------------
2.6  MUSIC SEQUENCER
------------------------------------------------------------------------------

A built-in music sequencer allows you to type in music as text and then play it.
To make quick single-track song, just type a few notes in a row and press F4:

g   e.  e.  f   d.  d.  c e g .
Column position is time. Use dots to turn notes off (rest).

g2  D.e.  f . e.  d . c   A c3  .

Use uppercase letters for sharps (# in standard music notation).
So D = c#, A = g#, etc..
Specify the octave by putting a number 0..9 just after the note. The octave will
remain in effect until you override it with another octave change.
Default octave = 2.

To make multi-track music, start a new track on the next line.
For long songs, use measures to keep everything on the screen. Put an empty line
between measures.
Press SHIFT+F4 on any row to play a measure.
---------------------------------
g   e.  e.  f   d.  d.  c e g .                 ;
c1 .    e1 .g0   .  f1. c1 .    e1 .g0   .  e1.

g   e.  e.  f   d.  d.  c e c .                 ;
c1 .    e1 .g0   .  f1. c0 .    e1  c0        .
---------------------------------
To play the whole song, highlight all of it and press F4
(or don't highlight and just press CTRL+F4, more explanation
in the next example below).
To play only a few notes (or a single chord), select just those notes and press F4.

The semicolon ';' has various meanings.
Here, it is used to end the current row.
The pattern length is determined by the length of the first row, so a
semicolon is not needed on the second line.

Here's a more complex example:
---------------------------------
;synth3.wav 70
;synth3.wav 50
;synth3.wav 60
;key.wav

;tempo 16

e d c d e e e   d d d   e g g   e d c d e e e e d d e d c    .
c2a1g a c2c2c2  g1g g   c2e e   c a1g a c2c c c f1f g f e    .
c0              g       c                       g       c    .
c       c       c       c       c       c       c       c    .
---------------------------------
To play whole song, move your text cursor to any song row and press CTRL+F4.
The song must start and end with a row filled with "-" or "=" chars.

If you put ';' at start of the row it will be muted.
You can change a sample by putting a ';' before a sample file name (must be WAV format)
The number after the filename is a volume override (0-200, 100=default volume)
To change playing speed, use the tempo directive (characters per second).


==============================================================================
3.0  HISTORY OF UPDATES
==============================================================================

   v0.12.0, 2004-08-09:
      * first public release

   v0.12.1, 2004-08-23:
      * pasting TAB from clipboard fixed

   v0.12.2, 2004-08-27:
      * meserver shows last access time in file list
        (server local timezone)

   v0.12.4, 2004-12-10:
      * new program name (MoonEdit)
      * fixed meserver bug (not closing session file)
      * meserver is logging connections to "me.log"
      * linux version
      * windows standard open/save dialog
      * new file format! (compatibile with old .me)
        now ".me" is all you need (store both snapshot and history)
      * support for local text files (act like normal text editor)
      * built-in simple music tracker

   v0.14.0, 2005-01-05:
      * better user interface (dialogs)
      * while watching other user cursor, you can click on text
        and move your own cursor near it
      * double-click on file from list to join
      * word-wrap
      * TAB/SHIFT+TAB on selections
      * [userconfig] in .cfg file
      * network packet compression = faster downloading
      * fixed "find" function
      * export as html
      * (chat) sessions, where text disappears when everyone leaves

   v0.14.1, 2005-01-09:
      * fixed: window centering
      * fixed: selecting while holding two shift keys at once
      * installer fixed on Windows 98
      * smooth text scrolling is now optional (Options/Various),
        it's good to disable it on slow PCs
      * command "svsavetxt" - save as text on dedicated server

   v0.14.1s, 2005-01-29:
      * fixed: server branch-bug (now there is always one session per file)
      * fixed: CR/LF problems while moving pw files between Win/Linux
      * show file sizes in server list

==============================================================================
4.0  KNOWN BUGS
==============================================================================

Menu: "File\New window" doesn't work in fullscreen mode.
You can paste from clipboard max. 16KB of text.
Linux version don't support sound, shell command, uses only internal clipboard, and lacks few mathematical functions (pow, fact).

==============================================================================
5.0  CREDITS
==============================================================================

Author:
  Tomasz Dobrowolski, http://ged.ax.pl/~tomkh

Special thanks:
  Sphere interest group, http://sphere.pl
       Tomasz Noiñski (sphere admin, Linux port hints)
       Micha³ Ma³afiejski, Adrian Kosowski and others (beta-testing)
  Ken Silverman, http://www.advsys.net/ken
       (mathematical expression compiler, help with English translation,
       many suggestions and ideas)
  Jonathon Fowler, http://jonof.edgenetwork.org
       (for his work on the Linux port)

Enjoy this little piece of software!
Tom