Login
Newsletter

Perl/CGI-Workshop, Teil 13

Von Wolfgang - 06. Sep 1999, 00:00
So einen Workshop zu schreiben ist wirklich eine schwierige Angelegenheit. Da gibt es einige Kleinigkeiten, die man dem Leser unbedingt mitteilen möchte, die man aber in früheren Kapiteln nicht untergebracht hat, um diese nicht zu lang zu machen, und auf einmal kann man diese Kleinigkeiten nirgendwo mehr unterbringen. Deshalb schiebe ich dieses Kapitel ein, in das ich alles möglich reinstopfe. Das ist die wohl primitivste aber dennoch sinnvollste Lösung des Problems. :-) Zuerst möchte ich Ihnen zwei echt coole Unterprogramme vorstellen, die Perl zur Bearbeitung von Zeichenketten bereithält. Die erste ist substr(): #!/usr/bin/perl # substr.pl -- by W. Jährling $a = "Dies ist ein Test!"; $b = substr($a, 6, 3); print "$b\n"; # Zeigt "ist\n" an. substr($a, 6,... mehr... 0 Kommentare
 

Freeciv

Von Alfred Enmann - 03. Sep 1999, 00:00
Freeciv orientiert sich sehr stark an dem Klassiker für Windows. FreeCiv überzeugt vor allem durch den wirklich herausragenden Spielwitz und die Liebe zum Detail. Sowohl grafisch als auch spielerisch erlebte FreeCiv im Laufe der Zeit eine Evolution, die immer wieder auch die alten Hasen in Staunen versetzt. Wie auch unter dem Vorbild sind die Regeln dieses Spiels sehr leicht und verständlich. Ziel des Spiels ist es, die anderen Mitspieler sowohl technologisch als auch kulturell zu überholen. Dazu sind alle Mittel recht. So passiert es nicht selten, dass dabei eine Zivilisation auf der Strecke bleibt und vollständig durch einen Gegenspieler ausgelöscht wird. Skrupel in diesem Wettkampf sind wohl eher fehl am Platz. Natürlich steht an erster Stelle der Spielspass. Was für einen Spaß haben... mehr... 0 Kommentare
 

Implementierung von Rootraid (RAID 1)

Von Florian Lödermann - 01. Sep 1999, 00:00
Versionsinfo: 25.08.1999 Florian Lödermann: Fehlerbehebung =) 30.07.1999 Florian Lödermann: Detailkorrekturen am Bootkonzept 27.07.1999 Florian Lödermann: Korrekturen am Konzept 26.07.1999 Florian Lödermann: Detailkorrekturen 23.07.1999 Florian Lödermann: Korrektur von Rechtschreibfehlern 22.07.1999 Florian Lödermann: basierend auf einer Lösung von Ralf Hemman (LunetIX) RAID Level 1 ist die exakte Spiegelung von zwei Festplatten. Sollte aufgrund eines Hardwareversagens eine der Platten ausfallen, so kommt es zu keinem Datenverlust. Die übrige Platte übernimmt die Aufgaben allein. In diesem Dokument wird die Rootpartition ( / ) auf einem RAID-Device angelegt und davon gebootet. Zusätzlich zu den zwei Platten, auf die gespiegelt wird, wird noch eine dritte Platte benötigt, die als... mehr... 0 Kommentare
 
Pro-Linux
Traut euch!
News-Hitparade
Letzte Beiträge

dbapp

hilfe

distributionstests

kalender

veranstaltungen

sicherheit

Implementierung von Rootraid (RAID 1)

Von Florian Lödermann - 01. Sep 1999, 00:00
Versionsinfo: 25.08.1999 Florian Lödermann: Fehlerbehebung =) 30.07.1999 Florian Lödermann: Detailkorrekturen am Bootkonzept 27.07.1999 Florian Lödermann: Korrekturen am Konzept 26.07.1999 Florian Lödermann: Detailkorrekturen 23.07.1999 Florian Lödermann: Korrektur von Rechtschreibfehlern 22.07.1999 Florian Lödermann: basierend auf einer Lösung von Ralf Hemman (LunetIX) RAID Level 1 ist die exakte Spiegelung von zwei Festplatten. Sollte aufgrund eines Hardwareversagens eine der Platten ausfallen, so kommt es zu keinem Datenverlust. Die übrige Platte übernimmt die Aufgaben allein. In diesem Dokument wird die Rootpartition ( / ) auf einem RAID-Device angelegt und davon gebootet. Zusätzlich zu den zwei Platten, auf die gespiegelt wird, wird noch eine dritte Platte benötigt, die als... mehr... 0 Kommentare
 

