[BACK]Return to README CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / pta

Annotation of pta/README, Revision 1.1

1.1     ! schwarze    1: # $Id$
        !             2: #
        !             3: # Copyright (c) 2020 Ingo Schwarze <schwarze@openbsd.org>
        !             4: #
        !             5: # Permission to use, copy, modify, and distribute this software for any
        !             6: # purpose with or without fee is hereby granted, provided that the above
        !             7: # copyright notice and this permission notice appear in all copies.
        !             8: #
        !             9: # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
        !            10: # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
        !            11: # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
        !            12: # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
        !            13: # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
        !            14: # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
        !            15: # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
        !            16:
        !            17: pta - the plain text accounting program
        !            18: ---------------------------------------
        !            19: The Plain Text Accounting program reads bookkeeping journals and
        !            20: writes account lists, balances, and cost center assessments to
        !            21: standard output.  All input files are ascii(7) text files.
        !            22:
        !            23: Design goals
        !            24: ------------
        !            25:  * Get all input from ASCII text files with Unix line endings and
        !            26:    using strings of one or more space characters as field separators.
        !            27:    Such files are easy to read and edit for human beings
        !            28:    and easy to diff(1).  For now, UTF-8 is out of scope.
        !            29:
        !            30:  * Produce all output as ASCII text on standard output.
        !            31:    Support for roff(7), LaTeX, or HTML output files may or may not
        !            32:    be added later.
        !            33:
        !            34:  * Optimize the format of the journal to require as little typing
        !            35:    as possible, while still keeping it readable.
        !            36:
        !            37:  * Always enforce the principle of double-entry accounting.
        !            38:
        !            39:  * Always require the user to provide a system of accounts and to
        !            40:    strictly stick to it, but avoid any limitations with respect
        !            41:    to which accounts can be defined, how they are numbered, and
        !            42:    how they are used.  Avoid any limitations based on specific
        !            43:    accounting systems or on any national or international law.
        !            44:    Most commercial accounting systems integrate lots of
        !            45:    information about accounting, tax, and social secirity laws,
        !            46:    design their user interface in ways making it likely that
        !            47:    even accounting files created by mostly ignorant users will
        !            48:    respect all applicable laws, and deliver software updates
        !            49:    whenever laws change.  The pta program does none of this
        !            50:    and will not receive updates when laws change.  Adapting
        !            51:    account systems and accounting practices to applicable laws
        !            52:    is purely the responsibility of the user.
        !            53:
        !            54:  * Avoid any limitation on the type of legal subjects supported.
        !            55:    In particular, pta is intended to be usable for private finances,
        !            56:    for freelancers, for non-profit associations, and for small
        !            57:    commercial companies.
        !            58:
        !            59:  * Support both cost centers and subaccounts.
        !            60:
        !            61:  * Support basic performance tracking of long-term financial
        !            62:    investments.  There are no plans to provide features that would
        !            63:    only be useful to support short-term, speculative, or high-risk
        !            64:    investments.
        !            65:
        !            66:  * Keep program code and documentation well separated.
        !            67:    Mixing both in the same files is an abomination.
        !            68:
        !            69:  * Minimize the use of external Perl modules.  This keeps the code
        !            70:    simple and self-contained.
        !            71:
        !            72:  * Strictly avoid the use of CPAN and of any kind of Perl build
        !            73:    systems features.  All those features and frameworks suffer from
        !            74:    unbearable overengineering.
        !            75:
        !            76:  * For now, avoid use of Perl object orientation and modularization.
        !            77:    The tasks to be solved are not complicated enough to warrant
        !            78:    the complexity that object orientation or modularization
        !            79:    would introduce.
        !            80:
        !            81:  * Keep the code as small, as straightforward, and as simple as possible.
        !            82:    Avoid abstraction as much as possible.  Software reusability as
        !            83:    a goal is massively overrated in most contexts and rarely
        !            84:    justifies additional abstraction or conmplexity.
        !            85:
        !            86:  * Support journals and standard output using the English and German
        !            87:    languages, and more languages that can be written in the ASCII
        !            88:    character set as far as there is demand, but avoid developing
        !            89:    any kind of internationalization framework.  In particular, avoid
        !            90:    configuration options of low importance like for date and number
        !            91:    formats or for character sets.
        !            92:
        !            93:  * Do not require nor support any graphical user interface.
        !            94:
        !            95:  * Never use any environment variables.  Those are notorious for
        !            96:    causing unpleasant surprises.
        !            97:
        !            98:  * Support as few command line options as possible, and keep them
        !            99:    as simple as possible.
        !           100:
        !           101: Installation
        !           102: ------------
        !           103: The pta program can be used without installing it.  To use it, just
        !           104: create a new directory, change into it, create a file ./accounts.txt
        !           105: and a file ./journal.txt, then run pta.pl providing an absolute or
        !           106: relative path to the program.  Putting your files accounts.txt and
        !           107: journal.txt into the pta source directory is possible but discouraged;
        !           108: keep your data separate from the program if possible.
        !           109:
        !           110: Even if installation is desired, no "configure" script nor any "make"
        !           111: step is needed.  Simply change to the pta source directory, read the
        !           112: Makefile to see what it does, then run a command similar to
        !           113:
        !           114:    # make DESTDIR=/usr/local install
        !           115:
        !           116: Contact address
        !           117: ---------------
        !           118: Please send patches, bug report, suggestions, and questions
        !           119: directly to the author, Ingo Schwarze <schwarze@openbsd.org>.

CVSweb