Newsletter 10/2000 - No. II
von ActiveVB-Team
Inhalt
Liebe Community, hier ist er - der erwartete Newsletter No. 2 für Oktober. Es hat sich wieder einmal einiges auf der Homepage getan und außerdem wollten wir uns auch gern wieder einmal in Eure Gedanken drängen.
DATENBANK-RUBRIK
Uns ist bewußt, daß Ihr lange darauf gewartet habt. Nun ist es geschafft. Die Datenbank-Rubrik wird von dem erfahrenen DB-Profi Hans-Willi Wiemer (hans@activevb.de) betreut.
Aus dem Inhalt der Rubrik:
- * Treeview und Datenbank
- * Multi-Userfähige ADO-DLL
- * ADO-Stream, Binary Large Obj.
An dieser Stelle wollen wir Hans-Willi zitieren:
"Im übrigen plane ich ein reproduzierbares Client-Server Projekt in dieser Rubrik einzubauen. In meiner Vorstellung würden zuerst grundsätzliche Rahmenbedingungen (Zugriffe, Queries, SP's, DB-Strategie) für eine Anwendung geschaffen. Anschließend erweitert sich die Anwendung mit Einbindungen von unterschiedlichen Tools, die je nach Anspruch des Anwenders hinzugefügt werden können.
Fazit: Es soll ein flexibles Client-Server Projekt entstehen, daß weitgehendst unterschiedliche Bedürfnisse von Anwendern abdeckt."
DER UPLOAD UND DAS SCHAFSHUND-SPIEL
Wir haben es anfangs als kleineres Projekt vorgestellt und dann hat der UpLoad-Bereich doch einen sehr positiven Aufschwung bekommen. Nicht zuletzt durch das geniale Schafshund-Spiel von Dirk Lietzow. Wir überlegen nunmehr einen kleinen Highscore-Wettbewerb einzuführen (Dirk hat bereits seinen Highscore per Screenshot in den UpLoad-Bereich gestellt).
Also: spielt das Schafshund-Spiel und punktet - wir überlegen uns bei genügend motivierter Teilnahme einen kleinen Preis.
Außerdem: bitte ladet in den UpLoad-Bereich keine EXE/DLL-Dateien oder andere ausführbare Programme hoch (möglichst auch in den ZIPS vermeiden). Ursprüglich wollten wir eine Austauschplattform für VB-Programme/-Sourcen bieten und würden uns freuen, wenn das in diesem Kontext bleiben könnte.
Für den Schafshund-Wettbewerb könnt Ihr natürlich Screenshots hochladen - andere Bilder bitte allerdings nicht.
BUCHBESPRECHUNG
---<[VISUAL BASIC 6.0 / Nitty-Gritty / Autor: Jürgen Bayer]
BESCHREIBUNG des Autors:
Visual Basic 6 auf den Punkt gebracht. Suchen Sie einen praxisgerechten Leitfaden für die Visual Basic-Programmierung aus der Sicht eines erfahrenen VB-Programmierers und -Trainers? Alle wichtigen grundlegenden und einige spezielle Themen werden behandelt, Tipps und Tricks zu den einzelnen Aspekten und ein Referenzteil zum jeweiligen Abschnitt lassen Sie noch tiefer in Visual Basic einsteigen.
KOMMENTAR von Björn Kirsch (bjoern@activevb.de):
Letztendlich gibt das Buch Aufschluß über viele grundlegende Funktionen, die VB mit sich bringt und auch im speziellen gibt es einen guten Überblick über die Vielfalt der Programmiersprache. Natürlich kann bei der Seitenanzahl nicht erwartet werden, daß das Buch ein allumfassendes Kompendium darstellt, dennoch ist das Preis - Leistungsverhältnis einmalig gut. Die einzelnen Absätze sind leicht verständlich abgefasst.
Das Buch kostet 25,00 DM und ADDISON WESLEY ist der herausgebende Verlag
(ISBN-Nr. 3-8273-1667-7).
An dieser Stelle wollen wir dem Verlag ADDISON WESLEY für die Stellung des Buches zur Besprechung danken.
VISUAL BASIC FÜR ANWENDUNGEN/VBA
Die zunehmenden Fragen im Forum zum Thema VBA veranlassen uns zur Annahme, daß hierfür reges Interesse besteht. Björn Kirsch (bjoern@activevb.de) wird in der nächsten Zukunft systematisch ein paar Tips zu diesem Thema aufbauen und auch in der Rubrik &Tips & Tricks& wird ein gesonderter Bereich zur Verfügung gestellt.
Wir würden uns freuen, wenn Ihr Björn Eure Anregungen für Tips zumailt; natürlich freuen wir uns auch über komplette Tips. Bitte schickt Björn dann allerdings nicht das Word-Dokument, sondern nur den reinen Source im Mailtext.
Sollte genügend Feedback folgen, so wird auch eine eigene Rubrik (ähnlich der neuen DB-Rubrik) folgen.
TIPS & TRICKS
Habt Ihr es schon gesehen? In der Rubrik "Tips & Tricks" veranstalten wir derzeit einen kleinen Wettbewerb. Näheres könnt Ihr auf der Seite erfahren. http://www.activevb.de/vb/VBtiptrik.html
KOMPRESSION
Nachfolgend wollen wir ein paar Zeilen zum Thema "Kompression" schreiben. Sollte Interesse bestehen, so wird Björn Kirsch (bjoern@activevb.de) ein Tutorial zu diesem Thema schreiben. Die nachfolgenden Zeilen unterliegen dem Copyright der ActiveVB und Björn Kirsch.
Kompression - WOFÜR?
Letztendlich ist Kompression (Komprimieren = verdichten, zusammendrücken) auf verschiedene Bereiche des täglichen Lebens anwendbar. Speicherkapazität ist auch im Zeitalter von Gigabyte-Festplatte noch immer beschränkt und der Datentransfer im Internet fordert den Versand von Daten nicht in der Originalform, sondern im komprimierten Zustand (aus Zeit- und somit Kostengründen). Weiterhin ist Kompression für Backups sinnvoll, da ein Realtime-Zugriff nicht notwendig ist. Kompression sollte natürlich nur begrenzt in Bereichen eingesetzt werden, in denen ein besonders schneller Zugriff auf Daten (z. B. in Realtime) notwendig ist, denn die Dekomprimierung fordert immer Rechenkapazität (mittlerweile sind die Rechner aber so schnell, daß in einigen Segmenten bereits in nahezu Realtime komprimiert und dekomprimiert wird; man denke an DoubleDisk von Microsoft).
Kompression - das PRINZIP?
Die grundsätzliche Funktionsweise der Kompression kann in wenigen Worten zusammengefaßt werden. Es gibt zwei fundamentale Methoden:
- 1. Redundanzen (Wiederholungen) von Daten(-Strängen) werden erkannt und zusammengefaßt (verkürzte Datenmodellierung)
- 2. Unnötige und teilweise unwichtige Daten werden gelöscht.
Die Löschung von Daten kann natürlich nur vorgenommen werden, wenn diese nicht mehr benötigt werden und auch später zur Verarbeitung unrelevant sind. Diese Art der Kompression wird z. B. für Video- oder Audiodaten verwendet.
Achtung: natürlich können beide Prinzipien kombiniert werden.
Kompression - ÜBERSICHT?
LZW-Codierung (Lempel, Ziv, Welch): Es wird ein Wörterbuch aufgebaut (ein Wort wird durch ein Byte definiert) und im Endeffekt wird für ein Folgewort nur noch ein Zeiger auf das erste Wort/das Wort im Wörterbuch gesetzt. Diese Kompression eignet sich natürlich sehr gut für Textdokumente, allerdings auch für Binarys, die viele gleiche Zeichenstränge beinhalten. LZW existiert mittlerweile in vielen Abwandelungen und in einigen sehr stark optimierten Formen. Die Kompression erfolgt verlustfrei, der Ursprungszustand des Dokumentes kann also wiederhergestellt werden.
RLE - Run Length Encoding: Einzelne gleiche Bytefolgen (z. B. 3, 3, 3, 3) werden zahlenmäßig zusammengefaßt (z. B. 43, also 4 x 3) und nacheinander gespeichert. Diese Methode eignet sich hervorragend für Schwarz/Weiß-Bilder, sofern es sich nicht um ein gleichmäßiges Störbild handelt (also 1,0,1,0), da dann eine Verfielfältigung der Dateigröße vorgenommen wird. Die Kompression ist auch verlustfrei.
HUFFMANN-Codierung: Alle Zeichen werden in einem Table gespeichert. Der Table wird so sortiert, daß häufig vorkommende Zeichen einen kürzeren Identifiaktionscode bekommen (z. B. ein oder zwei Bit), als ein nicht so häufig vorkommendes Zeichen (z. B. vier Bit). In Abwandelung kann auch ein Zeichenfolgentable gebildet werden. Letztendlich wird die Datei dann so gespeichert, daß ein Abbild der Originaldatei gebildet wird, in der dann nur die über den Table definierten Zeichen gespeichert werden (also anstelle eines E, dann ein Bit mit 0). Der Table muß bei dieser Komprimierungsmethode mit in die Datei eingefügt werden, da sonst eine Dekomprimierung unmöglich ist. Dieses Vorgehen kann den Nachteil bergen, daß eine kurze Datei somit länger werden kann. Auch diese Komprimierungsform ist verlustfrei.
WAVELET-Kompression: Das Objekte/die Datei wird komplett betrachtet und mittels mathematischer Berechnung (Koeffizienten, Hoch- und Tiefpaßfilterung, etc.) gesplittet (non-blocking Strategie). Letztendlich ist dieses Verfahren allerdings für einen Newsletter zu komplex. Insgesamt ist die Methode nicht verlustfrei (also nicht für Backups geeignet) und in der Folge der Berechnung wird meißtens noch einmal per RLE oder Huffmann zusätzlich komprimiert. Bestens für Bilder geeignet.
FRAKTALE-Kompression: Ein Bild wird in verschiedene Fragmente (geometrische Strukturen) geteilt und diese Fragmente werden dann durch pushing / turning / zooming / sizing verglichen. Es werden sogenannte Domain- und Rangeblocks erzeugt (dynamisch). Zueinander ähnliche Blöcke werden gesucht; der Faktor der Ähnlichkeit kann eingestellt werden und hierüber bestimmt sich dann der Datenverlust. Jeder Domainblock wird mit mit jedem Rangeblock verglichen und außerdem wird die jeweilige Distanz zwischen den Domain- und dem transformierten Rangeblock ermittelt. Das Bild wird letztendlich durch eine Viezahl mathematischer Gleichungen präsentiert. Eine Dekodierung erfolgt durch Abarbeitung der Gleichungen und den Aufbau der Fragmente. Diese Komprimierung ist eigentlich nur für Bilder geeignet und auch nicht verlustfrei.
Kompression - DATENFORMATE?
JPEG - erkennt und entfernt Farbunterschiede/Helligkeitsunterschiede (für das menschliche Auge unrelevante Daten). Hierdurch ist eine gute Kompression erreichbar (einstellbar; die Qualität nimmt mit höhere Komprimierung ab). Das Verfahren ist nicht verlustfrei.
GIF - im Standardformat hat GIF ein 8-Bit-Format und verwendet den LZW-Algorithmus. Die Komprimierung ist verlustfrei und es gibt verschiedene Arten der Speicherung und Darstellung (z. B. Rasterung während des Aufbaus).
PNG - Nachfolge des GIF-Formates. Farbtiefe ist bis 64-Bit (Photorealismus) möglich und es werden weitere Filter eingesetzt.
ZIP - das ZIP-Format kombiniert diverse Komprimierungsverfahren (Huffmann, LZW, RLE und andere). Das ZIP-Format und der Einsatz der Kompressionsalgorithmen ist standardmäßig definiert.
Kompression - ABSCHLUß?
In diesem Newsletter sollten nur einige grundlegende Informationen dargestellt werden. Die verschiedenen Kompressionsalgorithmen wurden stetig weiterentwickelt und letztendlich wollten wir hier nur einen kleinen Überblick über die bekanntesten Möglichkeiten geben (keine Garantie für Vollständigkeit). Es gibt noch eine Vielzahl von Algorithmen, die wir hier nicht erwähnt haben.
Sollte Interesse an einem Tutorial, z. B. zum LZW-Algorithmus, bestehen, so schreibt an bjoern@activevb.de
WORTE DES ABSCHLUSSES
Wir hoffen, daß Euch auch dieser Newsletter gefallen hat; Fragen und Anregungen nehmen wir gern entgegen.
Der nächste Newsletter folgt demnächst.
Euer ActiveVB-Team