HTML Tidy mit einer Zeile JavaScript

Mit einer einfachen Zeile JavaScript kann man kaputtes HTML in gut strukturiertes XHTML umwandeln.

function tidy(document) {
    return new XMLSerializer().serializeToString(
new DOMParser().parseFromString(document, 'text/html'));
}
console.log(tidy("<title>Seitenname</title><h1>Überschrift</h2><p>Das ist ein Test<p>Noch eine Zeile<ul><li>Liste</ul><h3>Text</h1>"));

Ausgabe ist:

<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Seitenname</title></head><body><h1>Überschrift</h1><p>Das ist ein Test</p><p>Noch eine Zeile</p><ul><li>Liste</li></ul><h3>Text</h3></body></html>

Gefunden hier: http://stackoverflow.com/questions/12092532/how-to-convert-html-to-valid-xhtml

Große JSON-Datei in vim laden und formatieren

Für einen Kunden musste ich eine sehr große JSON Datei analysieren. Diese Datei war ungefähr 150MB groß. In solchen Fällen nutze ich gerne den MacVim, der nach meinem Wissen der einzige Texteditor ist, der mit größeren Dateien unproblematisch umgehen kann.

Die Datei war ausserdem unformatiert, ohne Einrückung etc., was sich dann einfach mit dem vim-Befehl bzw. Python-Befehl

:%!python -m json.tool

machen liess.

Gefunden hier: https://coderwall.com/p/faceag/format-json-in-vim

Die Textkodierung einer Datei ändern (OS-X)

Mit dem Kommandozeilentool iconv kann mit im OS-X Terminal die Kodierung von Dateien ändern. Wenn man zum Beispiel die Kodierung einer Datei von iso-8859-1 auf utf-8 ändern möchte, geht das ungefähr so:

iconv -f iso-8859-1 -t utf-8 datei_iso.txt > datei_utf8.txt

In OS-X ist das Tool iconv standardmäßig enthalten, es sollte aber so ähnlich auch unter anderen Unixen und Linux funktionieren.

Passwörter mit TextExpander generieren

TextExpander ist ein hilfreiches Tool, das stabil läuft. Es ist eigentlich als eine Bibliothek für Textabkürzungen gedacht, die sich systemweit nutzen lassen. So wird aus „mfg“-[Tab] ein „Mit freundlichen Grüßen“ oder aus „lorem“-[Tab] ein schöner Blindtext.

Mit der Scriptfunktion kann man TextExpander auch für komplexere Dinge nutzen, wie die Generierung von Passwörtern:

#!/bin/bash
var=`openssl rand -base64 15`
echo ${var:0:10}

In ${var:0:10} kann man die Länge des Passwortes einstellen, in dem Fall sind es 10 Zeichen.

Verfügbaren Speicher von SmartSVN erhöhen (OSX)

SmartSVN wird in der default-Einstellung mit für große Projekte zu wenig Speicher gestartet. Diese Einstellung lässt sich aber über die Systemvariable „$SMARTSVN_MAX_HEAP_SIZE“ überschreiben.

Die Variable kann man beispielsweise in der Datei ~/.profile setzen, wie hier gezeigt:

export PATH=~/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
export EDITOR=vi
export SMARTSVN_MAX_HEAP_SIZE=1024m

Interessant in dem Zusammenhang ist auch das Script, das SmartSVN startet, und zwar die Datei

/Applications/SmartSVN 7.0.6/SmartSVN 7.app/Contents/MacOS/SmartSVN

In diesem Script wird die beschriebene Systemvariable ausgelesen und das Java-Programm gestartet.

In Firefox die Nachricht über fehlendes Plugin deaktivieren

Firefox nervt gewaltig, wenn man kein Flash Plugin oder ähnliches installieren möchte, und zwar mit einem gelben Balken.

Infobar, die oben im Firefox angezeigt wird

Balken deaktivieren

Dieser Balken lässt sich deaktivieren, dazu gibt man oben in die Adresszeile about:config ein, um zu den erweiterten Firefox-Einstellungen zu kommen.

