Giter Site home page Giter Site logo

uvnav's Introduction

UV Navigator - Auswertungsvisualisierung fuer Universum V
Copyright (C) 2004-2006 Daniel Roethlisberger <[email protected]>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, see http://www.gnu.org/copyleft/

$Id$



Allgemeines
-----------

UV Navigator ist ein weiteres Tool fuer Universum V.  ToVU passte
mir aus technischen Gruenden nicht so wirklich (browserbasiert,
Java), und AMAP / PoN / ZugComposer laufen nur unter Windows, werden
nicht mehr weiterentwickelt, und/oder sind nicht Open Source, womit
die Moeglichkeit fuer Bugfixes und Erweiterungen nicht gegeben ist.

Ich habe UVNav primaer fuer mich selber entwickelt, und momentan gibt
UVNav wohl auch noch nicht genug Features her, um die anderen Tools
ernsthaft zu konkurrenzieren.  Wer aber wie ich ausschliesslich freie
Betriebssysteme verwendet, der ist allenfalls froh um UVNav.

UV Navigator ist freie Software.  Aktuelle Version und Source Code
gibts auf den Projektseiten:

  https://projects.roe.ch/trac/uvnav/

Wer mitarbeiten moechte, soll sich doch bitte bei mir melden.  Wer
mit guten Patches ueberzeugt, kriegt bald mal Commit-Rechte direkt
ins Repository.

UV Navigator benutzt eine interne, stark reduzierte Version der
genialen Perl Compatible Regular Expressions (PCRE) Library von
Philip Hazel, Copyright (C) University of Cambridge, England.

Details zu diesem und anderem verwendetem Fremdcode siehe die
Datei AUTHORS.



Bedienungshinweise
------------------

Momentan kann UVNav erst eine einzige Auswertung aufs mal
darstellen.  UVNav erwartet als ersten Parameter den Pfad
einer Auswertung.  Wenn UVNav ohne Parameter aufgerufen
wird, so wird eine kurze Bedienungsanleitung (--help) in die
Standardfehlerausgabe geschrieben, was fuer Windows-User
vielleicht etwas ungewohnt ist.  Der Windows-Port von SDL
leitet die Standardausgabe / Standardfehlerausgabe aber in
Textfiles um, wo die Ausgabe bequem nachgelesen werden kann,
auch wenn UVNav per Doppelklick im Explorer gestartet wurde.

Wie die Bedienung im Detail funktioniert, kann in der Datei
docs/tastenbelegung.txt nachgelesen werden.



Stand der Entwicklung
---------------------

UV Navigator befindet sich in der Fruehphase der Entwicklung.

Der Parser ist mittlerwile stabil und kann so ziemlich alle
Auswertungen korrekt einlesen, inklusive alte und uralte
Auswertungen (bisher getestet wurden Sternzeit 55, 128,
144-152, 154-162, 211-heute).

Das Parsen der Nachrichten ist erst in den Grundzuegen
implementiert.

Imperatoren-Spielzeug wird zwar korrekt verarbeitet, aber noch
groesstenteils ignoriert.  Fuer Imperatoren ist UVNav demnach
noch nicht sehr hilfreich.

Die Kartendarstellung ist noch sehr experimentell.  Grafik und
Benutzerfuehrung stecken noch in den Kinderschuhen.  Viele
Verbesserungen sind vorbereitet, aber noch nicht fertig
implementiert.  Performance und Benutzbarkeit sind noch weit
vom Ziel entfernt!

Diverse Hilfsmodule fuer Konfiguration, Image-Caching, Font-
Renderer, Zeichenhilfen etc sind stabil und funktionieren
zuverlaessig.  Was da noch fehlt ist ein Datenbankmodul fuer
die Ablage von persistenten Daten.  Momentan kann daher auch
nur eine Auswertung aufs Mal eingelesen und angeschaut werden.

Fazit: Noch sehr spartanisch, aber durchaus benutzbar.



Bekannte Probleme
-----------------

Bei vielen Objekten in der Darstellung ist die momentane
Methode des herauszoomens zu langsam und unuebersichtlich.
Objekte sollen sich zu Gruppen oder farbigen Flaechen formieren
sobald sie zu klein sind um einzeln erkannt zu werden.  Das
bedingt eine baumartige Strukturierung dieser Objekte, und ist
daher nicht ganz einfach zu implementieren.



Performance
-----------

Der Parser fuer Textauswertungen basiert auf regulaeren Ausdrucken
(RegExp), und verarbeitet Auswertungsdaten ueberraschend schnell:

    CPU                    Taktung     FreeBSD     Windows
    -------------------------------------------------------
    AMD Athlon XP 2500+    1830 MHz    4.2 MB/s    3.1 MB/s
    Intel Pentium M        1200 MHz    3.8 MB/s    3.0 MB/s
    Intel Pentium III       700 MHz    0.8 MB/s    0.5 MB/s
    -------------------------------------------------------

