Email to Torsten Weber
Feed Icon
.NET User Group Leipzig
Previous Page Page 3 of 7 in the ITCrowd category Next Page

Ein paar wirklich sehr schöne Minianwendungen habe ich bei Marci entdeckt. Eine Minianwendung für Mehrkernprozessoren und eine für den Netzwerkverkehr. Die Minianwendungen gibt es hier.

Für die Anzeige der Temperatur ist die Installation von Speedfan notwendig.

Quad-/Dual Core-Minianwendung Quad-/Dual Core-Minianwendung Netzwerk-Minianwendung

Weitere Minianwendungen gibt es z. B. hier.

Wie ich im vorherigen Blogeintrag geschrieben habe, kann es bei der Verwendung von Berkeley Datenbanken im Zusammenhang mit TortoiseSVN bei den 32-Bit bzw. 64-Bit Windows Betriebssystemen Probleme geben. Es gibt eine weitere Möglichkeit, neben der im vorherigen Blogeintrag beschriebenen Methode, diese Probleme zu vermeiden: Das native Dateisystem FSFS. Es ist unempfindlich gegenüber der beschriebenen Problematik und hat ein paar weitere Vorteile wie:

  • das FSFS kann von Nur-Lese-Datenträgern gemountet werden,
  • das Repository ist kleiner gegenüber einer Berkeley Datenbank,
  • beim Einchecken von großen Dateien ist es schneller als mit einer Berkeley Datenbank,
  • hat keine binäre Inkompatibilitäten in Abhängigkeit von der verwendeten Version,
  • oder z. B.: The most important distinction, however, is FSFS's imperviousness to "wedging" when something goes wrong. If a process using a Berkeley DB database runs into a permissions problem or suddenly crashes, the database can be left in an unusable state until an administrator recovers it. If the same scenarios happen to a process using an FSFS repository, the repository isn't affected at all. At worst, some transaction data is left behind.

    Quelle: svnbook.red-bean.com, Version Control with Subversion
  • in Subversion 1.5 gibt es für FSFS ein neues Leistungsmerkmal, genannt "sharding", bei welchem die vielen kleineren Dateien in wenige grössere gepackt werden; um dieses jedoch zu nutzen, ist erneut die unten beschriebene Prozedur notwendig (aber gerade bei NTFS lohnt sich es, gerade auch wegen der Geschwindigkeit, nicht nur vom Platzbedarf her)¹

und bei einigen wenigen Nachteilen wie:

  • bei älteren Dateisystemen mit tausenden Dateien in pro Verzeichnis können Skalierungsprobleme auftreten.

Daher habe ich Berkeley Datenbanken eines aktuellen Projektes dazu einfach nach FSFS konvertiert. Jetzt kann sowohl per TortoiseSVN 32- oder TortoiseSVN 64-Bit mittels svnserve bzw. Apache als auch direkt auf FSFS² zugegriffen werden.

TortoiseSVN

Folgende Schritte sind für die Konvertierung zu erledigen:

  • sehr viel Zeit mitbringen und Backup der Berkeley Datenbanken anlegen ;)
  • Subversion ist herunterzuladen, dabei reichen die "Binaries", der "Installer" ist nicht nötig
  • der Inhalt ist zu entpacken, z. B. nach C:\Program Files (x86)\Subversion
  • Start anklicken, Eingabeaufforderung aufrufen (siehe z. B. hier für Vista)
  • nur einmalig eingeben:
    mk d:\dump
    cd C:\Program Files (x86)\Subversion\bin

    und danach für jede Berkeley Datenbank eingeben (bilder steht für die Berkeley Datenbank):
    svnadmin dump d:\repositories\svn\bilder > d:\dumps\repo.dump
    rmdir d:\repositories\svn\bilder /q /s
    mkdir d:\repositories\svn\bilder
    svnadmin create d:\repositories\svn\bilder --fs-type fsfs
    svnadmin load d:\repositories\svn\bilder < d:\dumps\repo.dump
    del d:\dumps\repo.dump

¹ vielen Dank an Stefan Küng für den Hinweis, siehe auch Implement sharding for FSFS
² FSFS ist genau genommen keine Datenbank, sondern nur ein natives Dateisystem

