Computer: DocBook (aus Wiki)

DocBook

Contents

Auf das Thema “DocBook” kam ich, als ich das Sourceforge-Projekt DocBookWiki gestoßen bin.
Zum Experimentieren habe ich zunächst folgendes installiert:

 Installation docbook-xsl

  • Definitive Software Library ID: docbook-xsl
  • Name: DocBook XSL Stylesheets 2.65.1
  • Hersteller/Bezugsquelle: Sourceforge
  • I man so in voller Breite mit DocBook arbeiten wollte, muss man einen dafür spezialisierten Editor/IDE/Autorensystem haben.

Das mindeste ist ein “richtiger” XML-Editor. Folgende Produkte sind im Gespräch:

  • jEdit von Sourceforge / jedit.org mit XML-Plugin (Java-basierter sehr guter File-Editor als OpenSourceSoftware, aber sehr schlichte XML-Funktionalität)
  • Eclipse mit XML-Plugin z.B. XMLBuddy (recht odentlich, habe ich für eine erste Testphase für mich ausgewählt)
  • Xopus (kommerziell, kann Tabellen)
  • Abortext Epic (kommerziell, kann Tabellen)
  • epcEdit (kommerziell, kann Tabellen, Screenshots sehen sehr schlicht aus)
  • XMLmind (kommerziell, eine sog. “Standard Edition” ist kostenlos) http://www.xmlmind.com/xmleditor (Java-basiert, der beste kostenlose!!!!)
  • OxygenXMLEditor (sehr schön, aber: kommerziell)
  • XML Spy (kommerziell, ein alter Bekannter,….)

 Ein XSLT-Prozessor

Die DocBook-Gemeinde ist ja sehr auf Unix/Linux fixiert und präferriert xsltproc, das man unter Cygwin als Paket libxslt installieren kann.

Ich verwende zunächst meinen Java-basierten Xalan-XSLT-Prozessor (Siehe: Java)

 DocBook Output generieren

Der generierte Output wird durch die Angabe eines bestimmten Stylesheets und die Angabe von Stylesheet-Parametern bestimmt. Einige der üblichen Stylesheets sind z.B.:

  1. -XSL /html/docbook.xsl (das “normale” HTML-DocBook)
  2. -XSL /html/chunk.xsl (ein modulares HTML-DocBook d.h. “zerstückelt”)
  3. -XSL /fo/docbook.xsl (habe ich noch nicht probiert, soll PDF oder sonstwas rauskommem….)
  4. -XSL /htmlhelp/htmlhelp.xsl (ein “help” DocBook)

Stylesheet-Parameter (in der Xalan-Systax) sehen etwa wie folgt aus:

  • -param shade.verbatim 1
  • -param navig.graphics 1

Erzeugen von: Slideshow und Einbindung von SVG-Verktorgrafik ist (im Prinzip) möglich. Und auch beides in Kombination: http://www.zveno.com/open_source/svgslides.html

 DocBook Beispiel gmo_chronik.xml

Meine Beispiele befinden sich im Ordner E:\var\www\htdocs\docbook.

Der Aufruf des XSLT-Prozessors mit den diversen Parametern erfolgt über das Kommando-Script (BAT-File) xslt_chunk.bat:

rem Aufruf Java XSLT-Prozessor Xalan
rem $Date: 2007/06/02 07:54:32 $
echo  html/chunk.xsl	in %1.xml out %1.htm
pause
%JAVA_HOME%\bin\java org.apache.xalan.xslt.Process -IN %1.xml 
		  -XSL "docbook-xsl-1.65.1/html/chunk.xsl" 
		  -OUT %1.htm 
		  -param generate.meta.abstract 1 
		  -param html.stylesheet "chronik.css" 
		  -param html.stylesheet.type "text/css" 
		  -param navig.graphics 1 
		  -param navig.graphics.extension ".gif"
		  -param chunk.section.depth 2 
		  -param chunk.first.sections 1
