GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
App::Asciio(3) User Contributed Perl Documentation App::Asciio(3)

App::Asciio - Plain ASCII diagram

                          |     |             |       |
                  |       |     |      |      |       |
                  |       |     |      |      |       |
                  v       |     v      |      v       |
                          v            v              v
                 _____                           _____      
                /\  _  \                        /\  __ \    
                \ \ \_\ \    ___     ___   _   _\ \ \ \ \   
        ----->   \ \  __ \  /  __\  / ___\/\ \/\ \ \ \ \ \  ----->
                  \ \ \ \ \/\__,  \/\ \___' \ \ \ \ \ \_\ \ 
                   \ \_\ \_\/\____/\ \____/\ \_\ \_\ \_____\
                    \/_/\/_/\/___/  \/___/  \/_/\/_/\/_____/
        
                  |             |             |     |
                  |     |       |     |       |     |      |
                  v     |       |     |       v     |      |
                        |       v     |             |      |
                        v             |             |      v
                                      v             v
        (\_/)
        (O.o) ASCII world domination is near!
        (> <)

        $> perl asciio.pl

It has always been painful to do ASCII diagrams by hand. This perl application allows you to draw ASCII diagrams in a modern (but simple) graphical interface.

The ASCII graphs can be saved as ASCII or in a format that allows you to modify them later.

Special thanks go to the Muppet and the gtk-perl group, Gabor Szabo for his help and advices.

Adam Kennedy coined the cool name.

            .-----------------------------------------------------------------.
            |                             Asciio                              |
            |-----------------------------------------------------------------|
            | ............................................................... |
            | ..............-------------..------------..--------------...... |
            | .............| stencils  > || asciio   > || box          |..... |
            | .............| Rulers    > || computer > || text         |..... |
            | .............| File      > || people   > || wirl_arrow   |..... |
     grid---------->.......'-------------'| divers   > || axis         |..... |
            | ......................^.....'------------'| boxes      > |..... |
            | ......................|...................| rulers     > |..... |
            | ......................|...................'--------------'..... |
            | ......................|........................................ |
            | ......................|........................................ |
            | ......................|........................................ |
            | ......................|........................................ |
            '-----------------------|-----------------------------------------'
                                    |
                                    |
                              context menu

Press 'F1' for help.

The context menu allows to access to Asciio commands.

All the keyboad commands definitions can be found under asciio/setup/actions/. Among the commands implemented are:
  • select all
  • delete
  • undo
  • group/ungroup
  • open / save
  • local clipboard operations
  • send to front/back
  • insert arrow, boxes, text
  • ...

The available commands are displayed if you press K.

There are a few elements implemented at the moment.

wirl arrow

An arrow that tries to do what you want. Try rotating the end clockwise then counter clockwise to see how it acts

               ^
               |
               |    --------.
               |            |
               '-------     |
                            |
 O-------------X     /      |
                    /       |
                   /        |
                  /         v
                 /
                /
               v

multi section wirl arrow

A set of whirl arrows connected to each other

 .----------.                       .
 |          |                \     / \
    .-------'           ^     \   /   \
    |                    \     \ /     \
    |   .----------->     \     '       .
    |   '----.             \           /
    |        |              \         /
    '--------'               '-------'

angled arrow and axis

   -------.         .-------
           \       /
            \     /
             \   /
 
             /   \
            /     \
           /       \
    ------'         '-------
    
          ^
     ^    |    ^
      \   |   /
       \  |  /
        \ | /
 <-------- -------->
        / |\
       /  | \
      /   |  \
     v    |   v
          v

box and text

                 .----------.
                 |  title   |
  .----------.   |----------|   ************
  |          |   | body 1   |   *          *
  '----------'   | body 2   |   ************
                 '----------'
                                             anything in a box
                                 (\_/)               |
         edit_me                 (O.o)  <------------'
                                 (> <)

You can also use the 'External commands in box' to direct an external command output to a box. Default shortcuts are 'x' and CTL + 'x'.

"if" box and "process" box

                        ____________
   .--------------.     \           \
  / a == b         \     \           \   __________
 (    &&            )     ) process   )  \         \
  \ 'string' ne '' /     /           /    ) process )
   '--------------'     /___________/    /_________/

your own stencils

Take a look at setup/stencils/computer for a stencil example. Stencils listed in setup/setup.ini will be loaded when Asciio starts.

your own element type

For simple elements, put your design in a box. That should cover 90% of anyone's needs. You can look in lib/stripes for element implementation examples.

You can export to a file in ASCII format but using the .txt extension.