Q3Test Installation

Von Andreas Niehoff - 01. Sep 1999, 00:00
Testversion von Quake 3 Arena von id Software Eine 3D-Karte. Ohne diese läuft gar nichts (es gibt kein Software Rendering). Getestet habe ich es mit einer TNT/TNT2 Karte sowie mit einer 3dfx Voodoo1 Karte. 3D Karten, die auf jeden Fall unter Q3test laufen, sind: 3dfx Voodoo, 3dfx Voodoo2 und 3dfx Voodoo3, alle TNT/TNT2/TNT2Ultra-Karten und, soweit ich informiert bin, die G200, G400 von Matrox (konnte es selber nicht testen). Andere Karten, mit entsprechendem Treiber können auch funktionieren. Am besten laufen momentan die 3dfx-basierten Karten (ab Voodoo2) mit Q3test zusammen, aber sobald XFree86 4.0 erscheint (im Moment noch im Alpha-Stadium), werden andere Karten durch das neue DRI (Direct Rendering Infrastructure) von Precision Insight erheblich profitieren! Ein glibc-basiertes... mehr... 0 Kommentare
 

Das Jahr 2000-Problem

Von Pawel - 29. Aug 1999, 00:00
Das »Jahr-2000-Problem«, bekannt auch als »Y2K-Problem«, ist besonders problematisch für die Bereiche Telekommunikation, Elektrizität, geschäftliche Transaktionen sowie EDV. Für PCs stellt sich das Problem bei der RTC ( Real Time Clock ). Dort wird nicht nur das aktuelle Datum und die Zeit gespeichert, sondern auch mit der Zeit gerechnet. Das Format des Datums war seinerzeit (ca. 1980) durch IBM eingeführt worden. Da die Ressourcen damals sehr knapp waren, mußte man jedes mögliche Bit einsparen, und so speicherte man das Jahr nur zweistellig ab. Der nächste Kardinalfehler der Programmierer war, das Datum in Form von ASCII-Zeichen zu speichern. In diesem Fall benötigt man für die Darstellung von nur zwei Ziffern schon zwei Byte. Wäre man damals auf die glorreiche Idee gekommen, das Datum... mehr... 0 Kommentare
 
Umfrage
Umfrage: Resultate

Programmversionen
Gnome3.30.2
KDE Plasma5.14.1
LibreOffice6.1.3
KMyMoney5.0.1
Digikam5.9.0
Krita4.1.5
Calligra3.1.0
X.org7.7
Gimp2.10.8
Wine3.20
GStreamer1.14.4
Apache2.4.20
CUPS2.1.3
Samba4.9.2
Squid4.0.25
Letzte Kommentare

GIMP - Das offizielle Benutzerhandbuch

Von Stephan Tijink - 25. Aug 1999, 00:00
Bei diesem Buch handelt es sich im Wesentlichen um die Übersetzung des GUM (GIMP User Manual), welches durch Aktualisierungen und Tips der Autoren ergänzt wurde. Das Original GUM ist in englischer Sprache verfaßt und ist unter folgender Adresse zu finden: ftp://manual.gimp.org/pub/manual/ Das Buch ist sehr übersichtlich gestaltet und ist in 40 Kapitel unterteilt. Jedes Kapitel beschreibt ausführlich wesentliche Merkmale, Tips und Tricks zu GIMP. Die Kapitel sind sehr gut und verständlich geschrieben. Viele Erklärungen werden durch Beispielbilder und Abbildungen ergänzt. Der Inhalt des Buches erstreckt sich vom einfach Umgang mit den Selektierwerkzeugen von GIMP bis hin zum Umgang mit Script-Fu. Alle erdenklichen Funktionen und Tricks werden beschrieben. Die meisten Beispiele sind mit... mehr... 0 Kommentare
 

Linux-Mini-Distriutionen: muLinux und Tom's Root Boot Disk