pause

So wird jetzt aus der Docbook-XML-Datei eine kleine Website, indem jede Section eine HTML-Seite wird:

e:
cd \var\www\htdocs\docbook
xslt_chunk gmo_chronik

Das fertige DocBook ist gehostet auf: http://www.kr8.de/chronik

 Microsoft HTML Help Workshop

Wenn man seine schönen DocBooks unbedingt in Microsoft-Help-Files umsetzen will, benötigt man für den letzten Schritt den MicrosoftHTMLHelp-Workshop und dann ganz einfach:

hhc htmlhelp.hhp 

http://codeproject.com/winhelp/docbook_howto.asp

 DocBook Beispiel

<?xml version="1.0" encoding="ISO-8859-1"?>
<DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" >
  <article>
  <title>Mein Lexikon</title>
  <section id="analogiemethode">
  <title>Analogiemethode</title>
  <para>Analogiemethode, gehört zu den Methoden der <link linkend="aufwandsschätzung">Aufwandsschätzung</link>. Es wird versucht, das zu schätzende Projekt mit ähnlichen, abgeschlossenen Projekten zu vergleichen. Eine Abweichungsanalyse stellt Gemeinsamkeiten und Unterschiede zwischen den Projekten bezüglich der wichtigen Einflussfaktoren (Projektorganisation, Entwicklungsumgebung, Metriken usw.) fest und bewertet diese bezüglich Aufwand und Produktivität.</para>
  <para>Die Schätzgenauigkeit hängt davon ab, wie gut man das zu schätzende Projekt kennt (Pflichtenheft) und von der Erfahrung bei der richtigen Auswahl und Einschätzung der Einflussfaktoren in der Abweichungsanalyse. Umfangreiche Erfahrungen mit abgeschlossenen, ähnlichen Projekten sind die Basis der Analogiemethode. Projekte, die sich in wesentlichen Faktoren grundsätzlich von den bekannten Projekten unterscheiden, können so nicht geschätzt werden.</para>
  <indexterm>
  <seealso>Aufwandsschätzung</seealso>
  <seealso>Pflichtenheft</seealso>
  </indexterm>
  </section>
  <section id="aufwandsschätzung">
  <title>Aufwandsschätzung</title>
  <para>Aufwandsschätzung, für den Anwender gleichermaßen schwieriges Unterfangen wie für den Berater; für letzteren insbesondere vor dem Hintergrund eines Festpreisauftrags. Es geht um die Prognose des Perso­nal­kapa­zitätsbedarfs für ein Projekt. Die Güte der Aufwandsschätzung kann nur so gut sein wie die Qualität der zugrundeliegenden Unterlagen (Ausschreibungsunterlagen, Ist-Analyse, Pflichtenheft). Äusserst schwierig ist es, aus der Sicht der ersten Projektphasen bereits das gesamte Projekt zu schätzen. Eine verbindliche Genauigkeit kann für die jeweils nächste Phase meist erst bei Abschluss der vorange­gan­genen Phase erfolgen. Aufwandsschätzung beruht auf zwei Größen: <emphasis>Arbeitsmenge und Arbeitspro­duk­tivität.</emphasis>
  </para>
  <para>Wesentlich ist auch der Zeitpunkt der Aufwandsschätzung: Vor der Erstellung eines Fach­konzepts können nur grobe Erfahrungswerte und Analogieschlüsse zur Anwendung kommen. Auf der Basis eines Fach­konzepts können ausgefeilte Methoden wie z.B. Function Point angewendet werden. Interindividuelle Varianzen der Produktivität haben nach Capers Jones den größten Einfluss auf die Aufwandsschätzung.
  <simplelist type="vert">
  <member>Die wichtigsten Methoden sind:</member>
  <member>Analogiemethode</member>
  <member>Multiplikatormethode</member>
  <member>Prozentsatzmethode</member>
  <member>Function-Point-Methode</member>
  <member>COCOMO-Methode</member>
  <member>Pi-mal-Daumen-Methode</member>
  <member>Budget-Methode</member>
  </simplelist>
  </para>
  </section>
  </article>

 Weblinks