Exporting to the clipboard is done with ctl + e.

           User code ^            ^ OS code
                      \          /
                       \        /
                        \      /
           User code <----Mode----->OS code
                        /      \
                       /        \
                      /          \
          User code  v            v OS code
          
        
             .---.  .---. .---.  .---.    .---.  .---.
    OS API   '---'  '---' '---'  '---'    '---'  '---'
               |      |     |      |        |      |
               v      v     |      v        |      v
             .------------. | .-----------. |  .-----.
             | Filesystem | | | Scheduler | |  | MMU |
             '------------' | '-----------' |  '-----'
                    |       |      |        |
                    v       |      |        v
                 .----.     |      |    .---------.
                 | IO |<----'      |    | Network |
                 '----'            |    '---------'
                    |              |         |
                    v              v         v
             .---------------------------------------.
             |                  HAL                  |
             '---------------------------------------'
             


                 
                 .---------.  .---------.
                 | State 1 |  | State 2 |
                 '---------'  '---------'
                    ^   \         ^  \
                   /     \       /    \
                  /       \     /      \
                 /         \   /        \
                /           \ /          \
               /             v            v
            ******        ******        ******
            * T1 *        * T2 *        * T3 *
            ******        ******        ******
               ^             ^             /
                \             \           /
                 \             \         /
                  \             \       / stimuli
                   \             \     /
                    \             \   v
                     \         .---------.
                      '--------| State 3 |
                               '---------'
                               

                                        .--Base::Class::Derived_A
                                       /
                                      .----Base::Class::Derived_B    
      Something--------.             /         \
                        \           /           '---Base::Class::Derived::More
      Something::else    \         /             \
            \             \       /               '-Base::Class::Derived::Deeper
             \             \     /
              \             \   .-----------Base::Class::Derived_C 
               \             \ /
                '-------Base::Class
                       /   \ \ \
                      '     \ \ \
                      |      \ \ '---The::Latest
                     /|       \ \      \
 With::Some::fantasy' '        \ \      '----The::Latest::Greatest
                     /|         \ \
         More::Stuff' '          \ '-I::Am::Running::Out::Of::Ideas
                     /|           \
         More::Stuff' '            \
                     /              '---Last::One
         More::Stuff'


   ____[]
  | ___ |
  ||   ||  device
  ||___||  loads
  | ooo |------------------------------------------------------------.
  | ooo |    |                          |                            |
  | ooo |    |                          |                            |
  '_____'    |                          |                            |
             |                          |                            |
             v                          v                            v
   .-------------------.  .---------------------------.    .-------------------.
   | Loadable module C |  |     Loadable module A     |    | Loadable module B |
   '-------------------'  |---------------------------|    |   (instrumented)  |
             |            |         .-----.           |    '-------------------'
             '--------------------->| A.o |           |              |
                 calls    |         '-----'           |              |
                          |    .------------------.   |              |
                          |    | A.instrumented.o |<-----------------'
                          |    '------------------'   |    calls
                          '---------------------------'

gnome libraries, gtk, gtk-perl for the gtk version

Undoubtedly many as I wrote this as a fun little project where I used no design nor 'methodic' whatsoever.

        Khemir Nadim ibn Hamouda
        CPAN ID: NKH
        mailto:nadim@khemir.net

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

I run gentoo, packages to install gtk-perl exist. Install Asciio with cpan.

FreeBSD users can now install asciio either by package:

$ pkg_add -r asciio

or from source (out of the ports system) by:

$ cd /usr/ports/graphics/asciio $ make install clean

Thanks to Emanuel Haupt.

Ports are on the way.

Asciio is part of the camelbox distribution and can be found here: <http://code.google.com/p/camelbox/>. Install, run AsciiO from the 'bin' directory.

      .-------------------------------.
     /                               /|
    /     camelbox for win32        / |
   /                               /  |
  /                               /   |
 .-------------------------------.    |
 |  ______\\_,                   |    |
 | (_. _ o_ _/                   |    |
 |  '-' \_. /                    |    |
 |      /  /                     |    |
 |     /  /    .--.  .--.        |    |
 |    (  (    / '' \/ '' \   "   |    |
 |     \  \_.'            \   )  |    |
 |     ||               _  './   |    |
 |      |\   \     ___.'\  /     |    |
 |        '-./   .'    \ |/      |    |
 |           \| /       )|\      |    |
 |            |/       // \\     |    .
 |            |\    __//   \\__  |   /
 |           //\\  /__/  mrf\__| |  /
 |       .--_/  \_--.            | /
 |      /__/      \__\           |/      
 '-------------------------------'

camelbox is a great distribution for windows. I hope it will merge with X-berry series of Perl distributions.

This works too (and I have screenshots to prove it :). I don't own a mac and the mac user hasn't send me how to do it yet.

YMMV, install gtk-perl and AsciiO from cpan.

        http://www.jave.de
        http://search.cpan.org/~osfameron/Text-JavE-0.0.2/JavE.pm
        http://ditaa.sourceforge.net/
        http://www.codeproject.com/KB/macros/codeplotter.aspx
        http://search.cpan.org/~jpierce/Text-FIGlet-1.06/FIGlet.pm
        http://www.fossildraw.com/?gclid=CLanxZXxoJECFRYYEAodnBS8Dg (doesn't always respond)
        
        http://www.ascii-art.de (used some entries as base for the network stencil)
        http://c2.com/cgi/wiki?UmlAsciiArt
        http://www.textfiles.com/art/
        http://www2.b3ta.com/_bunny/texbunny.gif
        

     *\o_               _o/*
      /  *             *  \
     <\       *\o/*       />
                )
         o/*   / >    *\o
         <\            />
 __o     */\          /\*     o__
 * />                        <\ *
  /\*    __o_       _o__     */\
        * /  *     *  \ *
         <\           />
              *\o/*
 ejm97        __)__

Hey! The above document had some coding errors, which are explained below:
Around line 68:
Non-ASCII character seen before =encoding in 'Gabor'. Assuming CP1252
2022-06-08 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.