Von Peter Boy - 18. Aug 1999, 00:00
SuSE und Red Hat erlauben das Erstellen einer Bootdisk (= Notfalldiskette) mit YaST bzw. dem Befehl mkbootdisk . Nun sind die Möglichkeiten solcher Disketten als Notfallsystem ("Mini-Linux") sehr beschränkt, da sie nur auf dem Rechner laufen, mit dem sie erstellt wurden. Auch bieten sie nur wenig hilfreiche Zusatzprogramme. Zwei sehr interessante Alternativen sind "Tom's Root Boot Disk" (TRBD) sowie Mu-Linux (Mu steht für Mikro). TRBD bietet Module für Netzwerkfunktionalität, ZIP-Drive und UMSDOS. Mu-Linux bietet neben dem Basissystem (eine Disk) auf einer Zusatzdiskette Tools für das EXT2-Dateisystem, einer Zusatzdiskette GCC (C-Compiler), einer weiteren Zusatzdiskette ein vorkonfiguriertes X-Window-System mit wahlweise den Fenstermanagern Fvwm95 , Afterstep 1.0 ... mehr... 0 Kommentare
 

KDE-Programmierung: KProcess

Von Andreas Heck - 16. Aug 1999, 00:00
In diesem Teil des Workshops wird Word2HTML erstmals eine sinnvolle Aufgabe erfüllen. Wir werden das Kommandozeilenprogramm mswordview ausführen und ihm den Pfad einer DOC-Datei übergeben, die der Anwender in einem Dateiauswahldialog auswählen kann. Diese Datei wird dann von mswordview in eine HTML-Datei konvertiert. Die Ausgabe von mswordview lassen wir im Programmfenster anzeigen. Wir haben also ein klassisches Frontend, das die Funktionalität eines Kommandozeilenprogrammes über eine grafische Oberfläche bereitstellt. Normalerweise müssten wir auf Systemaufrufe zurückgreifen, um mswordview aus Word2HTML heraus auszuführen. Da das sehr unkomfortabel und fehlerträchtig ist, stellen die KDE-Libs die Klasse KProcess zur Verfügung. Sie erlaubt es auf einfache Weise, fremde Programme zu... mehr... 0 Kommentare
 

KDE-Programmierung: Drag and Drop

Von Andreas Heck - 16. Aug 1999, 00:00
In diesem Teil des Workshops werden wir word2html um Drag and Drop-Fähigkeiten erweitern. So soll word2html auch Word-Dateien konvertieren, die anstatt über den Dateiauswahldialog über kfm mit Drag and Drop ausgewählt werden. Wir können, wie so oft, auf bereits vorhandenen Code zurückgreifen, so dass wir eigentlich nur noch darauf reagieren müssen, wenn der User eine Datei auf unserem Hauptfenster fallen lässt. Laden Sie einfach die neuen Quellen herunter und überschreiben die alten damit. /* toplevel.h */ #ifndef _TOPLEVEL_H_ #define _TOPLEVEL_H_ #include #include #include #include #include #include #include #include #include #include class TopLevel : public KTMainWindow { Q_OBJECT public: TopLevel(); void closeEvent(QCloseEvent *); private slots: void aboutApp(); void... mehr... 0 Kommentare
 

Perl/CGI-Workshop, Teil 12

Von Wolfgang - 16. Aug 1999, 00:00
Selbst in BASIC gibt es inzwischen sowas wie Unterprogramme, also darf das auch in Perl nicht fehlen. Unterprogramme heißen in Perl aber nicht "Funktionen" (wie beispielsweise in C), sondern einfach "Subs". Prinzipiell funktioniert das in Perl so: #!/usr/bin/perl # sub1.pl -- by W. Jährling while (1) { &frage; } sub frage { my $antwort # lokale Variable print STDERR "Wollen Sie weitermachen? "; $antwort = ; chomp $antwort; die "Programm beendet!\n" if $antwort eq "y" || $antwort eq "Y"; } Das &-Zeichen vor dem Funktionsaufruf darf seit Perl 5 entfallen (das bedeutet für Sie: weniger Schreibarbeit :-) ). Es mag verwundern, dass die Variable $antwort extra deklariert wird, doch wenn man dies nicht tun würde, würde eine... mehr... 0 Kommentare
 

Perl/CGI-Workshop, Teil 11