UVNav wurde fuer die Messungen sowohl unter FreeBSD als auch unter
Windows mit dem identischen Compiler und identischen Einstellungen
erzeugt.

Zum Vergleich:  ToVU 4.13 ist ca um den Faktor 20 langsamer,
AMAP 3.9 sogar um ca Faktor 200.

Die Anzeige ist sogar auf meinem alten Thinkpad mit grossen Auswertungen
noch einigermassen fluessig.  Notfalls kann man das rechenintensive
Anti-Aliasing und die Interpolation im Zoom-Code mit -Q deaktivieren,
muss dafuer aber mit haesslich verpixelter Anzeige leben.  Wie bei PoN,
AMAP und ToVU halt :)

UVNav frisst ca 10 MB Grundbedarf plus das 3-4fache der Dateigroesse der
Auswertung an RAM.  Da laesst sich vermutlich nur wenig daran aendern;
tendenziell wird der Speicherbedarf eher steigen als sinken, da mir
gute Performance wichtiger ist als ein niedriger Speicherbedarf.



Kompilieren und Installieren
----------------------------

UVNav wird mit GCC 3.x und den C/C++-Libs von FreeBSD entwickelt,
sollte aber auch mit anderen Compilern und Libraries kompilieren.
Probleme in diesem Zusammenhang bitte melden; es ist gut moeglich,
dass es noch kleine Veraenderungen an configure.ac und den relevanten
Header-Files braucht, um andere Systeme zu unterstuetzen.

Folgende Bibliotheken werden benoetigt:
 - SDL        Simple Directmedia Layer
              http://www.libsdl.org/
 - SDL_ttf    TrueType Font Library fuer SDL
              http://www.libsdl.org/projects/SDL_ttf/
 - SDL_image  Image Loading Library fuer SDL
              http://www.libsdl.org/projects/SDL_image/
 - SDL_gfx    Erweiterte Grafiklibrary fuer SDL
              http://www.ferzkopp.net/~aschiffler/Software/SDL_gfx-2.0/

UVNav kann auf allem was sich POSIX-kompatibel schimpft mit der
ueblichen ``magischen Dreifaltigkeit'' kompiliert und installiert
werden:

 $ ./configure
 $ make
 # make install

Auf nicht-GNU-Systemen (z.B. BSD, Solaris, MacOS X) muss `gmake'
(GNU Make) statt `make' verwendet werden.

Optional kann ./configure mit Parametern aufgerufen werden, um die
Installationseinstellungen anzupassen oder zusaetzliche Tools zu
installieren, siehe ./configure --help fuer Details.



Kompilieren und Installieren ab Subversion Repository
-----------------------------------------------------

Um UVNav direkt ab Repository zu kompilieren, wird ein Subversion
Client sowie zusaetzlich GNU Autoconf 2.59 und Automake 1.9 benoetigt
(2.57 und 1.7 sollten auch funktionieren, alles was aelter ist aber
vermutlich nicht).

Um den Quellcode der aktuellsten Entwicklungs-Version zu ziehen:

 $ svn checkout svn://projects.roe.ch/repos/uvnav/trunk/ uvnav
 $ cd uvnav
 $ ./autogen.sh
 $ ./configure --enable-debug
 $ make
 # make install



Kompilieren mit MinGW32 Cross-Compiler
--------------------------------------

UVNav kann direkt unter Linux oder BSD fuer Windows kompiliert werden.
Es wird eine MinGW32/GCC-Cross-Compiler-Installation benoetigt.

Die benoetigten DLLs stehen bereits vorkompiliert zu Verfuegung, aber
die eigentlichen SDL-Bibliotheken muessen zum Kompilieren in der
MinGW32-Umgebung vorhanden sein.

Um einen Cross-Compiler-Build ab Subversion Repo zu starten:

 $ svn checkout svn://projects.roe.ch/repos/uvnav/trunk/ uvnav
 $ cd uvnav
 $ util/build-cross-mingw32.sh
 $ util/make-binary-dist.sh

Vorher sollte build-cross-mingw32.sh noch an die lokalen Gegebenheiten
angepasst werden.  Der Default passt fuer eine FreeBSD Installation der
devel/mingw32-* Ports (GCC 3.x).



Zusaetzliche Tools
------------------

In UVNav sind noch einige hilfreiche Scripts fuer die Auswertungs-
Analyse und Zugerstellung enthalten.  Diese werden nur installiert,
wenn ./configure mit --enable-tools ausgefuehrt wurde.


uvnav's People

Contributors

droe avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.