— Main.DietrichKracht – 10 Jul 2004

Computer: InternetRadio (aus Wiki)

Gehört zu: Audio-Software
Siehe auch: Podcasting, MediaLibrary, COWON Q5W

Internet-Radio

Üner das Internet Radiosender live zu hören, das ist heuzutage ganz einfach möglich. Die Technik heisst Streaming Audio oder um das Internet mit ins Spiel zu bringen: WebRadio bzw. InternetRadio.

Es gibt mehrere konkurriernde Systeme:

Dass überhaupt eine annehmbare Tonqualität zu Stande kommt, liegt an den Komprimierungtechniken. Komprimierung mit MP3 oder auch RealAudio ergibt bei Übertragungsraten von 44 Kbit/s schon einen ordendlichen Klang. Einfachere Sendungen werden mit 32 Kbit/s oder noch weniger übertragen, bei breitbandigem InternetZugang (z.B. DSL) kommt man gut auf 128 kBit/s, was entkomprimiert (1:11) an die CompactDisk-Qualität von 176,4 kByte/s herankommt.

Als Software zum hören von Streaming Audio (Internet Radio) gibt es sehr viel für die Windows-Platform und auch für Android- und iOS-Geräte (SmartPhones, Tablets). Sehr oft gelobt werden:

 Meine Anforderungen

  • Das Gerät soll schön klein sein, damit man es von Raum zu Raum tragen kann
  • Das Gerät soll einen eingebauten Laufsprecher haben, damit man auch mal ohne “große” HiFi-Speaker, schnell mal was hören kann
  • Es müssen unbedingt folgende Sender empfangbar sein:
    • NDR Info
    • Spreeradio
    • Mallorca Inselradio
    • ..

 Meine Favorites

 Meine Shortlist: Hardware

 Meine Bewertung der Software-Lösungen für Windows

Eingenschaft iTunes MAGIX JetAudio
MP3 spielen Ja Ja Ja Ja
WMA spielen Nein Ja Ja Ja
Stationsliste importieren Ja Nein Ja XML-Datei
Stationsliste exportieren  ? Nein  ? XML-Datei
WebRadio Recording Nein Ja Nein Ja

Meine Bewertung der Software-Lösungen für Android

xyz

Meine Bewertung der Software-Lösungen für iOS

xyz

Sammelangebote von Sendern

Sender speichen als Playlist

 MP3 WinAmp

#EXTM3U
#EXTINF:-1,Rockantenne
http://mp3.webradio.rockantenne.de:80
#EXTINF:-1, Inselradio Mallorca - Das Inselradio 95,8 FM
http://live-inselradio.com:8000/
#EXTINF:-1, Radiostream von Eins Live 
http://gffstream.ic.llnwd.net/stream/gffstream_stream_wdr_einslive_b
#EXTINF:-1, MDR Sputnik MP3


#EXTINF:-1, Oldie Radio Berlin
http://www.oldiestar.de/oldie.asx
#EXTINF:-1,Radio VHR Europe
http://www.radio-vhr.de/europe.asx
EXTINF:-1,Klassik Radio
http://str31.creacast.com:80/klassik1

 MicrosoftMediaPlayer

<?wpl version="1.0"?>
<smil>
   <head>
      <meta name="Generator" content="Microsoft Windows Media Player -- 9.0.0.3250"/>
      <author/>
      <title>Internet Radio SWR3</title>
   </head>
   <body>
      <seq>
         <media src="http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?stream=swr3$livestream.wma&content=live&media=ms"/>
      </seq>
   </body>
</smil>

 RealPlayer

<?xml version="1.0" encoding="UTF-8"?>
<smil>  
   <body> 
      <seq>	
         <audio src="rtsp://stream1.rbb-online.de/broadcast/antenne-live.ra"/>	
      </seq>
   </body>
