Auf der Suche nach einem Player für Internet-Streams bin ich auf Screamer gestoßen und bin wirklich begeistert!
Verschieben der MySQL-Datenbank
Auf unserem /var
-Volume war der Platz knapp geworden; die MySQL-Datenbank war zu stark angewachsen. Um das System noch laufen lassen zu können, war es notwendig, die Datenbank auf ein anderes Dateisystem umzuziehen – in unserem Falle war das auf das /home
-Volume.
PDF-Kennwörter loswerden
Von Zeit zu Zeit trifft man auf ein PDF mit Kennwort. Gegebenenfalls ist es sinnvoll, dieses Kennwort zu entfernen.
Mit mbtPdfAsm kann man ohne Kenntnis eines aktuellen Kennworts ein neues Kennwort setzen. Leider lässt sich das vorhandene Kennwort damit nicht löschen. Dies wiederum geht mit pdftk, sofern man das Kennwort weiß. Der Trick ist also, beide Verfahren zu kombinieren:
Erst ein neues Kennwort setzen:
mbtPdfAsmEn -Malt.pdf -u -cOtest
Und dann das bekannte Kennwort wieder löschen:
pdftk alt.pdf input_pw test output neu.pdf
Schon hat man ein ungeschütztes Dokument.
- Update: Eine weitere Methode findet man hier!
Nutzung des SOAP-Servers mit Office
Ich wollte noch auf die Nutzung des SOAP-Servers mit Word (2000) hinaus.
Nutzung mit dem SOAP-Toolkit von Microsoft
Diese älteren Office-Versionen haben im Gegensatz zur Methode mit .net keinen direkten Zugriff auf die SOAP-Methoden. Dies lässt sich aber mit Microsofts SOAP-Toolkit nachrüsten. Microsoft schreibt zwar, dass das Toolkit durch .net veraltet sei, bietet aber sowohl das komplette SDK wie auch das verteilbare Paket zum Download an.
Damit wird die Nutzung des Webservices ziemlich einfach. Unter Extras-Verweise muß ein Verweis zum Microsoft SOAP Toolkit hinzugefügt werden.
In der Prozedur benötigen wir zunächst ein entsprechendes Objekt:
Dim soap As SoapClient
Set soap = New SoapClient
Mit diesem Objekt wird die WSDL-Datei abgeholt. Im Anschluss daran stehen die per Web-Service veröffentlichten Funktionen als Methoden des Objekts zur Verfügung. Für uns heißt das:
With soap
' Hole die Funktionen aus der Beschreibungsdatei
.mssoapinit "http://www.example.com/soapserver.php?wsdl."
' Und jetzt tu was...
ergebnis = .suche("Suchbegriff")
End With
Dabei scheint es wichtig zu sein, im nuSoap einen Namespace zu verwenden. Ohne Namespace-Definition erhalte ich einen VB-Fehler, mit keinen.
Nutzung von PocketSOAP
Eine weitere nette Bibliothek ist PocketSOAP von Simon Fell. Nachdem man auch hier unter Extras–Verweise diese Bibliothek hinzugefügt hat, holt folgende Code die Suchergebnisse ab:
Dim SOAP As New CoEnvelope
Dim HTTP As New HTTPTransport
Dim Result() As String
With SOAP
.MethodName = "suche"
.Parameters.Create "sucheRequest", "Suchbegriff"
End With
HTTP.Send "http://www.example.com/soapserver.php", SOAP.Serialize
' parse the SOAP message
SOAP.Parse HTTP
' extract the return value
Result = SOAP.Parameters.Item(0).Value
Noch einfacher geht des mit dem „SOAP Proxy“-Object: Hier genügen folgende Zeilen:
Dim SOAPProxy As PSPROXYLib.CoSoapFactory
Dim SOAP As Object
Dim Result() As String
Set SOAPProxy = New PSPROXYLib.CoSoapFactory
Set SOAP = SOAPProxy.CreateProxy("http://www.example.com/soapserver.php")
Result = SOAP.suche(sucheRequest:="Suchbegriff")
Zu PocketSOAP gibt es derüber hinaus einen WSDL-Proxygenerator, der aus einer WSDL-Datei entsprechende Klassen für VB generiert. Damit stehen die über SOAP exportierten Funktionen als Methoden dieser Objekte zur Verfügung, was das Arbeiten mit diesen natürlich sehr angenehm macht.