TortoiseSVN ist als 64-Bit Version verfügbar. Was den 64-Bit Neuling Alex oder 64-Bit-Abstinenzler Marci durchaus mit mir zu einigen Diskussionen führen lassen hat. Argumente gegen 64-Bit sind unter anderem, das stimmt auch, eine derzeit schlechtere Unterstützung durch Treiber aber auch, dass nicht alle Anwendungen auch für 64-Bit verfügbar sind. Doch das letztere Argument ist im Prinzip keines, weil unter einem 64-Bit Windows Betriebssystem in der Regel alle 32-Bit Anwendungen auch ausführbar sind. Das liegt auch an dem Erfolg von AMD64 von AMD, deren Ansatz in eben Richtung Kompatibilität cleverer war, als der von Intel mit IA-64 und dazu geführt hat, dass Intel diese Technologie als Intel 64 (EMT64, IA-32e) von AMD lizensiert hat.

Also, eo ipso, sollte ein TortoiseSVN 32-Bit auch unter einem 64-Bit Windows Betriebssystem ausgeführt werden können und kann es auch. Doch hier gibt es einige Besonderheiten zu beachten, gerade auch im Hinblick auf die Konsistenz der Projektarchive (Repositories). Als grundsätzliche Vorgehensweise lässt hier festhalten, dass hinsichtlich 32-Bit oder 64-Bit

Berkeley Datenbanken mit der TortoiseSVN-Variante angesprochen werden sollten, mit dem diese erstellt wurden.

Ein x-Bit Prozess, braucht ein x-Bit TortoiseSVN

Das heißt, dass eine mit TortoiseSVN 32-Bit erstellte Datenbank auch mit TortoiseSVN 32-Bit aufgerufen werden sollte. Eine mit TortoiseSVN 64-Bit erstellte Datenbank demzufolge mit einem TortoiseSVN 64-Bit. Doch so einfach ist es nicht, da TortoiseSVN sich in den Windows Explorer einklinkt und darüber die Funktionalität wie Auschecken oder Einchecken zur Verfügung stellt. Der Windows Explorer ist ein 64-Bit-Prozess und kann dort eben nicht TortoiseSVN 32-Bit (x86) Funktionalität wie z. B. die Icons zu Ordnern mit Projektarchiven nutzen. Das kann der Windows Explorer nur in Verbindung mit einem TortoiseSVN, das ebenfalls ein 64-Bit Prozess ist. Kurz um, wer eine Integration von TortoiseSVN mit dem Windows Explorer wünscht, muss TortoiseSVN in der 64-Bit Variante installieren.

Doch nicht alle Anwendungen sind 32-Bit Prozesse, eben wegen der oben erwähnten Kompatibilität und so wären diese Anwendungen von der Funktionalität von TortoiseSVN 64-Bit wiederum ausgeschlossen. Alex, der Total Commander gerne mit Schweizer Taschenmesser für den PC bezeichnet, war genau hier in diese Problematik gekommen. Meine Empfehlung, einfach TortoiseSVN 32-Bit ebenfalls zu installieren hat erstaunt, aber ist genau die Lösung. So werden im Windows Explorer als auch im Total Commander entsprechende Icons angezeigt. Die Vorgehensweise für Windows x64 Betriebssysteme stellt sich also so dar, einfacherhalber immer beide Varianten von TortoiseSVN zu installieren.

32-Bit und 64-Bit Prozesse benötigen ein 32-Bit oder 64-Bit TortoiseSVN 

So kann sowohl der Windows Explorer als auch Total Commander Icons anzeigen.

Windows Explorer mit Icons von TortoiseSVN 32-Bit  Windows Explorer mit Icons von TortoiseSVN 64-Bit

Berkeley Datenbanken sind nicht x-Bit kompatibel

Im Prinzip fängt hier die eigentliche Problematik gerade erst an. Denn es geht nicht nur um die lokalen Projektverzeichnisse, sondern auch um die Berkeley Datenbanken (BDB). Hier gilt die obige Empfehlung, dass Projektarchive mit dem TortoiseSVN angesprochen werden sollten, mit dem sie erstellt wurden. Es heißt nun aber, dass ein Windows Explorer 64-Bit auch ein TortoiseSVN 64-Bit aufrufen wird und so die Berkeley Datenbank ansprechen wird. Ist diese Datenbank mit einem TortoiseSVN 32-Bit erstellt worden, stützt TortoiseSVN 64-Bit dann im besten Fall einfach ab, im schlimmsten Fall wird vielleicht die Berkeley Datenbank inkonsistent und kann nicht mit entsprechenden Werkzeugen repariert werden. Eine Lösung ist hier, einen 32-Bit Prozess dazwischen zu schalten.

Am unkompliziertesten ist dabei Apache oder svnserve, die je als ein 32-Bit Prozess laufen. TortoiseSVN 64-Bit selbst greift nun über ein von der Prozessorarchitektur (Wortbreite) unabhängiges Protokoll über Apache bzw. svnserve auf Berkeley Datenbanken zu. Ein TortoiseSVN 32-Bit wiederum kann auf Apache, svnserve oder direkt auf die Berkeley Datenbank zugreifen.