</smil>

 Einige Sender

Die deutschen Rundfunkanstalten benutzen gerne das grundsolide (und etwas teurere RealAudio-Format), während viele kleine amerikanische Stationen MP3 streamen.

Siehe auch: http://mypage.bluewin.ch/a-z/cusipage/liveradio2.html

Sender Format URL
104.6 RTL Live Real http://lsd.newmedia.tiscali-business.com/bb/redirect.lsc?adid=1001&content=live&media=rm&stream=rtl1046/rtllive.rm
Deutschlandfunk MP3 http://www.dradio.de/streaming/dlf.ram http://www.dradio.de/streaming/dlf.m3u
DeutschlandRadio Berlin Real http://www.dradio.de/streaming/dlr.ram
DRS1 Schweiz Real http://dms-cl-013.skypro-media.net:8080/ramgen/encoder/drs1.rm rtsp://206.165.150.203:554/encoder/drs1.rm?cloakport=8080,554,7070
EinsLive WDR http://www.wdr.de/wdrlive/media/einslive.smil
NDR 1 Niedersachsen Real http://www.ndr.de/ramgen/live/rnds.rm
NDR 1 Radio MV Real http://www.ndr.de/ramgen/live/rmv.rm
NDR 1 Welle Nord Real http://www.ndr.de/ramgen/live/wn.rm
NDR2 Real http://www.ndr.de/ramgen/live/ndr2.rm
NDR Info Real http://www.ndr.de/ramgen/live/ndrinfo.rm
NDR Kultur Real http://stream.ndr.de/bb/redirect.lsc?stream=ndr/live/ndrkultur.rm&content=live&media=rm
Spreeradio MNS http://cms.streamfarm.net/cms/_vm100/radio/2925spreeradio_live.asx?referer=www.spreeradio.de
Inselradio Mallorca MP3 http://stream.live-inselradio.com:8080/inselradio http://live-inselradio.com:8000/listen.pls
CBC Saskatchewan CBC Radio One http://sask.cbc.ca/radio/cbcsask.smi
88.5 KCSN Real http://www.kcsn.org/listen/kcsnlofidirect.ram
WNYC FM, New York Public Radio http://64.202.98.18:80

 Programm-Informationen

— Main.DietrichKracht – 10 Jun 2004

Computer: Zeitsynchronisation (aus Wiki)

Gehört zu: Internet

Zeitsynchronisation (aus Wiki)

Contents

 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: Wiki-CVS

Gehört zu: Version Control

CVS (aus Wiki)

Contents

 CVS Concurrent Versions System

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)

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: Wiki-Version Control

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

SCC-Provider.jpg

SCC Provider (auch: SVG, ODP)

— Main.DietrichKracht – 15 May 2004

Computer: Wiki-RCS

Gehört zu: Version Control
Siehe auch: CVS

RCS (aus Wiki)

Contents

RCS Revision Control System

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

Smarty die PHP Template Engine

Contents

 Smarty die PHP Template Engine

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: Internet (aus Wiki)

Internet (aus Wiki)

 Das Internet, das World Wide Web, das Web, das WWW

Manche möchten nur darin surfen:

Andere wolle eigene Websites aufbauen:

Immer benötigt man einen Zugang zum Internet:

Senioren im Internet:

Standards

 Captcha

Akronym für: Completely Automated Public Turing test to tell Computers and Humans Apart

 Abzock-Rechnungen

Einschreiben mit folgendem Text:

  1. Weisen Sie mir nach, mit welchen Schritten ich den Vertrag abgeschlossen haben soll.
  2. Hilfsweise widerrufe ich einen möglicherweise abgeschlossenen Vertrag.
  3. Hilfsweise fechte ich meine möglicherweise abgegebene Willenserklärung wegen Inhaltsirrtum und Täuschung an.

— Main.DietrichKracht – 25 Mar 2004

Computer: PHP (aus Wiki)