Dort nach plugins.hide_infobar_for_missing_plugin suchen und den Wert auf true stellen.

Die erweiterten Einstellungen von Firefox

Firefox muss nun neu gestartet werden und die nervige Infobar ist verschwunden.

Schnellanleitung, um GNU chess auf Mac OS X zu installieren

So installiert man auf Mac OS X (10.7.4) GNU chess mit dem Paket-Manager Homebrew.

1. Homebrew installieren

Zunächst muss der Paket-Manager Homebrew installiert werden.

Wie das geht, ist hier beschrieben: https://github.com/mxcl/homebrew/wiki/Installation

Zum Testen des Systems sollte nach der Installation der Befehl

gonzales:~ snh$ brew doctor

ausgeführt werden.

2. GNU chess installieren

Mit Homebrew kann man nun GNU chess installieren.

gonzales:~ snh$ brew tap homebrew/games
Cloning into '/usr/local/Library/Taps/homebrew-games'...
remote: Counting objects: 528, done.
remote: Compressing objects: 100% (246/246), done.
remote: Total 528 (delta 280), reused 507 (delta 260)
Receiving objects: 100% (528/528), 88.91 KiB | 69 KiB/s, done.
Resolving deltas: 100% (280/280), done.
Tapped 40 formula
gonzales:~ snh$ brew install gnu-chess

…fertig.

gonzales:~ snh$ gnuchess
GNU Chess 6.0.1
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
White (1) : e4
TimeLimit[0] = 0
TimeLimit[1] = 0
1. e4

black  KQkq  e3
r n b q k b n r
p p p p p p p p
. . . . . . . .
. . . . . . . .
. . . . P . . .
. . . . . . . .
P P P P . P P P
R N B Q K B N R 

Thinking...

Sucheingabe über das Adressfeld in Firefox

In Googles Browser Chrome fehlt das extra-Eingabefeld für Suchanfragen, da Chrome automatisch eine Suche ausführt, wenn die Eingabe im Adressfeld keine URL ist.

Diese Funktion lässt sich relativ einfach in Fiefox aktivieren:

  1. In die Adresszeile „about:config“ eingeben, so kommt man zur ausführlichen Firefox-Konfiguration
  2. Nach „keyword.URL“ filtern
  3. Hier als Wert „http://www.google.de/#q=“ eingeben

Einstellung keyword.URL

Nun verhält sich Firefox bzgl. der Adresseingabe so ähnlich, wie Chrome.

Eigene Styles für Skype 5 erstellen um z.B. die Schriftgröße zu ändern (OS-X)

Ich finde ja das neue Skype 5 für Mac-OS sehr gut, einzig die Schriftgröße im Chat empfinde ich als zu klein. Nachdem Skype geöffnet ist, lässt sich diese zwar mit cmd + und cmd – einstellen. Aber dies wird nach Beendigung von Skype wieder vergessen.

Mit ein bisschen Nachforschung habe ich dann herausgefunden, dass Skype 5 sogenannte „Chat-Styles“ unterstützt. Das sind Pakete, in denen das Aussehen des Chats mit Bildern, JavaScript und CSS definiert wird. Es lässt sich hiermit in CSS nicht nur die Schriftgröße in Skype 5 ändern sondern auch Farben, Schriften und andere Parameter.

Schritt 1: „Panamericana.SkypeChatStyle“ nach ~/Library/Application Support/Skype/ChatStyles kopieren und umbenennen.

Wir finden den Standard-Style „Panamericana.SkypeChatStyle“ nach Rechtsklick auf /Programme/Skype und Auswahl von „Paketinhalt zeigen“ unter /Contents/Resources/ChatStyles in dem Skype-Paket. Um einen eigenen Chat-Style zu erstellen kopieren wir zunächst diesen existierenden „Panamericana.SkypeChatStyle“ nach ~/Library/Application Support/Skype/ChatStyles („~“ meint das Home-Verzeichnis). Wenn der Ordner „ChatStyles“ noch nicht existiert, erstellen wir ihn einfach. Nach dem Kopieren nennen wir den Style noch so, wie wir ihn gerne nennen möchten, z.B. „MeinStyle.SkypeChatStyle“.