Von Wolfgang - 31. Jul 1999, 00:00
Hashes (assoziative Arrays) sind ein recht mächtiges und in Perl oft verwendetes Sprachmittel. Man kann ein Hash mit einer zweispaltigen Tabelle vergleichen, bei der man anhand der Werte in der ersten Spalte ("Schlüssel") auf die Werte aus der zweiten zugreifen kann. Wir wollen beispielsweise die folgende Tabelle in einem Hash speichern: Schlüssel Werte Ada Ichbiah C Kernighan & Ritchie C++ Stroustrup Eiffel Meyer Pascal Wirth Perl Wall Der Names eines Hashes beginnt mit einem "%". Wenn man auf ein einzelnes Element zugreift, wird wie bei Arrays auch das "$"-Zeichen verwendet. Unser Programm könnte etwa so aussehen: #!/usr/bin/perl # hash1.pl -- by W. Jährling $inventors{'Ada'} = "Ichbiah"; $inventors{'C'} =... mehr... 0 Kommentare
 

KDE-Programmierung: Signals und Slots

Von Andreas Heck - 19. Jul 1999, 00:00
Das Eventhandling ist in vielen Toolkits und unter den meisten Betriebssystemen eine komplizierte und fehlerträchtige Angelegenheit. Nicht so unter Qt. Die Programmierer von Qt haben ihr Toolkit mit einem einfachen und leicht verständlichen Mechanismus zum Eventhandling ausgestattet. Nehmen wir z.B. einen simplen Button. So bald der User ihn anklickt, sendet er das Signal clicked() aus. Dieses Signal wiederum ist mit einem Slot namens doSomething() verbunden. Da ein Slot eine fast gewöhnliche Funktion ist, würde bei jedem Anklicken des Buttons z.B. eine AboutBox gezeigt werden, eine Datei geöffnet oder gespeichert werden oder irgend eine andere Reaktion auf das Anklicken des Buttons erfolgen. Um nun zu herauszufinden, wie man so etwas programmiert, nehmen wir eine erweiterte Version... mehr... 0 Kommentare
 

Perl/CGI-Workshop, Teil 10

Von Wolfgang - 19. Jul 1999, 00:00
Die Metazeichen, die wir bisher kennengelernt haben, waren dazu geeignet, dem Perl-Interpreter mitzuteilen, was er matchen soll. Dann gibt es da noch die sog. Quantoren, die dazu verwendet werden, bestimmte Muster eine bestimmte Anzahl mal zu matchen. So ein Quantor wird dabei hinter einen Ausdruck geschrieben. Da gibt es z.B. das "+", welches für ein oder mehrere Vorkommen des voranstehenden Ausdrucks steht. Wenn dieser Ausdruck nicht nur das unmittelbar davorstehende sein soll, können Sie natürlich auch Klammern verwenden: #!/usr/bin/perl # plus.pl -- by W. Jährling $path = "/opt/gnome/bin"; if ($path =~ /^\/.+\/bin$/) { # Der Pfad ist ein absoluter (beginnt mit "/") # und endet mit "/bin" (ist aber nicht "/bin"). } # Durch die... mehr... 0 Kommentare
 

Perl/CGI-Workshop, Teil 9

Von Wolfgang - 09. Jul 1999, 00:00
Eben haben wir gesehen, dass Regexps eine praktische Sache sind. Nun werden wir uns die erweiterten Möglichkeiten, die diese bieten, mal näher anschauen. Entschuldigen Sie dieses Gelaber, aber ich muss mich bei jedem Kapitel erstmal wieder "warmschreiben" *g*. Die meisten Zeichen stehen in Regexps für sich selbst. Dies sind vor allem Buchstaben und Zahlen. Beim Finden von Übereinstimmungen ("matchen") darf an der jeweiligen Stelle in der Zeichenkette also dieses eine Zeichen stehen und kein anderes. Der Punkt hingegen matcht ein beliebiges Zeichen: #!/usr/bin/perl # regexp2.pl -- by W. Jährling $version = "Linux 2.0.36"; if ($version =~ /2\.0\.../) { # Mindestens 2.0.10 print "Blabla Blabla...\n"; } Wenn ein "echter" Punkt gematcht... mehr... 0 Kommentare
 
Das (nicht ganz vollständige) Pro-Linux-Team von links nach rechts: Stephan Tijink, Michael Flaig, Diana Förster, Mirko Lindner (demon), Hans-Joachim Baader (hjb), Pawel Deska

Der LinuxTag 1999

Von Mirko Lindner - 01. Jul 1999, 00:00
Auf dieser Seite präsentieren wir Ihnen Informationen und Impressionen vom LinuxTag 1999 in Kaiserslautern. Nach der ersten »Kennlernphase« schafften es alle, sich innerhalb weniger Minuten zu akklimatisieren, und bereits nach wenigen Augenblicken kam die freche und lockere Atmosphäre von Pro-Linux zu Tage. Wir teilten uns in zwei Gruppen und beschlossen, für Sie die Eindrücke des Tages in Bild und Wort zu fassen. Überrascht von dem großem Bekanntheitsgrad des Teams fingen wir Gespräche... mehr... 0 Kommentare
 