PHP mit Apache auf meinen Windows-Computern

PHP ist in meiner Anwendungskatalog die Scriptsprache der ersten Wahl.

Was ist PHP?

PHP steht für “PHP Hypertext Prozessor”. Eine Scriptsprache, die für die Entwicklung dynamischer Web­seiten und WebApplications gedacht ist – wie beispielsweise auch mit ASP oder ColdFusion. PHP ist aber im Gegensatz zu solchen Ansätzen eine freiverfügbare Open Source Software und quer über viele Plattformen (Betriebssysteme, WebServer) einsetzbar. Im Gegensatz zu älteren Scriptsprachen (wie Perl), die aus der Zeit vor dem Web stammen, wurde PHP speziell für ein Einsatz auf WebServern ent­wickelt. PHP besticht durch einfache Verarbeitung von Web-Formularen, seine gute Anbindung an Datenbanken und die Vielfalt weiterer Funktionsbibliotheken, sowie seine weite Verbreitung. PHP ist ein Apache Projekt http://php.apache.org = http://www.php.net

Aufruf von PHP

PHP wird normalerweise als Modul in Apache installiert und benutzt.
Man kan PHP aber auch von der Komandozeile aus aufrufen (s.u.).

Viele wichtige Anwendungen laufen unter Apache mit PHP:

Geschichte von PHP

Im Herbst 1994 begann Rasmus Lerdorf mit einem Hack. Versionen:

  • PHP/FI 1.0, Frühling 1995,
  • PHP – “Personal Home Page Tools”, PHP/FI 2.0, Sommer 1995,
  • FI – “Form Interface”, PHP 3.0, 1997,
  • “Personal Home Page” oder “PHP HyperText Preprocessor”, PHP 4.0, Frühling 2000.
  • PHP5 ab Juli 204
  • PHP7 ab Dezember 2015

Meine Installationen von PHP

Ich betreibe/benutze folgende PHP-Installationen:

Upgrading to PHP 7.0.33

Bei meinem WebProvider Strato musste ich schon in 2018 auf PHP7 umstellen, da PHP5 nur noch mit zusätzlichen Kosten unterstützt wurde.

MIt dem neuen PHP7 liefen dann meine MediaWikis bei Strato nicht mehr, sodass ich diese im März 2019 ebenfalls auf neune Versionen migrieren musste.

Upgrading to PHP 5.2.17

WordPress 3.3.1 läuft nicht mehr mit PHP 5.2.3, deshalb habe ich PHP von 5.2.3 auf 5.2.17 upgraded.
Echte Upgrades gibt es leider nicht. Mann muss das neue PHP in einen neuen Ordner installieren (D:\bin\PHP\, D:\bin\PHP\php5apache2_2.dll),
Die PHP-Installation mit MSI macht dann ein kleines Update der Apache-Konfigurationsdatei httpd.conf. Dabei werden am Ende der Conf-Datei drei Zeilen eingetragen, die auf den Installtionsordner von PHP zeigen. Diese müssen eventuell manuell angepasst werden.

Besonderheiten bei PHP5 (Windows)

PHP5 und Sessions

Unter Windows Vista wird in der php.ini angelegt:

session.save_path = C:\Users\dkracht\AppData\Local\Temp\php\session

Wenn diese Ordner-Struktur versehentlich gelöscht wird, funktioniert die PHP-Session-Verwaltung nicht mehr richtig.
Z.B. kann man sich in MediaWiki nicht mehr anmelden…
Beispielsweise löscht das “Aufräum”-Programm CCleaner alles unterhalb von Tmp….

PHP5 und MySQL

Bei PHP5 ist die MySQL-Unterstützung nicht fest eingebaut (ein-compiliert), sondern es wird die sog. Client-Bibliothek namens libmysql.dll benötigt und zwar zusätzlich zu der PHP-Extension php_mysql.dll.

