Textformatierung aus der Zwischenablage entfernen in macOS

Im Allgemeinen brauche ich eher unformatierten Text aus der Zwischenablage als formatierten. Wenn ich beispielsweise etwas aus dem Internet in ein Pages oder Word Dokument einfüge, soll keine Formatierung mit kopiert werden. Hierzu verwende ich seit einiger Zeit das Tool „Get Plain Text“. Es bietet die Möglichkeit, über eine Tastenkombination oder auch automatisch Formatierungen von dem aktuell in der Zwischenablage befindlichen Text zu entfernen.

Zur Website von „Get Plain Text“: http://zipzapmac.com/GetPlainText

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 (macOS)

Mit dem Kommandozeilentool iconv kann mit im macOS 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 (macOS)

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.

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...

Pear für XAMPP auf OS-X aktivieren

Pear ist zwar bei XAMPP mit dabei, aber, zumindest in Version „XAMPP für Mac OS X 1.0.1“, nicht funktionstüchtig. Dieser Umstand lässt sich mit folgenden Schritten beheben.

1. Im Terminal folgende Befehle ausführen

sudo /Applications/XAMPP/xamppfiles/bin/pear channel-update pear.php.net
sudo /Applications/XAMPP/xamppfiles/bin/pear install PEAR

2. In den letzten Zeile der Konfiguration /etc/php.ini

;***** Added by go-pear
include_path=".:/Applications/xampp/xamppfiles/lib/php"
;*****

gegen das hier austauschen:

include_path = ".:/Applications/XAMPP/xamppfiles/lib/php:/Applications/XAMPP/xamppfiles/lib/php/pear"

Nach einem Neustart des Apache sollte Pear nun funktionieren.

Mit Python schnell mal einen HTTP- oder SMTP-Server starten

In Python ist so einiges nützliches eingebaut. Wir finden in Python beispielsweise einen kleinen HTTP-Server und auch einen SMTP-Server. Auf Systemen mit installiertem Python lassen sich so Dateien schnell und unproblematisch zum Download durch andere Computer freigeben oder man kann mal eben einen Mail-Server zum Testen der selbst programmierten E-Mail-Versende-Funktion starten.

Mit dem HTTP-Server Verzeichnisse freigeben

Um Dateien per HTTP freizugeben, einfach mit dem Terminal in den Ordner wechseln, den man freigeben möchte und dann den Python-HTTP-Server mit

python -m SimpleHTTPServer

starten.

Der Server ist danach auf Port 8000 erreichbar, also unter http://MEIN_COMPUTER:8000/.

Mit dem Python-SMTP-Server E-Mail-Versendung testen

Sehr nützlich für die Software-Entwicklung ist der Python-SMTP-Debug-Server, der alle empfangenen E-Mails lediglich direkt auf der Kommandozeile ausgibt. Einen solchen SMTP-Server kann man auf Port 1025 mit dem Befehl

python -m smtpd -n -c DebuggingServer localhost:1025

starten.

Weitere Informationen:

Der Befehl „cp -r *“ kopiert keine versteckten Dateien

Wenn man mit beispielsweise

cp -r * /zu/diesem/verzeichnis/

den Inhalt eines Verzeichnisses in ein anderes kopieren will, so werden keine versteckten Dateien kopiert. Der bash-Wildcard ‚*‘ gilt nämlich nicht für versteckte Dateien, also Dateien, die mit einem Punkt anfangen, wie z.B. „.htaccess“. Mit

cp -r * .[!.]* /zu/diesem/verzeichnis/

kopiert man auch die versteckten Dateien.

  • * kopiert „normale“ Dateien
  • .[!.]* kopiert Dateien, die mit einem ‚.‘ beginnen, ohne das übergeordnete Verzeichnis ‚..‘ zu kopieren

Siehe hierzu auch: Bash Wildcards

Passwortlose ssh-Authentifizierung

In Linux und Unix (also auch in macOS) kann man mit dem Kommandozeilen-Tool ssh-keygen ein Schlüsselpaar mir Public- und Private-Key anlegen, welches zur  Authentifizierung über ssh genutzt werden kann.

Über die Console bzw. das Terminal geben wir hierzu den Befehl ssh-keygen -t dsa ein

 1 | Sylvester:~ lisa$ ssh-keygen -t dsa
 2 | Generating public/private dsa key pair.
 3 | Enter file in which to save the key (/Users/lisa/.ssh/id_dsa): 
 4 | Created directory '/Users/lisa/.ssh'.
 5 | Enter passphrase (empty for no passphrase): 
 6 | Enter same passphrase again: 
 7 | Your identification has been saved in /Users/lisa/.ssh/id_dsa.
 8 | Your public key has been saved in /Users/lisa/.ssh/id_dsa.pub.
 9 | The key fingerprint is: [...]
10 | Sylvester:~ lisa$ cd ~/.ssh
11 | Sylvester:~ lisa$ ls
12 | id_dsa     id_dsa.pub

In Zeile 3 wird gefragt, wo man die Keys abspeichern möchte, als Antwort einfach Return drücken. Falls das Verzeichnis .ssh noch nicht existiert, wird es nun erstellt. Zur Passwortlosen Authentifizierung bei der Frage nach dem passphrase in Zeile 5 und 6 auch nur Return drücken (empty for no passphrase).

Im Verzeichnis ~/.ssh werden von dem Programm nun die zwei Dateien id_dsa und id_dsa.pub erstellt. id_dsa ist der Private-Key, id_dsa.pub der Public-Key. Der Private-Key sollte möglichst nicht in fremde Hände geraten.

Der Public-Key, also der Inhalt von id_das.pub muss nun auf dem Server in die Datei ~/.ssh/authorized_keys kopiert werden. Wenn der Ordner ~/.ssh oder die Datei noch nicht existiert kann man sie einfach erstellen.

Nachdem das alles erledigt ist sollte beim Login auf dem Server nicht mehr nach dem Passwort gefragt werden, da sich der Computer automatisch über die hinterlegten Keys authentifiziert.

Sylvester:~ lisa$ ssh techblog.7d0.de -l techlisa
Last login: Sat Jan 24 13:25:45 2009 from p0815ea9d.dip.t-dialin.net
Have a lot of fun...
techlisa@techblog.7d0.de:~>

Ich find´s praktisch und es soll ja auch sicherer sein, als die Authentifizierung mit Login und Passwort.

Zum Schluss noch die Manpage von ssh-keygen.