TortoiseSVN in 32-Bit oder 64-Bit können unterschiedlich auf Berkley Datenbanken zugreifen

Problematisch daran ist, dass derzeit Projektverzeichnisse mit TortoiseSVN erstellt werden können, ohne dass Hinweise bzw. Warnungen auf die Problematik kommen. Eine Berkeley Datenbank, die mit Hilfe des Windows Explorers über das Kontextmenü von TortoiseSVN erstellt wird, ist dann also folglich auch für 64-Bit gedacht und mit 32-Bit nicht mehr kompatibel¹. Es sind leicht mehr als eine Konstellation denkbar, bei dem dieser Sachverhalt zu Komplikationen führen kann. Sei es, dass mit einem 32-Bit Apache bzw. svnserve auf eine mit TortoiseSVN 64-Bit erstellte Berkeley Datenbank zugegriffen wird. Sei es, dass eine mit einem TortoiseSVN 64-Bit erstellte Berkeley Datenbank vielleicht irgendwann später von einem 64-Bit Windows Betriebssystem auf ein 32-Bit Windows Betriebssystem transferiert wird.

TortoiseSVNTortoiseSVN

TortoiseSVN unter 64-Bit Windows Betriebssystemen – ein Vorschlag

Der Vorschlag ist prinzipiell oben schon erläutert:

  • Berkeley Datenbanken sind immer mit einem 32-Bit TortoiseSVN zu erstellen²
  • unter 64-Bit Betriebssystemen ist die 32- und 64-Bit Variante von TortoiseSVN zu installieren
  • auf Berkeley Datenbanken ist nicht per file:///, sondern per Apache oder svnserve zuzugreifen

Die beiden ersten Punkte sind leicht umsetzbar, ein wenig kompliziert wird es aber beim dritten Punkt: Dem Zugriff auf die Berkeley Datenbanken per Apache oder svnserve. Während die erste Möglichkeit in der TortoiseSVN-Dokumentation gut beschrieben ist, ist es meiner Meinung nach nicht bei der zweiten.

Eine weitere Lösung ist übrigens Subversion – Konvertierung BDB (Berkeley) nach FSFS.

Folgende Schritte sind für einen Zugriff per svnserve durchzuführen:

  • Subversion ist herunterzuladen, dabei reichen die "Binaries", der "Installer" ist nicht nötig
  • der Inhalt ist zu entpacken, z. B. nach C:\Program Files (x86)\Subversion
  • die Eingabeaufforderung ist als Administrator zu starten (siehe z. B. hier für Vista)
  • auf der Eingabeaufforderung ist mit cd C:\Program Files (x86)\Subversion in dieses Verzeichnis zu wechseln
  • jetzt ist in der Eingabeaufforderung svnserve.exe --daemon einzugeben
  • wenn auch andere Rechner Zugriff erhalten sollen, muss die Frage einer Firewall, ob Port 3690 freigegeben werden soll, bestätigt bzw. der Port manuell freigegeben werden
  • svnserve ist nun mit der Eingabe von "STRG + C" in der Eingabeaufforderung zu beenden
  • dann ist in der Eingabeaufforderung sc create SVNServer binPath= "c:\program files (x86)\subversion\bin\svnserve.exe --service --root d:\\repositories\\svn" start= auto error= normal depend= tcpip DisplayName= "Subversion Server" einzugeben
    • dabei steht c:\program files... für das Verzeichnis, in das Subversion extrahiert wurde
    • und d:\\repositories\\svn für das Verzeichnis, in dem die Berkeley Datenbanken liegen
      Berkley Datenbanken
    • und SVNServer für den Namen des Dienstes
    • und DisplayName= "Subversion Server" für die Beschreibung des Dienstes
      Subversion Server im TaskManager
  • der Dienst kann mit sc delete SVNServer wieder gelöscht werden
    • vorher ist dafür sc stop SVNServer einzugeben
  • es müssen Zugriffsrechte eingerichtet werden in d:\\repositories\\svn
    • in jedem conf-Verzeichnis und dort bei der Datei svnserve.conf
    • unter dem Punkt [general] ist z. B. für die Zugriffsrechte
      "Anonym: kein Zugriff" und
      "Autorisiert: Schreibzugriff"
      folgendes zu schreiben:

      anon-access = none
      auth-access = write
      password-db = ../../passwd
    • die Datei mit den Kennwörtern muss in diesem Beispiel bei z. B.
      D:\Repositories\SVN\Bilder\conf
      in D:\Repositories\SVN liegen
      und bei obiger Eingabe "sc create..." ist als Verzeichnis d:\\repositories\\svn zu verwenden
    • in der Datei passwd steht dann etwas wie
      [users]
      Richard Keep = WRHGX7DXQFTQ9TDS
      und Richard Keep stellt dabei den Benutzer und WRHGX7DXQFTQ9TDS sein Kennwort dar
  • svnserve kann durchaus bei dem Aufruf einer nicht existenten Berkeley Datenbank abstürzen und sollte auch daher automatisch neu gestartet werden (Beschreibung für Vista)
    • auf Start klicken
    • auf Systemsteuerung klicken
    • "Dienste" eingeben (klassische Ansicht)
    • Lokale Dienste anzeigen anklicken
    • Subversion Server doppelt anklicken und auf den Reiter Wiederherstellung klicken
    • dort bei Erster Fehler, Zweiter Fehler und Weitere Fehler alles auf Dienst neu starten stellen
    • OK anklicken
      Eigenschaften vom Subversion Server einstellen
  • nun können die Projektverzeichnisse ausgecheckt werden mit
    • svn://[Rechnername oder IP]/Berkeley Datenbankname also z. B.
      Auschecken

