Computer: Zeitsynchronisation (aus Wiki)

Gehört zu: Internet
Siehe auch: Windows Services

Zeitsynchronisation (aus Wiki)

Zeitsynchronisation über das Internet

  • NTP entwickelt 1981 von David L. Mills an der University of Delaware (http://www.ntp.org)
  • SNTP: Simple Network Time Protocol ist eine vereinfachte Teilmenge von NTP

 NTP Network Time Protocol

NTP has the ability to synchronize computers across multiple time servers while compensating for network jitter and other statistical errors. Because of this ability, it is generally suitable for the synchronization of a corporate time server to an atomic clock on the global internet to within tens of milliseconds. This protocol is defined in the Internet standard RFC 1305. (Port 123)

 SNTP Simple Network Time Protocol

SNTP is a subset of the Network Time Protocol. SNTP is able to compensate for network round trip delay and take account of nominal dispersion to the root time source, but normally depends on a single time server at any given time. Because of this, it is generally suitable for synchronization of clients to a known time source on a corporate intranet.

Accurate synchronization between client and server to the order of microseconds is attainable on local area networks using SNTP. The SNTPv4 protocol is defined in the internet standard RFC 2030. (obsoletes SNTPv3 RFC 1769)

 Zeitquelle NTP Time Server im Internet

  • Uni Osnabrück (DCF77)
    • ntps1-1.rz.uni-osnabrueck.de
  • TU Berlin
    • ntps1-0.cs.tu-berlin.de
    • ntps1-1.cs.tu-berlin.de
  • Physikalisch Technische Bundesanstalt, Braunschweig (PTB)
    • ntp1.ptb.de
    • ntp2.ptb.de
  • Deutsche Telekom
    • ntp1.sda.t-online.de
  • Uni Erlangen
    • ntps1-1.uni-erlangen.de

 Welche Software benötigen wir?

 Stratum 1 und Stratum 2

Stratum 1: primary reference (NTP sites using an atomic clock for timing) Stratum 2-15: secondary reference (Stratum 2: NTP sites with slightly less accurate time sources) Public Servers: Sites that allow the general public to synchronize with them.

 Welche Software benötigen wir?

  • Auf dem Server
  • Auf den Clients: Tardis95

 Time-Service als Bestandteil des Betriebssystems

See: Windows Services Die Betriebssysteme Windows2000 und WindowsXP enthalten einen Time-Service, genannt w32time. Dieser kann so konfiguriert werden, dass direkt gegen einen public NTP-Server im Internet synchronisiert wird.

  • net stop w32time
  • net start w32time
  • net time /setsntp:servername
  • net time /querysntp
  • w32tm -once (Test der Verbindung)

Windows2000 polls every 8 hours (“SpecialSkew”), WindowsXP once a week….. (Knowledgebase Q223184)

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

Namen von Windows-Services herausfinden: sc query

— Main.DietrichKracht – 06 Jun 2004

Computer: CVS (aus Wiki)

Gehört zu: Version Control
Siehe auch: RCS, GitHub

CVS Concurrent Versions System (aus Wiki)

CVS ist der Klassiker für VersionControl: http://www.cvshome.org

 Meine Anforderungen

  • Lauffähig auf einem Windows-Entwicklungsrechner mit geringstem Aufwand und möglichst “leichtgewichtig”
  • OpenSourceSoftware bzw. GNU GPL bzw. geringe Kosten und hohe Verbreitung

 CVS-Server

Möchte im ersten Schritt noch garnicht einsetzen. Es soll ein lokales CVS-Repository auf meinem Windows-Notebook sein, nur für mich allein.
Da Eclipse anscheinend nicht mit :local: arbeitet, sondern :pserver: benötigt, habe ich zu guter Letzt (s.u.) doch noch den CVSNT-Server installiert.

 CVS-Client

Die Mainstream-Lösungen sind:

WinCVS:
war mir schon von der Software-Architektur zu aufwendig und nicht in Übereinstimmung mit meiner Architektur (Python, Tcl, GTK).
http://www.wincvs.org
TortoiseCVS:
Eine ganz schlanke Windows-Lösung, die nur auf C++ basiert und sich sehr schön in den Windows Explorer integriert. Wirklich leicht zu benutzen. Basiert auf dem Code von WinCVS, ist aber nicht so komplex.
http://www.tortoisecvs.org/
Eclipse:
Muss man sich wohl in diesem Jahr genauer anschauen. Das scheint die Zukunft zu sein.
http://www.eclipse.org

 CVS-Server für Windows: CVSNT

Neben der Möglichkeit einen CVS-Server auf Windows über Cygwin zu realisieren, gibt es eine sehr gute Portierung auf WinNT (Windows 2000,…) CVSNT. Es gibt ganz ausführliche Schritt-für-Schritt-Beschreibungen für die Installation von CVSNT (was auch nötig ist, da es einige Fallstricke gibt).

 Meine CVS Projekte (CVS Module)

Tabelle 1: Meine CVS-Projekte

Name Pfad
Apache D:\Programme\Apache
Backup
diverses
docbook
Dokumente und Einstellungen
etc
faulkner.kr8.de
jobs e:\var\jobs

 CVS Lektion 1: Anlegen und Füllen eines CVS-Repositories

Das cvs.exe (mitgeliefert von ZeusEdit, TortoiseCVS oder CVSNT) sollte im PATH sein (also: \Programme\ZeusSCC-CVS oder \Programme\TortoiseCVS oder …). Es wird einerseits intern von dem jeweiligen SCC-Provider verwendet, andererseits kann es als Kommandozeilen-CVS-Utility unter Windows eingesetzt werden, um z.B. Das CVS-Repository per Hand aufzubauen.

Schritt 1: Initialisieren eines CVS-Repository

cvs -d:local:d:\home\cvsroot init

Damit man für das weitere Arbeiten mit CVS nicht immer den Parameter -d:local:d:\home\cvsroot angeben muss, setzten wir die dafür vorgesehene Environment-Variable: SET CVSROOT=:local:d:\home\cvsroot.

Schritt 2: Dateien in ein CVS-Repository einstellen (“importieren”)

d:
cd \home\kracht\www\dietrich.kracht.free.fr\rolodap	 (genannt "Arbeitsverzeichniss")
cvs import -m"trallala" -d -C rolodap  LONZO V1_00

Damit wird das aktuelle Verzeichnis mit allen Dateien und Unterverzeichnissen unter dem CVS-Modulnamen “rolodap” in das CVS-Repository gestellt. Umgangssprachlich nennt man “CVS-Module” auch gerne “CVS-Projekte”. Das “-d” sorgt dafür, dass das Archivierungsdatum aus dem Filedatum genommen wird, und das “-C” sorgt dafür, dass in das Arbeitsverzeichnis interne Verwaltungsinformationen für CVS gleich mitaufgenommen werden (versteckter Ordner CVS).

Das Riesenproblem mit diesem CVS IMPORT ist, dass Binär-Dateien dadurch zerstört werden (z.B. GIF, JPG,…).

Wenn man das nicht alles in einem Rutsch tun möchte, kann man es auch einzeln Schritt für Schritt tun (s.u.).

Schritt 3: Ein leeres CVS-Modul erstellen

mkdir xyz
cd xyz
cvs import rolodap LONZO V1_00
cd ..
rmdir xyz

Damit wird im CVS-Repository ein neues Modul names rolodap angelegt einschliesslich aller im Repository nötigen CVS-Files (z.B. .owner).

Nun muss ich für jedes CVS-Modul ein CVS-Arbeitsverzeichnis (sog. Sandbox) aufbauen mit “cvs checkout …”. Danach kann ich meinem CVS-Modul gezielt Dateien und Unterverzeichnisse (nur aus dem CVS-Arbeitsverzeichnis) mit “cvs add …” hinzufügen.

Schritt 4: Eine CVS-Sandbox erstellen

d:
cd \home\kracht\www\dietrich.kracht.free.fr
cvs checkout rolodap

Damit wird \home\kracht\www\dietrich.kracht.free.fr\rolodap eine CVS-Sandbox für das CVS-Modul “rolodap”. Wir sehen das daran, dass ein verstecktes Unterverzeichnes namens “CVS” angelegt wurde.

Weil im CVS nicht mit “Locks” gearbeitet wird, benötigt jeder User ständig seine “Work Directories”. In den versteckten CVS-Unterverzeichnissen jeder Sandbox speichert sich das CVS-System die nötige Verwaltungsinformation.

Der Verzeichnisname der CVS-Sandbox ist als identisch mit dem Modulnamen im CVS-Repository. Wenn man da besondere Wünsche für den Sandbox-Namen hat, muss man sich das schon beim Erstellen des CVS-Moduls überlegen.

Wenn die als Sandbox verwendeten Verzeichnisse nicht leer sind (macht man gerne am Anfang), erscheinen Warnmeldungen.

Schritt 5: Einzelne Inhalte der CVS-Sandbox ins CVS-Repository stellen

d:
cd \home\kracht\www\dietrich.kracht.free.fr\rolodap
cvs add index.php			(ggf.  -b	für binary, oder gleich TortoiseCVS nehmen)
cvs commit

Ebenso können Unterverzeichnisse der CVS-Sandbox in das CVS-Repository gestellt werden.
Wichtig im CVS: Eine CVS-Sandbox ist immer ein Ordner mit seiner Unterstruktur, wobei Teile der Sandbox ignoriert werden können. Ich mass also alles was zu meinem “Projekt” gehört, in so einer Sandbox unterbringen. Die CVS-Sandbox entspricht dann spiegelbildlich einem CVS-Modul.
Ich kann keine Dateien, die “neben” der CVS-Sandbox stehen in das CVS-Modul einchecken. Jedes “Projekt” muss also hierarchisch strukturiert sein!

Der cvs checkout arbeitet mit dem im Environment-Parameter “CVSROOT” eingestellten Repository. In diesem Falle ein privates CVS-Repository im lokalen Dateisystem meines Notebook-Computers. Genauso kann man sich aber auch ein CVS-Modul aus einem externen CVS-Repository holen:

cvs -d:pserver:anoncvs@cvs.apache.org:/home/cvspublic checkout ant

— Main.DietrichKracht – 16 May 2004

Computer: Version Control (aus Wiki)

Gehört zu: Software
Siehe auch: Web Authoring, FileEditing
Benutzt: SVG-Grafiken aus GitHub

Version Control (aus Wiki)

Version Control dient der Verfolgung von Änderungen ganz allgemein an Dateien, sog. “Versionierung”. Wenn spezielle weitere Funktionalitäten für Quellcode-Verwaltung hinzukommen, spricht man von Source Code Control “SCC”.

 Meine Einsatzgebiete für Version Control

  • PHP Sourcen
  • HTML-Seiten
  • Konfigurationsdateien
  • Java Sourcen

 Meine Anforderungen an Version Control Lösungen

  • Frei verfügbar
  • Lauffähig auf Windows
  • Zukunftssicher – Mainstream
  • Integrationsmöglichkeiten in IDEs und/oder Filesystem

 Meine Short List von Version Control Lösungen

 Bewertung der Version Control Lösungen

VSS
Ich möchte nach Möglichkeit weniger Microsoft und mehr OpenSourceSoftware. Vorteil ist die Integration mit NamoWebEditor und über Microsofts SCC-API auch mit anderen Entwicklungsumgebungen.
CS-RCS
Sehr alt, Community ist von RCS auf CVS umgestiegen, SCC-API (Microsoft Common Source Code Control API) vorhanden, von Eclipse nicht unterstützt. Produkt CS-RCS nicht wirklich kostenlos.
GNU RCS
Sehr alt, Community ist von RCS auf CVS umgestiegen. Stabile Version für Win32, die ohne Cygwin funktioniert.
CVS
Das ist absolut der Mainstream. Passt zu Eclipse. Über SCC-CVS-Provider von ZeusEdit können auch SCC-IDEs wie ZeusEdit und HomeSite mit CVS arbeiten. Es war immer etwas schwierig, CVS unter Windows einzusetzten, aber mit dem SCC-CVS einerseits und mit TortoiseCVS andererseits ist das doch jetzt sehr einfach und elegant möglich.
Subversion
Soll das Nachfolgeprodukt von CVS werden. Ist schon sehr vielversprechend, aber hat sich noch nicht richtig durchgestezt. Umsteigen von CVS auf Subversion soll ganz einfach sein. Also erstmal mit CVS anfangen.
WebDAV
WebDAV wurde hier aufgenommen, weil NamoWebEditor es als Source-Control-System unterstützt….

 Entscheidung: CVS

  • Subversion ist für meine Zwecke noch nicht “Mainstream” genug.
  • CVS hatte bisher nicht genommen, da der Einstieg unter Windows kompliziert und aufwendig erschien. Das liegt aber zum grossen Teil an den Veröffentlichungen, die sehr aus der Unix-Ecke kommen und daran, dass bei CVS sofort grosse Client/Server-Szenarien berschreiben werden und das Einstiegs-Szenario “Einplatz-Windows-System” sehr stiefmütterlich behandelt wird. Durch das Arbeiten mit ZeusEdit habe ich jetzt aber den Zugang zu CVS unter Windows gefunden.
  • Für die Zwecke von TWiki auf Win32-Plattformen ist GNU RCS das Mittel der Wahl, da es ohne Cygwin funktioniert.

 SCC Interface

Abbildung 1: Verschiedene Frontends über SCC-API (pCloud: SCC-Provider.svg)

SCC-Provider.svg

— Main.DietrichKracht – 15 May 2004 

 

Computer: RCS (aus Wiki)

Gehört zu: Version Control
Siehe auch: CVS

RCS Revision Control System (aus Wiki)

RCS ist ein VersionControl-System unter GNU Unix entwickelt. Als Nachfolger von RCS kann man das heute sehr verbreitete CVS ansehen. Unter Microsoft Windows wird VSS Visual Source Safe stark propagiert.

Das WikiWiki-System TWiki verwendet RCS zur Verwaltung der Web-Seiten. Standardmäßig wird dazu unter Windows Cygwin verwendet, das dann ein RCS zur Verfügung stellt, welches die für TWiki benötigte Funktionalität bietet, aber ansonsten sich nicht zur Arbeit unter Windows anbietet.

Bei Recherchen zum Thema Parallel Entwicklung bin ich erneut auf RCS gestossen. Eine Firma Component Software bietet ein auf Windows zugeschnittenes CS-RCS Basic und Pro an: http://www.componentsoftware.com. Die Basic Version wird dem privaten Einzelplatz-User kostenlos als Freeware angeboten. CS-RCS unterstützt zusätzlich die von Microsoft propagierte Schnittstelle Microsoft SCC API und lässt sich damit sehr effizient in die eigentlichen Arbeits-Werkzeuge (FileEditing, Authoring, IDE) integrieren.

 GNU RCS 5.7 Windows Binaries

Auf der Web-Seite http://www.gnusoftware.com//directory/?level=Development/Tools/ findet man den Hinweis, auf die Purdue Universität, die Source und Binaries für Windows (Win32) bereitgestellt:

 Installation

  • Definitive Software Library ID: GNURCS
  • Name: GNURCS
  • Version: 5.7
  • Hersteller/Bezugsquelle: University of Purdue ftp://ftp.cs.purdue.edu/pub/RCS/
  • Installations-Ordner: D:\Programme\GNURCS (Rechner: braunbaer.kr8.de)
  • Environment-Variable:
    • SET LOGNAME=hugo
    • SET TZ=CET-1EST
    • SET RCSINIT=-x,v/
    • SET TMP=C:\temp
    • SET TEMP=C:\temp

 Werkzeuge mit RCS-Integration

  • FileEditing: ZeusEdit: Echte Integration über SCC
  • FileEditing: UltraEdit: RCS in das Menü einbaubar
  • HTML-Authoring: HomeSite: Echte Integration über SCC
  • HTML-Authoring: NamoWebEditor: (leider nicht RCS, sondern nur VSS oder WebDAV)
  • IDE: Eclipse: (arbeitet “von Haus aus” mit CVS)

— Main.DietrichKracht – 08 Apr 2004

Computer:: Wiki-Smarty

Gehört zu: Web Authoring
Siehe auch: PHP

Smarty meine PHP Template Engine (aus Wiki)

Smarty ist eine in PHP realisierte Template Engine für die Entwicklung zun Pflege von Websites (siehe: WebAuthoring).

Damit wird der Inhalt der Webseiten getrennt von der Darstellung (“Präsentation”) gehalten und dadurch eine bessere Verwaltung (Site Management) möglich. Smarty erfreut sich einer sehr grossen Community. Der ursprüngliche Entwickler ist Andrei Zmievski. Infos gibt es bei http://smarty.php.net

Die Template-Engine patTemplate (http://www.php-tools.net) wird für den 2003 neu gestalteten Web-Auftritt (Portal) von 1und1.com verwendet.

 Meine Smarty-Installation

  • Definitive Software Library ID: Smarty
  • Version: 2.4.2 (vom 11.02.2003)
  • Bezugsquelle: Freshmeat http://freshmeat.net/projects/smarty/ http://smarty.php.net/
  • Installationsdatum: 11.05.2003
  • Plattform: Entwicklungssystem (Notebook)
  • Installations-Ordner: d:\bin\php\smarty\….
  • Plugin-Ordner: d:\bin\php\smarty\plugins
  • Systemvoraussetzungen: PHP

 Konfiguration

  • In D:\bin\php\smarty\Smarty.class.php sind festverdrahtete Pfade
  • In D:\bin\php\smarty\plugins\function.filemtime.php ist ein festverdrahteter Pfad
  • In der PHP-Konfigurationsdatei D:\bin\php\PHP.INI wird der include_path wie folgt ergänzt: include_path = “.;d:\bin\php\pear;d:\bin\php\smarty;.\templates;.\plugins;.\include”

 Meine Website mit Smarty

Für meine WebsiteTraditionell setze ich Smarty ein. Da ich beim WebProvider keine PHP-Unterstützung habe, setzte ich Smarty auf meinem Entwicklungssystem (Notebook) ein und erzeuge daraus statische HTML-Seiten, die ich von Zeit zu Zeit hochlade.

 Die Smarty-Dateien (*.php)

Die Smarty-Dateien meiner Website liegen auf meinem Entwicklungsrechner (Notebook) in: d:\var\www\htdocs\smarty.kr8.de
Für jede Web-Seite befindet sich dort eine kleine PHP-Datei (z.B. index.php, humor.php, methods.php), in der die Template-Parameter gesetzt werden und die Template dann aufgerufen wird.

Diese Template-Parameter sind:

  • Diverse Parameter (Titel, Autor, Datum, Symbol, Banner,…)
  • Article: Aufruf des eigentlichen Textbausteins (z.B. “humor.inc”)
  • Menu: Ein Array, das die zu generierende Menüleiste definiert.

Als letzte Zeile erfolgt der Aufruf der Template, das ist standardmässig krachtweb.tpl.

 Welche Templates (*.tpl) verwende ich?

  • krachtweb.tpl: Mein Standard
  • krachtweb_popup.tpl: Für die kleinen Popup-Seiten (z.B. im Bereich “Ostern”)
  • krachtweb_print.tpl: Zur Erzeugung “druckerfreundlicher Varianten” einer Seite (z.B. beim CV)
  • krachtweb_tree.tpl: Für Seiten mit spezieller Tree-Navigation (z.B. im Bereich “Ostern”)

Die Templates befinden sich in d:\var\www\htdoc\smarty.kr8.de\templates

 Textbausteine (*.inc)

Die Textbausteine sind Dateien, die ein HTML-Fragment mit dem eigentlichen Text enthalten (z.B. “humor.inc”) und befinden sich in d:\var\www\htdocs\smarty.kr8.de\templates.

 Die dynamische Website

Damit sind wir fertig. Die dynamische Website kann nun (auf dem Entwicklungssystem) betrachtet werden. Zum Beispiel:

Leider besteht auf diese Seiten kein Zugriff vom Internet aus.

 Die statische Website

Zur Generierung der statischen HTML-Seiten wird der PHP Command Line Interpreter “CLI” verwendet. Z.B.:
cd \var\www\htdocs\smarty.kr8.de

 \php\cli\php -f index.php > \var\www\www.kr8.de\htdocs\index.htm
 \php\cli\php -f humor.php > \var\www\www.kr8.de\htdocs\humor.htm
 \php\cli\php -f methods.php > \var\www\www.kr8.de\htdocs\methods.htm 

Die so erzeugten statischen HTML-Seiten werden in \var\www\www.kr8.de\htdocs abgelegt und können dort zur Kontrolle betrachtet werden. Zum Beispiel:

Leider besteht auf diese Seiten kein Zugriff vom Internet aus.

 Upload der statischen Seiten zum Web-Provider

Mit einem FTP-Client werden diese statischen HTML-Seiten nun zum WebProvider hochgeladen und können dort öffentlich betrachtet werden. Zum Beispiel:

 Selektives Generieren der statischen HTML-Seiten mit einem Makefile

Das Generieren aller ca. 120 statischen HTML-Seiten dauert etwas lange. Wenn man jeweils nur das neu generiert, was von Änderungen betroffen war, geht es viel schneller. Dazu verwende ich das bewährte Unix-BuildTool Make.

Das produktive Makefile für meine Website ist:

  • Makefile: D:\home\kracht\www\www.kr8.de\htdocs\makefile

Das Generieren der statischen HTML-Seiten geschiet durch eine Aufruf der Progamms Make durch ein BAT-File:

  • BAT-File: D:\home\kracht\www\www.kr8.de\htdocs\makeweb.bat

Der prinzipielle Aufbau meines Makefiles ist wie folgt:

TEMPL = /var/www/www.kr8.de/smarty/templates/
PHP	= /var/www/www.kr8.de/smarty

# first target is the default target of the make command

all: krachtweb

krachtweb: index.htm humor.htm methods.htm

index.htm:	  ${TEMPL}index.inc ${PHP}index.php ${TEMPL}krachtweb.tpl
	\php\cli\php -f ${PHP}index.php > index.htm

humor.htm:		 ${TEMPL}humor.inc ${PHP}humor.php ${PHP}menu_freizeit.inc ${TEMPL}krachtweb.tpl
	\php\cli\php -f ${PHP}humor.php > humor.htm

methods.htm:		 ${TEMPL}methods.inc ${PHP}methods.php ${PHP}menu_humor.inc ${TEMPL}krachtweb.tpl
	\php\cli\php -f ${PHP}methods.php > methods.htm

03.04.2004 Menü-Ausprägungen für alle Seiten ausgelagert in INC-Dateien “menu_xyz.inc”

03.04.2004 Datum der letzen Änderung wird mithilfe eines Smarty-Plugins übernommen

FileMtime Plugin (Plugin-Ordner: d:\php\smarty\plugins)

<?php
/*
 * Smarty plugin
 * -------------------------------------------------------------
 * Type:	  function
 * Name:	  filemtime
 * Purpose:  get the lastmodified date and time from a file
 *
 * Example:  {filemtime file='hugo.inc'}
 * -------------------------------------------------------------
 */
function smarty_function_filemtime($params, &$this)
{
	 extract($params);

	 if (!isset($file)) {
		  $this->trigger_error("filemtime: missing 'file' parameter");
		  return;
	 }
	 if($file == '') {
		  return;
	 }
	 $file = "d:/home/kracht/www/smarty.kr8.de/templates/" . $file;
	 $html = date('Y-m-d H:i:s', filemtime($file));
	 return $html;
}
?>

Einsatz des Plugins in der Smarty-Template

  <address>Dietrich Kracht. Copyright © 2004. All rights reserved. Page last modified: {filemtime file="$Article"}
  </address>

— Main.DietrichKracht – 25 Mar 2004

Computer: Cygwin (aus Wiki)

Gehört zu: Betriebssysteme
Siehe auch: Windows, Unix, Linux

Cygwin das Unix-Environment für Windows (aus Wiki)

Cygwin wird von der Firma Redhat (Linux Distribution) zur Verfügung gestellt, um unter Win32 eine Unix-Umgebung (genauer: Posix) bereitzustellen (Cygwin = GNU + Cygnus + Windows). Damit kann man (wenn alles klappt) Linux/Unix-Software auf Win32 nutzen.

Meine Beispiele:

Weitere Beispiele:

  • CVS
  • KDE mit XFree86
  • FileManager: Midnight Commander (MC) (Win32 File Manager: Total Commander, Servant Salam, Directory Opus, Advanced File Manager….)
  • FileManager: XFE (mit FOX >= 1.4)
  • FileManager: gentoo (Worker File Manager) mit Cygwin gtk

 Installation von Cygwin

  • Definitive Software Library ID: Cygwin
  • Version: cygcheck -s sagt: cygwin.dll version 1.5.9
  • Hersteller/Quelle: Redhat http://www.cygwin.com
  • Root Install Directory: d:\programme\cygwin
  • Local Package Directory: e:\var\cygwin ……
  • Programmstart: s.u.

 Konfiguration: Mount Points

Standardmässig wird das Installationsverzeichnis (Hier: d:\programme\cygwin) als “/” gemountet.
Unterhalb des so als Root-Verzeichniss definierten Installationsverzeichnisses (d:\programme\cygwin) werden die Standard-Unix-Verzeichnisse angelegt:

  • /bin
  • /c (Mount Point)
  • /d (Mount Point)
  • /etc
  • /home
  • /lib
  • /tmp
  • /twiki (Mount Point)
  • /usr
  • /var

Hierhin gehören dann auch Mount-Punkte wie z.B. /c, /d oder /twiki (letzteres für TWikiInstallation). An so einen Mount-Punkt werden dann die echten Verzeichnisse eingehängt. Z.B. könnte man mit “mount -b -s d:/home /home” an den Mount-Point “/home” (s.o.) den Windows-Ordner “d:/home” hängen.

Die Mounts sind “permanent” und werden gespeichert im Windows-Registry unter: HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin\…

 Konfiguration: User-Konten

Anlegen der Dateien group und passwd, diese werden mit den Daten der Windows-User-Konten gefüllt.

  • cd \Programme\OpenSSH\bin
  • mkgroup -l >../etc/group
  • mkpasswd -l >../etc/passwd
  • Das in der Datei passwd angegebene User-Verzeichnis (z.B. /home/dkracht) muss vorhanden sein.

 Konfiguration Diverse

  • Umgebungsvariable CYGWIN: set CYGWIN=”…winsymlinks….” (siehe auch: HardLinks )

 Starten von Cygwin

Cygwin wird durch Aufruf der BAT-Datei cygwin.bat, die sich im Root Install Directory (hier: D:\Programme\cygwin) befindet, gestartet.

 @echo off
 D:
 chdir D:\Programme\Cygwin\bin
 bash --login -i

 Die Bash Shell

Global Startup-File: /etc/profile

Das Home-Verzeichnis für den User solle sich aus der Eintragung in /etc/passwd ergeben… Ich habe da folgende Eintragungen:

  • User Administrator: /home/Administrator (/cygdrive/d/home/Administrator ????)
  • User dkracht: /home/dkracht
  • User lonzo: /home/lonzo

Nützliche Befehle:

  • ln -s hugo otto Erstellen eines “Symlink” namens otto für die Datei hugo
  • cp -L otto emil Kopieren von otto nach emil, wobei der Symlink dereferenziert wird (target, Follow links)

 X-Windows

 Installation

  • Installiertes Cygwin-Packet: xorg-x11-base
  • Installiertes Cygwin-Paket: mc (FileManager: Moonlight Commander)

 Konfiguration

  • Konfigurationsdatei: /etc/X11/xorg.conf
  • Interessantes Problem: Grafikkarte mit TVout z.B. für MythTV
    • Option “TVOutFormat” “SVIDEO” oder “COMPOSITE” oder “RGB” (Composite —> FBAS)
    • Option “TVStandard” “PAL-G” oder “PAL-B” oder …?
    • Option “ConnectedMonitor” “TV” ????

 Aufruf Schritt für Schritt

Schritt für Schritt

  • cd /usr/X11R6/bin
  • export DISPLAY=127.0.0.1:0.0
  • echo $DISPLAY
  • run -p /usr/X11R6/bin XWin -multiwindow -clipboard
  • xterm -e /usr/bin/bash -l &

Bei “run XWin” wird ein Init-Shell-Script ausgeführt: /etc/X11/xinit/xinitrc

 Aufruf kompakt

  • startx (mit kofortabler Konfiguration im Shell-Script)
  • Oder: xinit (sehr einfache Konfiguration)

 Installed Cygwin Packages

Tabelle 1: Installed Cygwin Packages

Package Category Version Remarks
rcs Devel 5.7-3 TWiki
bash Base 2.05b-16 TWiki
binutils Devel 2004031 TWiki
diffutils Base 2.8.1-1 TWiki
gcc Devel 3.1.3-4 TWiki
grep Base 2.5-1 TWiki
gzip Base 1.3.5-1 TWiki
make Base 3.80-1 TWiki
nano Editors 1.2.2-1 TWiki
ncftp Net 3.1.4-1 TWiki
pcre Devel 4.5-1 TWiki
perl Interpreters 5.6.1-2 TWiki

— Main.DietrichKracht – 23 Mar 2004

Computer: WinPE (aus Wiki)

Gehört zu: Microsoft Windows

Stand: 27.03.2004

WinPE-Notfall-CD aktualisiert (aus Wiki)

 Installation

  • Definitive Software Library ID: pebuilder
  • Name: PE-Builder
  • Version: v2.0.2b-BETA
  • Hersteller/Bezugsquelle: Bart Lagerweij http://www.nu2.nu/pebuilder/
  • Installationsplattform: Windows XP
  • Installationsordner:
  • Konfiguration: s.u.
  • Systemvoraussetzungen: WindowsXP-CD

Aufgrund der unten geschilderten Erfahrungen vom 26.3. habe ich folgende Aktualisierungen vorgenommen:

  • McAfee Stinger vom 26.03.2004
  • McAfee Virusdefinitionsdateien (DAT) vom 26.03.2004
  • PuTTY ergänzt um PSFTP
  • WinSCP als weiteres “Plugin” und Menüpunkt aufgenommen (SSH-Client mit grafischer Benutzeroberfläche).

PE-Builder stellt damit ein aktualisiertes ISO-Image her, das ich dann auf CD brenne.

Der Versuch, das mit PE-Builder erzeugte ISO-Image nachträglich mit UltraISO zu bearbeiten, war leider nicht von Erfolg gekrönt. Die davon gebrannte CD funktionierte nur teilweise (Start Network Services ging z.B. nicht).

Mit Total Commander 5.51 können ohne Umwege im rechten Fenster Netzwerkverbindungen aufgebaut werden, wenn die Arbeitsgruppe WORKGROUP heisst. Ansonsten können mit dem Menüpunkt “Net” Netzwerkverbindungen (ohne händisches “net use …”) hergestellt werden.

Der Einsatz des SSH-Clients WinSCP, das eine schöne grafische Benutzeroberfläche für eine SSH-Verbindung zur Verfügung stellt, ist natürlich genial für den Notfall. Voraussetzung ist aber, dass ich auf der Gegenseite einen SSH-Server (etwa den OpenSSHServer) habe. Dann kann ich in der Tat auf den ganzen Microsoft-Netzwerk-Kram verzichten und arbeite auf der einfachen Ebene von TCP/IP und das verschlüsselt und sicher.

 26.03.2004 Der Ernstfall: Ein Fallbeispiel

Bericht des Users: Mein Windows ME Computer “geht nicht mehr richtig”. Berichtetes Symptom: “kurze E-Mails gehen, lange aber nicht, die Maus bleibt stehen…” Analyse: Computer ohne Netzwerk-Verbindung funktioniert (auf den ersten Blick) einwandfrei. Aber sobald man das Ethernetkabel (mit Internetverbindung) einsteckt bleibt so nach 10-15 Sekunden die Maus fast stehen und lässt sich nur noch extrem langsam bewegen. Sobald man das Ethernetkabel wieder rausnimmt normalisiert sich der Computer so nach ca. 30 Sekunden. Hypothese: Ein Trojanisches Pferd macht Internet-Verbindungen auf (und zwar heftige, z.B. DOS-Angiffe…). Schlussfolgerung: Es besteht Virenverdacht, ein Virenscanner ist auf dem Computer nicht vorhanden. Da ich auch keine LAN-Verbindung zu meinen anderen Computern aufbauen kann: Computer von WinPE-Notfall-CD starten. Dazu im BIOS-Setup Boot-Sequenz ändern.

 Nach dem Booten von der Notfall-CD schrittweise folgende Aktionen

  • Aus dem Menü McAfee Stinger starten. Das ist vom 28.8.2003 und viel zu alt.
  • Aus dem Menü McAfee Virusscan starten. SCAN /AD erkennt keine Viren (DAT-Dateien vom 3.9.2003 sind wohl zu alt…).
  • Aus dem Menü Start Network Services. Mein Hostname ist “minint-mcpz1e”.
  • Aus dem Menü starte ich Putty (SSH-Client) und kann erfolgreich mit meinem Notebook “lonzo” eine Session aufbauen. Ich lade auf “lonzo” die aktuellen DAT-Dateien aus dem Internet herunter. Dann komme ich aber mit dem scp nicht klar. Ich kann so die Dateien nicht von “lonzo” auf den kranken Computer kopieren.
  • Menü Command Prompt (CMD). net view \\lonzo funktioniert. Also auf “lonzo” eine Freigabe einrichten und diese auf ein Laufwerk mappen: net use h: \\lonzo\archiv
  • Menü Total Commander. Damit kopieren der DAT-Dateien von H: auf C:
  • Menü Command Prompt (CMD) scan /adl zeigt Virenbefall (Mydoom, Doomjuice, QDial14). Cleanen mit scan /adl /clean
  • Computer wieder von Festplatte starten. Ethernetverbindung zu LAN und Internet herstellen. Alles funktioniert wunderbar.
  • Nun zur Vorbeugung installieren: Virenscanner und Firewall.
  • P.S.: scp funktioniert natürlich auch: “scp lonzo:/d/home/kracht/datei.txt .” (absolute Pfadnamen bitte!).

 13.09.2003 Software für WinPE

Für die Boot-CD, die für den Notfall ein abgespecktes Betriebssystem “WinPE” bereistellt, muss man sich Software bereitstellen, die man im Notfall dringend benötigt und die auch wirklich unter “WinPE” lauffähig ist.

 Software unter WinPE

  • TotalCommander (eine Art Explorer mit ZIP/RAR und FTP und FileChop und FileDate und Laplink und …)
  • McAffe Virusscan
  • Stinger (McAfee Virusscan Emergency)
  • Ad-Ware 6.0 (Lavasoft)
  • IrfanView (Bildbetrachtung und -bearbeitung)
  • VNCViewer (Remote Control) see: RealVNC
  • OB1 (ganz einfacher WebBrowser)
  • K-Meleon (WebBrowser mit Gecko-Engine. Z.B. für OnlineBanking, für Downloads,…)
  • PowerQuest DriveImage 7 (Drive Image 2002 geht nicht)
  • Norton Symantec Ghost (benötigt wird Version 7.5 mit ghost32.exe,…)
  • CDCheck (Prüfen von CDs http://Fusion.zejn.si)
  • IsoBuster (Lesen von CDs – http://www.isobuster.com)
  • Putty (SSH-Client mit pscp, psftp, plink, …)
  • E-Mail-Client????????????
  • Palm Desktop ?????????
  • Firewall ??????????

 07.09.2003 Boot-fähige Notfall-CD für Windows 2000 und Windows XP erstellt

Es hat funktioniert. Mit PE Builder 2.0 habe ich eine Notfall-CD erstellt, von der ich meine WindowsXP-Computer booten kann, also so etwas wie “Knoppix für Windows”. Folgendens war zu tun:

  • Alle Computer so einstellen, dass als Boot-Device das CDROM-Laufwerk ausgewählt werden kann bzw. vor der Festplatte (HDD) drankommt.
  • PE Builder installieren auf einer WindowsXP Professional Maschine.
  • WindowsXP Installations-CD bereitlegen.
  • Die Software, die auf die Notfall-CD soll, zusammenstellen bzw. besorgen und dann in die Verzeichnisstruktur von PE-Builder (unter den Ordner addon) und in das PE-Builder-Menü eintragen.
  • PE-Builder starten, beim Output das Häkchen bei “Create ISO-Image” anhaken.
  • Mit einem CDROM-Brennprogramm “Create CD from CD-Image…” (Easy CD Creator, OSCDIMG,…)
  • Die Notfall-CD ist unter Win XP Professional, Win XP Home Edition und unter Windows 2000 funktionsfähig. Enjoy <a href=”http://www.nu2.nu/pebuilder/“>Bart Lagerweij’s</a> superb solution…

 Hintergrund

Die Notfall-CD startet ein kleines Win32-Betriebssystem “WinPE”, mit dem man viele Windows-Programme mit grafischer Benutzeroberfläche laufen lassen kann, auf die Festplatte (auch NTFS) zugreifen kann und auch Netzwerkverbindungen nutzen kann. Microsoft will das alte DOS beim Installationsvorgang von Windows durch WinPE ablösen. Das nächste Windows Desktop OS, mit dem Kodenamen Longhorn wird mit WinPE installiert.

Microsoft Windows Preinstallation Environment (WinPE) is a minimal operating system based on the Windows XP kernel. It will give you a complete Win32 environment with network support, a graphical user interface (800×600) and FAT/NTFS/CDFS filesystem support. Very handy for burnin testing systems with no OS, rescuing files to a network share, virus scan and so on.

Windows PE will replace any Dos bootdisk (even masterpieces like modboot and Bart’s Network Bootdisk) in no time! Please note that I (Bart) did not create Windows PE, Microsoft did. I only created a builder program called “PE Builder” that creates a base Windows PE ISO image very suitable for PC maintenance tasks.

 Erfahrungen mit WinPE

  • CompactFlash-Karten im PCMCIA-Adapter werden funktionsfähig als Laufwerk “SunDisk” über “PCMCIA IDE/ATAPI Controller” bereitgestellt.
  • USB-Festplatte funktioniert (Intel Ultra ATA Ctorage Controller).
  • TWAIN-Schnittstellen funktionieren nicht (nicht auf dem Image von PE-Builder 2).
  • Deutsche Tastatur wird noch nicht unterstützt (nicht mit dem Image von PE-Builder 2).

 Generelle Restriktionen von WinPE

To reduce its size, WinPE includes only a subset of the available Win32 APIs. Included are I/O (disk and network) and core Win32 APIs. To prevent its use as a pirated operating system, WinPE automatically stops running the shell and reboots after 24 hours of continuous use. No network access to files or folders on a WinPE computer from another location on your network. Distributed File System (DFS) name resolution is not supported.

The tested methods of gaining network connectivity to file servers are TCP/IP and NetBIOS over TCP/IP. The drive letters assigned during WinPE are not saved to any registry that persists when you reboot. The drive letter assignment when you create partitions is in the order of creation, but the drive letter assignments when you reboot will be in the default order. WinPE requires a VGA-compatible device and uses a screen resolution of 800 x 600 pixels. If WinPE cannot detect video settings, the default screen resolution is 640 x 480 pixels.

WinPE is too large to fit on a floppy disk.

You cannot build a custom version of WinPE from Windows XP Home Edition. WinPE does not support the Microsoft .NET framework. The WOW32 subsystem is not included in WinPE for i386, so 16-bit applications will not function. This means that Dos programs also will not run.

 03.09.2003 Notfall System: Boot-CD für Windows XP mit PE Builder

Morgens um 7 Uhr am Flughafen, auf dem Weg zur Angebotspräsentation: Mein WinXP-Notebook startet nicht. Das veranlasste mich, nach Notfall-Lösungen für WinXP zu suchen. Ein erstes Ergebnis ist hier dokumentiert: Windows 2000/xp/2003 live cd like Knoppix!!!

I stumbled upon this the other day and it got me thinking: <a href=”http://www.nu2.nu/pebuilder/“>PE Builder</a>. Thanks to google, I found the following download links:

Bart’s PE Builder v3 – cause being an Admin is hard enough…
Von: Teletom Am: 01.09.2003, 11:49
Hi, der PE-Builder ist unaufhaltsam. Mit den Versionen 1.0.3 und 2.0.2b, die ausgezeichnet funktionieren, eröffnet Bart Largeweij neue Horizonte.
Die neueste Version 3.0.2 BETA erweitert die PE-Möglichkeiten des genialen Tools.
Der PE-Builder kommt übrigens mit dem optimalen Nu2Menu von Henk de Jong, das Nu2Menu ist unverzichtbar für ressourcensparende Programmaufrufe. PE Builder Homepage

— Main.DietrichKracht – 02 Mar 2004

Computer: WinTV (aus Wiki)

Gehört zu: Fernsehen
Siehe auch: Computer, Hardware

TV-Tuner WinTV USB von Hauppauge (aus Wiki)

Dieses kleine USB-Hardware-Teil habe ich mir vor ca. zwei Jahren gekauft. Damit kann ich mit dem Notebook wunderbar Fernsehen. Auch das Schiessen von Standfotos und das Mitschneiden von Fernsehsendungen (Aufnahmen, Recording, Capturing, Video) ist möglich.

Herzstück ist der WinTV USB Treiber, der den TV-Tuner als Windows-Videoquelle zur Verfügung stellt. Auf diese Videoquelle können beliebige Windows-Programme zugreifen; z.B. VirtualDub, RealProducer, CyberLink VCR,…. – oder auch das zum Lieferumfang gehörige “WinTV2000″….

 Installation Treiber

  • Definitive Software Library ID: WinTV_USB
  • Name: WinTV USB
  • Version: 2.62.21125.0
  • Hersteller/Bezugsquelle: Hauppauge http://www.hauppauge.com/html/sw_tvusb.htm
  • Installations-Verzeichnis: C:\WINNT\system32 (ksdata.ax, ksinterf.ax,…, ksxbar.ax)
  • Konfigurations-Dateien:
  • Systemvoraussetzungen: vfwwdm.dll (Video for Windows)

 Installation Anwendungssoftware

 Schritte zur Neuinstallation

Ein paar Probleme macht es immer wieder, die neuesten Treiber und die neueste Software zu bekommen und zu installieren. Gerade heute (23.01.2004) habe ich für mein Windows 2000 WinTV erfolgreich neuinstalliert.

  • Aktuelle Versionen Downloaden von http://www.hauppauge.com/html/sw_tvusb.htm
  • hcwclear.exe zur vollständigen Entinstallation von Treibern (USB. Plug-and-Play), und Anwendungssoftware (TV-Tuner, VideoCapture)
  • USB-Treiber: usbdrv262_21125.exe installieren
  • Anwendungssoftware wintv2k40_21126.exe installieren

 Neuigkeiten

  • TV-Tunerkarte: NVTV ist eine TV Tuner Karte (PCI) von Nvidia, die mit einem analogen TV-Tuner und einem schnellen MPEG2-Encoder bzw-Decoderchip ausgetattet ist. Preis EUR 140…
  • DVB-T gibt es seit dem 24. Mai 2004 in Hannover/Braunschweig und Bremen/Oldenburg. Hamburg folgt im November…

 DivX 5.1 Codec und MJPEG (16.11.2003)

DivX als Weiterentwicklung des MPEG-4 Codecs von Microsoft ist der zukunftssichere Standard für Video-Aufnahmen. Allerdings kann ich Live-Aufnahmen vom TV-Tuner damit nicht machen. Das scheint mit dem Microsoft MPEG-4 Codec zu gehen. Empfohlen wird aber, Live-Aufnahmen mit dem MJPEG-Codec zu machen und die dann in einem weiteren Durchlauf auf DivX (Sound dann als MP3) zu komprimieren.

Das MJPEG-Codec von PICVideo (Pegasus) wurde installiert. Die Live-Aufnahme erfolgt mit folgenden Einstellungen:

  • Video Compression: PICVideo MJPEG Codec, Compression/Quality: 17
  • Audio Compression: PCM 44100 kHz, 16 Bit, Stereo, 172 kByte/s (Quailtät einer Audio-CompactDisk)
  • Framerate 25 fps mit 320×240 Pixel

Mit diesen Einstellungen werden ein Speicherplatz von 30 MByte pro Minute benötigt (unkomprimiert: 220 MB/Min).

Nach der Live-Aufnahme wird wie folgt komprimiert:

  • Video: DivX 5.1, 1-pass, Performance/Quality: Standard, Bitrate 1200
  • Audio: MPEG-3, 44100 Hz, 96 KB/s

Mit diesen Einstellungen wird dann nur noch ein Speicherplatz von 10 MByte pro Minute benötigt.

— Main.DietrichKracht – 23 Jan 2004

Computer: Adressbuch

Stand: 26.9.2022

Adressbuch und Kontakte (aus Wiki)

Aktuelles

  • Von meinem Thunderbird auf dem Computer Acerbaer habe alle “Contacts” als vCard-Files exportiert.
  • Zur Datensicherung habe ich die vCard-Files auf meinem Haupt-Computer AcerBaer nach C:\04-ArchivKopie\EMail\Contacts kopiert
  • Als Adressbuch-Manager habe auf ComputerAcerbaer ein Mozilla Thunderbird installiert und dort alle vCards importiert. Die Photos sind dabei erhalten geblieben
  • Die Thunderbird-Kontakte waren schließlich in Google-Adressbüchern realsiert, welche ich aber im Mai 2025 zu der deutschen Telekom verschoben habe.
  • Auf meinem Android-Smartphone habe ich ein CardDAV-Konto zum Server der Telekom (spica.t-online.de) eingerichtet und dafür die Kontakte-Synchronierung aktiviert.
  • Die Standard-Kontakte-App (also die von Google) zeigt dann alle Kontakte aus dieser CardDAV-Quelle “Telekom Adressbuch” an. Alle anderen Speicherorte  (Telefonspeicher, SIM-Speicher, Google-Konten) habe ich leer gemacht.

Meine Adressbücher und Telefonbücher

Werden benötigt

Zur Zeit arbeite ich mit folgenden Adressbüchern:

  • Adressbuch auf meinem SmartPhone (zur Zeit: Samsung Galaxy A22)
  • Adressbuch im Telekom-Konto sirp-kracht@t-online.de
  • Es existieren noch Altbestände als:
    • Einige LDAP-Adressbücher (GMO-Veteranen, GMO-Lotus-Domino,…)
    • Lotus-Notes-Adressbuch (Firma, einige E-Mail-Adressen)

Um alle diese verschiedenen Adressbücher zu verwalten (Impoprt/Export, Backup, evtl. Synchronisierung…) suche ich einen Adressbuch-Manager

Meine Anforderungen an einen Adressbuch-Manager

  • Verwaltung in einer Datenbank mit der Möglichkeit des Import und Export von LDIF und/oder vCard-Formaten (etwa als Langfrist-Backup in einem nicht-proprietären Format)
  • Import/Export/WebDAV MozillaThunderbird
  • Import/Export/WebDAV mit meinem Smartphone
  • Der Adressbestand soll in mehrere Adressbücher bzw. in Gruppen unterteilt werden können

Meine Short List von Adressbuch-Managern

  • vCardMagic

Outlook-Adressbuch

Berufliche Gründe gaben den Ausschlag dafür doch wieder MicrosoftOutlook mit seinem Adressbuch (Telefonbuch) und seinem Terminkalender einzusetzen.

Synchronisieren mit SmartPhone

Die Synchronisation des Adressbuchs mit meinem SmartPhone ist ein wichitges Auswahlkriterium für das SmartPhone.

Generelle wichtige Punkte beim Synchronisieren sind:

  • WebDAV als Basis
  • Menge der Adressen und Telefonnummern, die auf dem Telefon gespeichert werden können

Android-Adressbuch

Auf meinem Android-Smartphone werden die Adressen “Kontakte” genannt.

Lokal, also auf dem Smartphone selbst, gibt es einen Datenbestand “Kontakte”.

Der Zugriff auf diese Kontakte kann direkt über entsprechende Kontakte-Apps erfolgen oder indirekt über andere Apps wie Telefon-App, E-Mail-App etc.

Der Datenbestand “Kontakte” kann mit externen Quellen Synchronisiert werden über spezielle Android-Konten, die man mit seiner Kontakte-App einrichten kann. Beispiel: Über ein WebDAV-Konto zum Telekom-Adressbuch.

Auf meinem gegenwärtigen (2025) Smartphone Samsun Galaxy A22 verwende ich als Kontakte-App mit einem roten Icon und der Version 14.7.54

Thunderbird-Adressbuch E-Mail-Client

Nach der Umstellung des E-Mail-Clients von Mozilla 1.5 auf MozillaThunderbird 0.5 konnte die PalmHotSync Funktion einsetzt werden. Das Palm-Adressbuch und das E-Mail-Client-Adressbuch wurden manuell bereinigt und konsolidiert. Von nun an ist das Thunderbird-Adressbuch mein führendes Adressbuch und wird auf den Palm mit PalmHotSync regelmäßig heruntergeladen.

Telekom Import vCard

…. morefunctionsforAB-TB3-0.6.4.3.xpi …

Synchronsation

Ähnlich wie ich meine Terminkalender über Google synchronisiere (und für Datensicherheit sorge), so möchte ich auch mein Adressbuch bei einem WebProvider pflegen und von da aus mit meinen lokalen Kopien synchronisieren. Google hat zwar auch einen Adressbuch-Service, allerdings gibt es in einem Google-Adressbuch nur einen Bruchteil der Datenfelder, die ich in meinem Outlook-Adressbuch bzw. Thunderbird-Adressbuch habe.

Daher ging ich auf die Suche nach einem Provider, der sich auf Outlook- bzw. Thunderbird-Adressbücher spezialisiert hat.

Google

Bei Google hat man als Zugabe zur E-Mail auch ein Adressbuch. Das kann man über Google-Mail ansprechen (links oben) oder aber auch direkt in Web-Browser über:
Link: http://www.google.com/contacts

Telekom

Die Telekom (t-Online, Magenta) bietet eine E-Mail-Funktion zu der auch ein WebDAV-fähiges Adressbuch gehört.

LDAP-Adressbücher

Auf meinem OpenLDAP-Server verwalte ich folgende Adressbücher:

  • GMO-Lotus-Notes-Adressbuch (migriert vom Lotus-Notes-Server, mit Password-Hashs)
  • GMO-Veteranen (GMO-Mitarbeiter mit den privaten E-Mail-Adressen)
  • Palm-Adressbuch (mit pdb2ldif als LDIF importiert)
  • Rolodap-Testbestand
  • NLDAP-Staging (für www.nldap.com, vereinfachtes Rolodap)

— Main.DietrichKracht – 10 Jan 2004

Retrieved from my Wiki

Computer: Suchmaschinen (aus Wiki)

Gehört zu: Dokumentenmanagement
Siehe auch: CopernicDesktopSearch, YahooDesktopSearch, Google, Metadaten, DesktopSuchmaschine

Suchmaschinen (aus Wiki)

(Redirected from Suchmaschine)

Suchen und Finden

Meine Anforderungen

Die wichtigste Funktion meines Wissensmanagements (KnowledgeManagement) ist, Dinge wiederaufzufinden, die ich schon irgendwo (auf meinem PC oder in Papierablagen) habe. Darüberhinaus kommt es vor, dass ich Informationen aus fremden Quellen suche.

  • Klassich ist der Fall eines Archivs, das in spezieller Form Dinge abspeichert, nach denen dann mit speziellen Suchfunktionen gesucht werden kann.
  • Auch klassisch ist heutzutage das Suchen im Internet, wo im einfachsten Fall nach HTML-Seiten gesucht wird.
  • Ich möchte möchte nun aber ganz schlicht und ergreifend in allen meinen Dateien auf meinem Notebook-Computer suchen. Für diesen Fall muss ein Index aufgebaut werden, der dann als Basis für Suchanfragen dient.

Aufgabenstellung: Website-Indexer / Desktop-Indexer

Für meine eingene Website möchte ich eine Suchmaschine anbieten, mer Besucher, zusätzlich zur ausgeklügelten Navigation auch über eine Volltextsuche über alle meine Webseiten möglichst direkt das finden kann, was er/sie sucht.

Die dafür eventuell erforderlichen technischen Komponenten auf der Server-Seite müssen sehr genau überlegt werden, denn ein billiger Web-Hosting-Provider bietet da nur sehr wenig.

Zur Zeit ist die eigene Website bei t-online gehostet. Als Provider mit PHP und MySQL steht auch free.fr zur Verfügung.

Siehe auch: http://www.searchtools.com

 Lösungsarchitektur

Wichtig ist die Erkenntnis, das hier eine Schichtenarchitektur sinnvoll ist, wobei die untern dargestellten drei Schichten unterschiedliche systemtechnische Anforderungen aben und auch auch unterschiedlichen Systemplattformen laufen könnten.

 Indexing – Harvesting

Man benötigt einen wirklich guten Indexer, der die Website wie ein Spider per HTTP-Protokoll durchläuft und dabei den auf der Oberfläche sichtbaren Text indiziert. Damit werden die Hyperlinks durchlaufen, dynamische inhalte (z.b. von PHP, ASP, JSP-Seiten) richtig behandelt, Zeichensätze (Umlaute) richtig beachtet und ggf. weitere Dokumenttypen (PDF, MicrosoftWord, PowerPoint,…) auch verarbeitet.

Das Ergbnis ist eine Dokumentliste und eine Wortliste.

Diese Komponente muss nicht notwendig als Web-Applikation laufen.

Schnelle Indexdatenbank

Die in der Stufe 1 (Indexing/Harvesting) gewonnenen “Rohdaten” werden jetzt veredelt und für den Zweck des schnellen Suchzugriffs optimiert aufbereitet.

Diese Komponente muss nicht notwendig als Web-Applikation laufen. Schnelle Such-Oberfläche

Über ein HTML-Formular soll der Anwender seine Suchbegriffe eingeben. Das Suchergebnis soll dann als Fundstellenliste präsentiert werden.

Diese Komponente muss zwingend als Web-Applikation laufen.

 Lösungsmöglichkeiten

  1. Fremdanbieter: Provider für solche Website-Suchmaschinen
  2. ht://Dig (SourceForge)
  3. mnogosearch
  4. siteIndexer (SourceForge)
  5. dtSearch
  6. PerlfectSearch

 Software für Suchmaschinen

Man hat sich ja an sehr schöne Suchfunktionen aus dem Internet gewöhnt (früher Altavista, heute Google). Wenn man so etwas auf den lokalen PC übertragen könnte, wäre dann noch eine grosse Frage zusätzlich: Kann ich auch nach den Inhalten von Nicht-HTML-Dateien (z.B. MicrosoftWord, PowerPoint, PDF, E-Mails,…) suchen?

Microsoft:
Da gab es zum Web-Server IIS schon immer einen Index-Server. Für den lokalen PC gibt es auch eine in Windows integrierte Suchfunktion nach Inhalten, die auf einem File-Indexer beruht.
Altavista:
Da gab es mal ein Personal Altavista, mit dem man seine lokalen Daten durchsuchen konnte.
dtSearch:
Habe ich 2001 mal ausprobiert, war gut, aber ist auch teuer.
ht://Dig:
Eine sehr verbreitete klassische Index-/Such-Lösung. Einzelheiten unter HtDig.
Perlfect Search 3.31:
Eine Index-/Such-Lösung in Perl, die mein WebProvider-Provider Westhost unterstützt. Einzelheiten unter PerlfectSearch.
SearchBlox:
Eine in Java (J2EE) auf Basis von Jakarta Lucene (http://jakarta.apache.org/lucene/docs/index.html) realisierte Suchmaschine. Kann auch Word, PowerPoint, PDF und Excel. Leider kommerziell und gepfefferte Preise…. http://www.searchblox.com
nutch:
Eine in Java (J2EE) auf Basis von Jakarta Lucene realisierte einfache OpenSourceSoftware http://www.nutch.org
ASPSeek:
Linux-only. Free Software under GNU GPL. CGI-Fontend… (http://www.aspseek.org)
mnoGoSearch:
http://www.mnogosearch.org/win.html
Namazu:
….
sitesearch:
…Teil von….
Search Engine Builder Professional:
Indexiert Dokumenttypen: xyz. Baut lokale Suchmaschine (ASP, PHP, JavaScript – ohne MySQL), die z.B. auch für CD-ROMs und DVDs geeignet ist.
Search Maker Pro:
Indexiert Dokumenttypen: PDF, DOC, RTF, PPT, XLS,.. Dabei werden Dokumentinhalt und Dokument-Property-Felder indexiert. Es wird eine lokale, in sich abgeschlossene Suchmaschine generiert (ASP, PHP, JavaScript), die z.B. auch für CD-ROMs und DVDs geeignet ist.

 Update Oktober 2004: Desktop Search

blinkx:
Produkt “blinks 0.4.34” http://www.blinkx.com Windows-Oberfläche, Dateien: …, PDF, PPT, ZIP. Aber völlig instabil.
Anstelle eines Pre-View gibt es ein Pop-Up-Fenster mit einem Abstract.
Copernic:
Produkt “Copernic Desktop Search 1.0” http://www.copernic.com/en/products/desktop-search Windows-Oberfläche, Dateien: TXT/RTF DOC XLS, PPT, Outlook-Mail, PDF, Music, Video, Pictures (ZIP?????)
Enfish:
Produkt Enfish “Professional 6.1” http://www.enfish.com Windows-Oberfläche, Dateien: …PDF, PPT, ZIP-Inhalte, kommerziell
HotBot:
Produkt “HotBot Desktop” http://www.hotbot.com/tools/desktop
Google:
Produkt “Google Desktop Search” http://desktop.google.com Dateien: TXT, DOC, XLS, PPT, Outlook-Mail (PDF nicht)
Filehand:
Produkt “FilehandSearch 2.0” http://www.filehand.com Oberfläche: Windows, Dateien: TXT, DOC, XLS, PPT, PDF, MP3 (ZIP???)
SWISH-E:
http://www.swish-e.org
Wilbur:
Produkt “Wilbur 2.2” http://wilbur.redtree.com Oberfläche: Windows,…
X1 Technologies:
Produkt “X1Searchhttp://www.x1.com Oberfläche: Windows, ….
X-Dot:
Produkt “x-friend 0.2” http://www.x-friend.de Browser-Oberfläche, Java-basiert, verwendet Apache-Lucene, Dateien: TXT, DOC, XLS, PPT, PDF, IMAP E-Mail, MP3 ID3 Tag, Bilder, ZIP-Archive,…

Update Januar 2005: Desktop Search

Yahoo Desktop Search:
Yahoo hat sich mit X1Search zusammen getan und eine bessere Oberfläche geschaffen. Überragender Pluspunkt bleibt die Viewer-Technologie von X1Search (ex Magellan) YahooDesktopSearch

 Meine Bewertung

Tabelle 1: Meine Bewertung von Desktop-Suchmaschinen

Produkt/Klasse Pro Contra
blinkx 0.4.34 kann PDF, PPT und ZIP-Inhalte
E-Mail: Outlook und Eudora
kostenfrei
läuft extrem instabil unter Win2000
kommerziell
Thunderbird-E-Mail nicht unterstützt
 
CopernicDesktopSearch 1.0
Desktop-Indexer
Dokumenten-Preview
On-the-fly indexing
Kleiner Index (Beispiel: 662MB/34MB)
E-Mail nur Outlook, nicht IMAP/POP3
Indiziert nicht den Inhalt von ZIP-Archiven!!!
dtSearch Selbsttragende CD-Indizierung teuer
Enfish 6.1 kann PDF, PPT und ZIP-Inhalte
E-Mail Outlook, Lotus Notes, AOL-Mail
Schönes Pre-View
E-Mail nicht Thunderbird
kommerziell teuer
Filehand 2.0 Windows-Oberfläche Inhalte von ZIP-Archiven werden nicht indiziert
Google   PDF nicht indiziert
Nocht nicht fertig (Beta)
 
htDig
Website-Indexer
Bestandteil der Linux SuSE Edition CGI-Binary muss kompiliert werden (Cygwin)
mnogoserach    
PerlfectSearch
Website-Indexer
Plattformen Linux/Windows durch Perl
Internationalisierung durch i18n
Website-Indexer
PDF und Word durch Third-Party-Zusätze
Wilbur 2.2
Desktop-Indexer
Inhalte von ZIP-Archiven werden indiziert
CD-ROM Indexing
QuickView support
Freeware
PDF und Thunderbird-Email wird indexiert
Word und PowerPoint werden nicht indexiert.
Kein Document Preview, aber Integration mit QuickView
X1Search 04.09
Desktop-Indexer
Inhalte von ZIP-Archiven werden indiziert
Dokument-Preview integriert
Guter PowerPoint-Preview
teuer: $99
Thunderbird-Email wird nicht indiziert
Im PPT-Preview wird nicht mit Autoscroll auf “first occurance” positioniert
x-friend 0.2
Desktop-Indexer
Plattformunabhägig durch Java
Beliebiger WebBrowser
Gut passend zur meiner Architektur (Java, WebBrowser,
Apache Lucene, IMAP…)
E-Mail IMAP
Selbsttragende CD-Indizierung
Inhalte von ZIP-Archiven werden nicht indiziert
PowerPoint PPT wird nicht indiziert
POP3-Email wird nicht indiziert
Preview von der Ansichsgrösse nicht einstellbar
Sehr schlichter PPT Preview

 Meine Lösungsauswahl

Für das russische mnogoserach spricht die Verwendung von PHP für die Search-Funktion.

Allerdings wird ein modifiziertes PHP benutzt, das man sich selbst durch Compilation erzeugen muss. Da die Lösung bei einfachen Providern laufen soll, scheidet diese Variante aus.

Für die Variante ht://Dig spricht:

  • Die sehr grosse Verbreitung und damit eine Sicherheit für eine mittelfristig gesicherte Nutzung
  • ht://Dig wird als Bestandteil der SuSE 8.0 Edition mit ausgeliefert (binary)
  • Eine Compilation unter Win98 mit Cygwin war auf Anhieb erfolgreich.

Nachteil bei ht://Dig ist nach wie vor, dass die Such-Oberfläche als CGI-Executable realisiert ist. Nicht jeder Web-Hosting-Provider lässt “freie CGIs” zu.

Die Auswahl fiel trotzdem auf HtDig, da die Ausgereiftheit und Mächtigkeit der Funktionen sowie die solide Community einfach überzeugen. Der Nachteil der CGI-Suchoberfläche wird im Sinne der Architektur in Kauf genommen, mit der Idee, dafür im Laufe der Zeit einen Austausch vorzunehmen. Die Idee ist, eine PHP-Suchoberfläche entweder direkt auf die Berkely-DB2-Datenbank zu setzten, oder die DB2 auf MySQL zu konvertieren und dann eine PHP-Oberfläche darauf zu setzen.

Mehr Komfort: Enfish oder Copernic oder X1Search

Enfish 6.1 und Copernic bestechen durch sehr elegante Windows-Oberflächen. Allerdings ist die Funktionalität von Copernic nicht ausreichend und Enfish 6.1, das sehr mit seiner Lotus-Notes-Email-Indexierung lockt, ist viel zu teuer. Es bleibt X1Search, das zwar nicht so elegant aussieht, aber durch solide Funktionalität überzeugt.


 Indizieren: Was soll, was soll nicht indiziert werden

Da das aufbauen und Aktualisieren eines solchen Index erstens Zeit kostet und zweitens Platz kostet, loht es sich zu überlegen, welche Datei-Typen man wirklich indizieren will und welche man nicht indizieren will.

 Postiv (sollen indiziert werden)

Zur Konfiguration von Indexern (Teil einer Suchmaschinen-Architektur) benötigt man MIME-Types und Parser für jeden MIME-Type:

Tabelle 2: Was soll indiziert werden?

Extension MIME Type Parser
.dbf application/dbase
application/x-dbase
 ?
.doc application/msword catdoc aus: http://freshmeat.net/projects/catdoc/
.pdf application/pdf pdftotext.exe aus XPDF: http://www.foolabs.com/xpdf/
.rtf application/rtf  ?
.xls application/vnd.ms-excel catdoc aus: http://freshmeat.net/projects/catdoc/  
.ppt application/vnd.ms-powerpoint  ?
.html text/html OK
.htm text/htm OK
.svg image/svg+xml  ?
.txt text/plain OK
.vsd application/vnd.visio Visio
.xml text/xml
application/XML
 ?
.xsl  ?  ?
.zip application/zip  ?

 Negativ (sollen nicht indiziert werden)

  • *.bak
  • *.dbs
  • *.dl_
  • *.do_
  • *.dsk
  • *.ex_
  • *.e2_
  • *.ndx
  • *.ffx (löschen)
  • *.ffo (löschen)
  • *.ffl (löschen)
  • *.ffa (löschen)
  • *.pqi
  • *.z

— Main.DietrichKracht – 09 Jan 2004