Die Client-Bibliothek ist Bestandteil von MySQL, wird aber auch im PHP5-Paket mitgeliefert. Achtung: Es könnten Versionskonfilikte auftreten.

Die MySQL-Client-Bibliothek muss vom Apache geladen werden, sonst kann die PHP-Extension php_mysql.dll auch nicht geladen werden und es gibt eine entsprechende Fehlermeldung im Apache-Error-Log (da sollte man ruhig ab und zu hineinschauen!).

Damit die MySQL-Client-Bibliothek zum Laden gefunden wird, kann man sie in den Order Windows/System tun. Wer das nicht möchte, kann sie im Ordner PHP belassen, dann muss alldings zwingend der Ordner PHP in den PATH mit aufgenommen werden. Alternativ kann man sie in den Ordner Apache/bin tun.

PHP5 und OpenSSL

Die PHP-EXtension php_openssl.dll benötigt zusätzlich die Bibliothek libeay32.dll. Bei mir hat das nur dann funktioniert, wenn ich libeay32.dll in den Ordner Apache/bin kopiert habe.

PHP auf Computer Kragenbaer

 Installation

Konfiguration

PHP auf Computer Westhost

PHP Installation Westhost

  • Version: 5.2.1
  • Installations-Verzeichniss: ???
  • Konfigurations-Dateien
    • INI-Datei: /etc/php.ini (siehe Abschnitt “Konfiguration”)

 PHP Konfiguration Westhost

Umgebungsvariable

  • PATH=???
  • PHPRC=??? (Wo die INI-Datei ist)
  • PHPINFO:
    • Server API: Apache
    • Configuration File (php.ini) Path: /etc/php.ini

PHP auf ComputerLonzo

 PHP Installation ComputerLonzo

  • Version: 5.2.3
  • Installations-Verzeichnis: C:\Programme\PHP
  • Konfigurations-Dateien
    • INI-Datei: C:\Programme\php\php.ini (siehe Abschnitt “Konfiguration”)

 PHP Konfiguration ComputerLonzo

Umgebungsvariable

  • PATH=C:\Programme\PHP
  • PHPRC=C:\Programme\PHP (ComputerLonzo: Wo die INI-Datei ist)
  • PHPINFO:
    • Server API: Apache
    • Configuration File (php.ini) Path: C:\WINDOWS
    • Loaded Configuration File: C:\Programme\php\php.ini

 PHP Apache 1.3.29 Konfiguration

In der Apache-Konfigurationsdatei “httpd.conf” eintragen:

 LoadModule php5_module "C:\\Programme\\PHP\\php5apache.dll"
 ...
 AddModule  mod_php5.c
 ...
 AddType application/x-httpd-php .php .php4 .php3 .phtml
 AddType application/x-httpd-php-source .phps
  • Nicht “PHPIniDir=…” das ist für Apache 2 gedacht…
#BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
####PHPIniDir "C:\\Programme\\PHP\\"
LoadModule php5_module "C:\\Programme\\PHP\\php5apache.dll"
#END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL
 EventApachePHP5.jpg

Apache Service

PHP auf ComputerBraunbaer

 PHP 5.2.3 Installation

  • Definitive Software Library ID: PHP
  • Name: PHP
  • Version: 5.2.3 (28.6.2007 ComputerBraunbaer)
  • Lieferant: http://www.php.net
  • Installations-Verzeichniss: d:\Programme\PHP
  • Konfigurations-Dateien
    • INI-Datei: d:\programme\php\php.ini (siehe Abschnitt “Konfiguration”)

 Installierte Extensions

Bei PHP5 können die Extensions bereits beim Installationsvorgang ausgewählt werden.

Zusätzlich dazu können in der php.ini noch sog. dynamische Extensions angegeben werden.

 PHP Konfiguration auf ComputerBraunbaer

Umgebungsvariable

  • PATH=D:\Programme\PHP
  • PHPRC=D:\Programme\PHP (ComputerBraunbaer: Wo die INI-Datei ist)