Hilfe, wenn der Kernel nicht mehr bootet

Von Stephan Tijink - 30. Jun 1999, 00:00
Oft kommt man schon mit dem Standard-Kernel einer heutigen Distrubtion gut zurecht. Doch manchmal ist es notwendig, daß man einen neuen Kernel kompilieren muß. Was man tun kann, wenn dies einmal schiefgegangen ist, daß will ich im folgenden Text erklären. Da die SuSE-Distribution sehr verbreitet ist, und ich diese ebenfalls verwende, will ich dies für diese Distribution beschreiben. Wenn Sie einen neuen Kernel kompiliert haben und z.B. in des Verzeichnis /boot kopieren wollen, dann sollten Sie zuvor eine Sicherungskopie des alten Kernels anlegen. Sollte einmal der neu kompilierte Kernel nicht mehr booten, dann vereinfacht dies die Rekonstruktion eines funktionsfähigen Kernels. Außerdem sollten Sie auf jeden Fall eine Bootdiskette mit einem aktuellen, funktionierenden Kernel erstellen,... mehr... 0 Kommentare
 

Perl/CGI-Workshop, Teil 8

Von Wolfgang - 29. Jun 1999, 00:00
Nun werden wir das Geheimnis um diese rätselhaften "regulären Ausdrücke" lüften. Dabei handelt es sich um Suchmuster. Dank den Regexps können Sie zwar u.a. auch "Suchen-&-Ersetzen"-Aktionen durchführen, doch Regexps sind noch viel flexibler. Im Übrigen sind Regexps nichts Perl-spezifisches sondern, können in vielen Unix-Programmen verwendet werden, z.B. im Texteditor "vi" oder auch der Sprache "awk". Es existiert auch eine entsprechende Bibliothek für C/C++, doch die ist alles andere als einfach zu handhaben. Auch wenn Sie bisher noch nie von Regexps gehört haben, hatten Sie schonmal mit einer Abwandlung von diesen zu tun: Die Metazeichen der Shell (wie das "*" oder das "?"). Die Shell ersetzt das von Ihnen angegebene Suchmuster durch... mehr... 0 Kommentare
 

KDE-Programmierung: Das Grundgerüst

Von Andreas Heck - 24. Jun 1999, 00:00
Wenn Sie sich schon einmal den Quellcode eines KDE-Programms näher angeschaut haben, haben Sie sicher schon festgestellt, dass er aus verhältnismäßig vielen Dateien und Verszeichnissen besteht. Der tatsächliche Quellcode liegt im Unterverzeichnis Programmname oder src . Die anderen Dateien dienen der Projektverwaltung und werden nur benötigt, um das Programm zu kompilieren. Das liegt darin begründet, dass die GNU-Tools autoconf und automake zur Projektverwaltung verwendet werden. Ihr Vorteil gegenüber einfachen Makefiles besteht darin, dass man ein und den selben Quellcode auf verschiedenen UNIX-Derivaten (Linux, FreeBSD, OpenBSD, Solaris usw.) kompilieren kann. Müsste man so ein Projekt komplett »von Hand« erstellen, so würde das die meisten von uns (mich eingeschlossen) wohl zur... mehr... 0 Kommentare
 

Perl/CGI-Workshop, Teil 7

Von Wolfgang - 17. Jun 1999, 00:00
Die "for"-Schleife ist in Perl genauso aufgebaut wie in C/C++: #!/usr/bin/perl # forloop.pl -- by W. Jährling for ($versuche = 1; $versuche < = 3; $versuche++) { print "Enter your Login Name: "; $login = ; print "Enter your Password: "; $passwd = ; chomp $login; chomp $password; if (($login eq 'root') && ($password eq 'tmt1w2di')) { $correct = 1; last; # Schleife verlassen } print "Login incorrect!\n"; } die "3 trys and you are OUT!\n" if not $correct; # ... Die drei Teile des Schleifenkopfes sind also auch in Perl: Initialisierungs-Anweisung (wird einmal ausgeführt, bevor die Schleife betreten wird) Bedingung (entsprechend der while-Schleife) Iterations-Anweisung (wird nach jedem Schleifendurchlauf... mehr... 0 Kommentare