¹ Konvertierungen der BDB sind möglich, aber enthalten auch eben Risikopotential
² Vorlagen, nur umzubenennen: BDB_Vorlage x86.zip (89,71 KB), BDB_Vorlage x64.zip (44,96 KB)

Leerzeichen (Microsoft spricht in der MSDN Library manchmal von "Leerstellen") und Satzzeichen, die in URLs bzw. letztendlich HTTP-Streams verwendet werden, können zu falschen Ergebnissen führen, wenn sie nicht codiert werden. Codierung heißt, sie werden von einem Zeichensatz der z. B. eben " " enthält, in einen weiteren¹ mit bestimmten Zeichenentitäten für diese Zeichen überführt. Ein ":" wird so zu "%3a".

Die sich so ergebende Zeichenfolge aus einem Protokoll oder als Parameter in einer Anwendung,

  • 404%3bhttp%3a%2f%2fwww.nahtlos-mobil.de%3a80%2fgehezu%2fcd1703,

lässt sich nun für Menschen schlecht beim Lesen decodieren. Aber es gibt Werkzeuge dafür. Ein solches Werkzeug ist Erweiterung Hackbar. Hier muss nur die Zeichenfolge in das Textfeld eingegeben, dann markiert und z. B. auf URLdecode geklickt werden. Umgekehrt funktioniert es natürlich auch und so wird dann aus obiger Zeichenfolge

  • 404;http://www.nahtlos-mobil.de:80/gehezu/cd1703

und damit wieder etwas "lesbares".

HackBar im FireFox 2

HackBar im FireFox 2

Die Erweiterung kann mit einem rechten Mausklick auf die Symbolleisten aktiviert und deaktiviert werden und unterstützt auch eine Codierung / Decodierung von BASE64, MySQL Char, MsSQL Char sowie den MD5 Hash.

HackBar im FireFox aktivieren/deaktivieren

Für alle, die die Erweiterung nicht nutzen wollen bzw. den Internet Explorer verwenden, gibt es auch eine Lösung, die eine Codierung / Decodierung von URLs online erledigen kann.

¹ genauer siehe RFC2396

Nach den Blogeinträgen richtige Modellierung – ein Warenkorb und richtige Modellierung – eine Termin-Minianwendung sowie richtige Modellierung – Newsletter abbestellen ist mir Skype aufgefallen. Was genau soll die Meldung einem Endanwender sagen, dass der Server nicht verfügbar ist, wenn Skype Offline geschaltet wurde. Nicht, dass Skype ständig versuchen würde, eine Verbindung zu bekommen, wie es dieses Jahr tatsächlich vorgekommen ist und das Skype Netzwerk real unter Ausfällen litt. Nein, Skype ist bewusst offline geschaltet und bringt so eine Fehlermeldung? Resultat: Was genau versteht Skype unter "Offline" und ich bin gespannt, ob es tatsächlich in wenigen Minuten wieder einfach so ohne jegliches Zutun funktioniert...

Der Reiter findet sich über die Menüpunkte Ansicht, Reiter und Felder, Live.

Skype – Offline aber Server ist angeblich nicht verfügbar

Previous Page Page 3 of 7 in the ITCrowd category Next Page

Boldness, risk‐taking and a little bit of craziness – lateral thinker Torsten Weber
Boldness, risk‐taking and a little bit of craziness – lateral thinker Torsten Weber

.NET User Group Leipzig

Categories

Calendar

<February 2012>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

Archive

My subscribed blogs

show all
show less
Blogs of good friends (as OPML)
More Blogs (as OPML)