Folgende Einstellungen sind in der php.ini vorgenomen worden:

  • Ordner für Extensions: d:/programme/php/ext
  • register_globals = On (für Anwendung PhpLinks)
  • upload_max_filesize = 16M (für Anwendung Owl)
  • Include_path (für Smarty)
    • = “.;d:\php\pear;d:\php\smarty;.\templates;.\plugins;.\include”  ?????????????????
    • php_db.dll  ???
    • php_dba.dll  ???
    • php_domxml.dll (welche Anwendung benötigt das???)
    • php_gd2.dll (für Anwendung MediaWiki
    • php_iconv.dll (für Anwendung MediaWiki)
    • php_ldap.dll (für Anwendung Rolodap)
  • Zend Optimizer (für welche Anwendung???)
  • PHP-GTK

Apache 1.3.29 Konfiguration

Installation als dynamisches Apache-Modul (SAPI):

LoadModule php4_module d:/php/sapi/php4apache.dll
AddModule mod_php4.c

Das Hauptmodul php4apache.dll benötigt das zentrale PHP-Modul php4ts.dll. Das wird zunächst in \WINNT\system32 gesucht, wenn man es dahin nicht kopieren möchte, kann man es auch in den gleichen Ordner wie php4apache.dll kopieren:

copy d:/php/php4ts.dll d:/php/sapi/php4ts.dll

Wenn man jetzt den Apache-Service neu startet, meldet er sich mit: Apache/1.3.27 (Win32) PHP/4.3.1…

Nun fügt man noch zur Apache-Konfikurationsdatei httpd.conf folgendes hinzu:

AddType application/x-httpd-php .php

und schon werden PHP-Scripts vom Apache-WebServer ausgeführt. Z.B. http://localhost/phpinfo.php

PHP Applikationen

Applikation Nutzung MySQL-Datenbank
GmoChronik Mein altes Web-Log (migriert nach DocBook) b2
PhpWorkshop Für SQL-Workshop im PhpWorkshop fruits, vokabeln,…
gmo Migrierte GMO-Access-Datenbanken gmo
PhpKnowhow Mein KnowlegeManagement: phpKnowhow knowhow
kr8 ich ??? kr8
mydms Testweise ein Domumentanmanagement mydms
nuke PhpNuke-Installation von GMO/Bonzo nuke
Owl Owl DokumentenManagement owl
PhpKalender Monatskalenderblätter
PhpLinks Anwendung PhpLinks (Link-Management) phplinks
PhpMyAdmin MySQL-Administration (alle)
PhpWiki Mein altes phpwiki (migriert nach TWiki) phpwiki
Rolodap Zugriffe auf ein LDAP-Directory
Smarty Template-Engine für WebsiteTraditionell phplinks
Telefonbuch Telefonnummern zur Inverssuche (u.a.) telefonbuch
Typo3 <Testweise für das Content-Management-System Typo3 typo3
MediaWiki Faulkner-Wiki wikidb
Xanadu Meine Archiv-Datenbank (Anwendung Archivierung) xanadu

Der PHP Command Line Interpreter “CLI”

Für die meinen Einsatz der Smarty Template Engine wird PHP CLI benötigt, da ich PHP-Skripts ohne den WebServer Apache einfach “so” ausführen will. Genauer gesagt, sollen die PHP-Skripts in einem Make-File ausgeführt werden zur Erstellung statischer HTML-Seiten.

Seit PHP Versiom 4.3.0 ist das CLI standardmässig im PHP enthalten und kann wie folgt einfach benutzt werden:

d:\php\php.exe  -f methods.php > \home\kracht\www\www.kr8.de\htdocs\methods.htm 

— Main.DietrichKracht – 25 Mar 2004

Computer: Cygwin (aus Wiki)

Cygwin (aus Wiki)

Contents

 Cygwin das Unix-Environment für Windows

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:

  • OpenSSHServer
  • RCS (für TWiki)

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

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