Schritt 2: In den Skype Einstellungen den Style auf den eigenen umschalten.

In den Skype-Einstellungen können wir auf unseren neuen Style, die Panamericana-Kopie umschalten. Das geht unter „Chat & SMS/Stil“.

Schritt 3: Anpassung des CSS

Mit Rechtsklick auf die Datei „MeinStyle.SkypeChatStyle“ und Auswahl von „Paketinhalt anzeigen“ finden wir die Datei /Contents/Resources/css/main.css, in der der Stil unseres Skype-Chats festgelegt ist. Hier lässt sich, um die Schriftgröße zu ändern z.B. Zeile 2 „font: normal 13px/20px „Helvetica Neue“, Arial, sans-serif;“ einfach auf „font: normal 18px/20px „Helvetica Neue“, Arial, sans-serif;“ ändern. In dem CSS lässt sich so einiges ändern, mir hat aber eine größere Schrift erstmal gereicht.

Fertig, Skype 5 hat jetzt eine größere Schrift im Chatfenster.

Der Terminal-Fenstermanager Screen

In letzter Zeit lerne ich immer mehr das Programm Screen schätzen. Es macht die Verwaltung von Server-Systemen wesentlich angenehmer, da es mehrere virtuelle Terminals bzw. „Fenster“ über einen Login erlaubt.

Eine sehr praktische Eigenschaft an Screen ist, dass die Screen-Sessions unabhängig von der bestehenden Server-Verbindung erhalten bleiben. Das heisst, man kann ein Script gefahrlos innerhalb einer Screen-Session starten, ohne Angst haben zu müssen, dass es durch einen Verbindungsabbruch gestoppt wird.

Im folgenden die wichtigsten Kommandozeilen-Parameter und Tastenkürzel nach dem Aufruf von Screen.

Eine neue Screen-Session startet man mit dem Kommando „screen“.

screen

Optional kann man der Session mit dem Parameter -S einen Namen geben.

screen -S SessionName

Wenn man mehrere Screen-Sessions mit verschiedenen Namen gestartet hat, kann man sich mit dem Parameter -ls eine Liste der bestehenden Screen-Sessions anzeigen lassen.

screen -ls

Wie gesagt, bleibt eine Screen-Session nach Beendigung des Terminals erhalten, vorausgesetzt, auf dem Server wurde kein Reboot durchgeführt.

Eine früher gestartet Screen-Session lässt sich mit dem Parameter -r wieder reaktivieren. Der SessionName ist nur dann notwendig, wenn mehrere screen-Sessions gestartet wurden.

screen -r SessionName

Im Folgenden, die Kürzel zur Steuerung innerhalb der Screen-Session. Screen-Kommandos werden im Allgemeinen mit ctrl-a und einer weiteren Taste ausgeführt.

ctrl-a d 	Screen Session in den Hintergrund setzen (detach)
ctrl-a ? 	Hilfe anzeigen

ctrl-a c 	Eine neues Fenster erstellen
ctrl-a 1-n 	Auf Fenster Nr. 1-n schalten 
ctrl-a "	Liste der Fenster anzeigen
ctrl-a A	Das aktuelle Fenster umbenennen
exit		Das aktuelle Fenster schliessen

Screen-Fenster lassen sich teilen um so mehr Informationen gleichzeitig im Terminal anzuzeigen.

ctrl-a S	Das aktuelle Fenster horizontal teilen
ctrl-a |	Das aktuelle Fenster vertikal teilen
ctrl-a tab	Zur nächsten Fensterregion springen
ctrl-a X	Die aktuelle Fensterregion entfernen
ctrl-a Q	Alle Regionen ausser der aktiven entfernen