seeseekey.net - Invictus Deus Ex Machina

Bei Homebrew handelt es sich neben MacPorts um einen Paketmanager für Mac OS X. Möchte man Homebrew wieder loswerden empfiehlt die offizielle FAQ folgendes Skript:

#!/bin/sh
# Just copy and paste the lines below (all at once, it won't work line by line!)
# MAKE SURE YOU ARE HAPPY WITH WHAT IT DOES FIRST! THERE IS NO WARRANTY!

function abort {
echo "$1"
exit 1
}

set -e

/usr/bin/which -s git || abort "brew install git first!"
test -d /usr/local/.git || abort "brew update first!"

cd `brew --prefix`
git checkout master
git ls-files -z | pbcopy
rm -rf Cellar
bin/brew prune
pbpaste | xargs -0 rm
rm -r Library/Homebrew Library/Aliases Library/Formula Library/Contributions
test -d Library/LinkedKegs && rm -r Library/LinkedKegs
rmdir -p bin Library share/man/man1 2> /dev/null
rm -rf .git
rm -rf ~/Library/Caches/Homebrew
rm -rf ~/Library/Logs/Homebrew
rm -rf /Library/Caches/Homebrew

Nach dem erfolgreichen Durchlauf des Skriptes, sollte Homebrew Geschichte sein. Dabei ist zu beachten, das dass Skript nur funktioniert, wenn Homebrew unter /usr/local installiert wurde, was allerdings der Normalfall sein sollte.

Bei Tweepy handelt es sich um eine freie unter der MIT-Lizenz lizenzierte Twitterbibliothek für Python, deren offizielle Webseite unter tweepy.org zu finden ist. Unter anderem wird diese Bibliothek für den Twitter Radiergummi genutzt. Im Gegensatz zu früher hat sich die Installation der Bibliothek etwas verändert. Hierfür sollte man jetzt pip nutzen. Dabei handelt es sich um ein Tool zur Paketverwaltung unter Python. Zur Installation gibt man im Terminal folgendes ein:

curl -O https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Damit ist pip installiert und kann genutzt werden:

sudo pip install tweepy

Pip installiert hiermit die Bibliothek Tweety und löst alle Abhängigkeiten auf, so das diese anschließend systemweit genutzt werden kann.

Seit der 3.0er Version von WordPress steckt in jedem WordPress die Möglichkeit aus dem normalen WordPress ein sogenanntes Multisite-Wordpress zu machen. Wenn man sich die aktuelle WordPress-Version auf den Webspace kopiert hat, wird diese ganz normal installiert. Nach der Installation wird der „wp-config.php“ folgende Zeile hinzugefügt:

define('WP_ALLOW_MULTISITE', true);

Durch das Hinzufügen der entsprechenden Optionen findet man in den Einstellungen unter Werkzeuge den Punkt Netzwerk-Einrichtung. Dort kann man die vorgegebenen Einstellungen so belassen und den Installationsbutton nutzen.

Die Netzwerk-Einrichtung unter WordPress

Nach der Installation kann das Multiuser-Wordpress theoretisch schon genutzt werden. Allerdings gilt das nur für den Fall das alle Blogs auf der gleichen Domain laufen. Für eine Installation welche mehrere Domains bedient, muss das „WordPress MU Domain Mapping“ Plugin genutzt werden.

Im ersten Schritt kann das Plugin wie gehabt über die WordPress Pluginverwaltung installiert werden. Allerdings beinhaltet die Installation dieses Plugins einen manuellen Teil. Die Datei „sunrise.php“ aus dem Plugin muss in den Ordner „wp-content“ kopiert werden. Bei einer Aktualisierung des Plugins muss dieser Schritt wiederholt werden. Nun muss die „wp-config.php“ angepasst werden. Dieser wird dabei:

define( 'SUNRISE', 'on' );

hinzugefügt. Nachdem man sich aus dem Multisite-Wordpress ein– und ausgeloggt hat, kann das Plugin genutzt werden. In den Optionen sollte man unter „Domain Mapping“ nur den Punkt „Permanent redirect (better for your blogger’s pagerank)“ aktivieren. Alle anderen Optionen können deaktiviert werden.

In der Netzwerkverwaltung wird eine neue Seite z.B. „example.org/seeseekey“ angelegt. Unter „Einstellungen -> Domains“ wird diese neue Seite mit der ID (2, 3, 4 und weiter aufsteigend) und der Domain hinzugefügt. Anschließend kann die Seite über die Domain aufgerufen und genutzt werden.

Manchmal hat man ein Skript geschrieben welches man systemweit aufrufen möchte. Dazu muss dieses natürlich „installiert“ werden. Genaugenommen handelt es sich bei der Installation nur um eine Kopie an den richtigen Ort im System. In diesem Fall ist das der Ordner „/usr/local/bin/“. Allerdings wird für ein solche Operation nicht „cp“ genutzt. Stattdessen wird dies mittels „install“ erledigt:

sudo install skript.sh /usr/local/bin/skript.sh

Damit wird das Skript in den entsprechenden Ordner kopiert. Daneben werden die Dateirechte und Attribute angepasst. Anschließend kann das Skript von allen Nutzern systemweit genutzt werden.

Weitere Informationen gibt es unter:
https://de.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

Möchte man eine Dropbox Alternative haben, bietet sich ownCloud an. Im ersten Schritt lädt man sich die Installationsdateien unter http://owncloud.org/ herunter. Es empfiehlt sich dabei die Installation auf einer Domain zu installieren, welche über ein SSL-Zertifikat verfügt. Damit ist die spätere Verbindung verschlüsselt und kann nicht ganz so einfach abgehört werden. Die entpackten Dateien werden anschließend auf den Webserver hochgeladen. Ist dies geschehen wird die passende URL zur Installation angesteuert:

https://example.org/owncloud/

Beim Ausführen des Installers kann es passieren das derselbe fehlende Dateirechte bemängelt:

Can't write into apps directory

This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file.

Wenn die Dateirechte korrigiert wurden sollte der Installer anschließend starten.

Der ownCloud Installer

Nach dem Ausfüllen der Felder für die Datenbank und dem administrativen Account kann der Installer abgeschlossen werden. Mit dem vergebenden Nutzernamen und dem entsprechenden Passwort kann sich dann eingeloggt werden. Verfügt man über ein SSL Zertifikat sollte man in den Einstellungen den Punkt „Erzwinge HTTPS“ aktivieren.

Für die lokale Synchronisierung muss der entsprechende Client installiert werden. Nach dem Start des Clients wird man aufgefordert, den entsprechenden Pfad zur ownCloud Installation, sowie seinen Nutzernamen und das entsprechende Passwort einzugeben. In den erweiterten Einstellungen kann auch der lokale Pfad verändert werden.

Die Servereinstellungen von ownCloud

Mit einem Klick auf den Button „Abschließen“ beginnt die Synchronisation. Was bei der Synchronisierung im leider nicht funktionert, ist die Nutzung mehrerer ownCloud Instanzen mit dem Sync-Client.

Um Piwik in die MediaWiki zu integrieren gibt es eine Extension die auf den „Piwik Integration“ hört. Das Problem dieser Extension ist das sie seit 2009 nicht mehr weiterentwickelt wurde. Bedingt dadurch funktioniert das ganze nicht mehr mit der aktuellen Media Wiki Version.

Abhilfe schafft hier die Extension „PCR GUI Inserts“ welche unter http://www.mediawiki.org/wiki/Extension:PCR_GUI_Inserts zu finden ist. Mit dieser Extension ist es möglich Code auf der MediaWiki einzubinden. Im Gegensatz zu anderen Verfahren, wie z.B. dem direkten editieren der Templatedateien funktioniert diese Lösung auch nach einem Update der MediaWiki Version weiter.

Für die Installation muss man dabei folgende Schritte befolgen:

  • Extension herunterladen
  • den entpackten Ordner in den „extensions“ Ordner der MediaWiki hochladen
  • die „LocalSettings.php“ bearbeiten

Bei der Bearbeitung der „LocalSettings.php“ muss nur die Zeile:

require_once( "$IP/extensions/PCRGUIInserts/pcr_guii.php" );

an das Ende der Datei angefügt werden. Danach ist die „PCR GUI Inserts“ Erweiterung aktiv. Nun muss nur noch der Piwik Tracking Code eingebaut werden. Dazu gibt es in der entsprechenden Wiki ein schönes Beispiel:

$wgPCRguii_Inserts['SkinAfterBottomScripts']['on'] = true;
$wgPCRguii_Inserts['SkinAfterBottomScripts']['content'] = '<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://piwik.example.com/" : "http://piwik.example.com/");
document.write(unescape("%3Cscript src=\'" + pkBaseURL + "piwik.js\' type=\'text/javascript\'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 2);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="http://piwik.example.com/piwik.php?idsite=2" style="border:0" alt="" /></p></noscript>';

Diese Zeilen werden dabei auch in die „LocalSettings.php“ geschrieben. Natürlich müssen die entsprechenden Domainnamen angepasst werden, sowie die passende Nummer für die zu trackende Webseite benutzt werden.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Piwik
http://de.wikipedia.org/wiki/MediaWiki

MacPorts kann man installieren und natürlich auch wieder deinstallieren. Zur Deinstallation öffnet man ein Terminal und gibt dort:

sudo port -fp uninstall installed

ein. Damit sind im ersten Schritt sämtliche Ports deinstalliert. Nun müssen nur noch die restlichen Spuren auf der Festplatte getilgt werden. Dies geschieht mittels:

sudo rm -rf \
/opt/local \
/Applications/DarwinPorts \
/Applications/MacPorts \
/Library/LaunchDaemons/org.macports.* \
/Library/Receipts/DarwinPorts*.pkg \
/Library/Receipts/MacPorts*.pkg \
/Library/StartupItems/DarwinPortsStartup \
/Library/Tcl/darwinports1.0 \
/Library/Tcl/macports1.0 \
~/.macports

im Terminal. Danach ist MacPorts deinstalliert.

Weitere Informationen gibt es unter:
http://guide.macports.org/chunked/installing.macports.uninstalling.html

Vor einiger Zeit hatte ich beschrieben wie man den „twitter-eraser“ unter Ubuntu installiert. Heute gibt es das ganze für Mac OS X. Dazu öffnen wir das Terminal und geben dort folgendes ein:

git clone https://github.com/ilf/twitter-eraser
git clone git://github.com/tweepy/tweepy.git
cd tweepy
sudo python setup.py install
cd ..
sudo rm -r tweepy/

Die weitere Einrichtung ist im Artikel der Installation für Ubuntu ausreichend beschrieben. Nun müssen wir nur noch einen Cronjob eintragen, damit das Skript regelmäßig ausgeführt wird. Dafür geben wir im Terminal:

EDITOR=nano crontab -e

ein und füllen die Datei mit folgendem Inhalt:

*/45 *    * * *   python /Users/seeseekey/radiergummi.py

Danach muss das ganze nur noch gespeichert werden (Strg + O) und anschließend kann „nano“ wieder beendet (Strg + X) werden. Damit ist das Skript eingerichtet.

In der IT Welt gibt es ja Grabenkämpfe was das beste System ist und so findet man Anhänger aller Fraktionen die sich gegenseitig die Köpfe einschlagen. Wobei „die Wahrheit“ doch sicherlich ein Stück trivialer ist, so das jeder sich das System suchen sollte mit dem er glücklich ist.

Bei mir sollte das ein Macbook Air werden. Im ersten Moment nicht wegen dem OS X, sondern wegen der Hardware die mir doch sehr zusagte. Nachdem das ganze bestellt und geliefert wurde, ging es ans erste Ausprobieren. Linux und Windows sind mir bekannt so das doch gewisse Abläufe fest verdrahtet waren/sind.

Ein Macbook Air

Die erste Sache die mir auffiel war der Bootvorgang. Im Gegensatz zu einem PC war dieser angenehm textlos, so das mich nur ein Apple Logo anschaute bis das System gebotet war. Bei anderen Rechner darf man in dieser Zeit ja schöne BIOS-Meldungen lesen und/oder sich an wechselnden Logos erfreuen.

Der ganze Start dauert etwa 10 — 15 Sekunden, auch sonst ist die gefühlte Schwubdizität auf einem hohen Level, keine störenden Kaffeepausen mehr in Aussicht. FileVault wurde gleich mitaktiviert und wirkt sich auch nicht fühlbar auf die Performance aus. Nachdem man ein bisschen mit dem System herumgespielt hat, kommen die ersten Sachen bei denen man sich als „Other OS“ Nutzer wundert:

  • Wo ist mein Backslash?
  • Warum zur Hölle kann ich das Terminal nicht zwei Mal starten?
  • Gibt es keinen vernünftigen Norton Commander Clone?
  • Wo sind die Einfüge– und Entfernentaste?
  • Wie installiert man eigentlich Software ohne den Appstore und wie deinstalliert man sie wieder?

Zu der „Backslash“ Problematik und diversen anderen Sonderzeichen werde ich sicherlich noch einen extra Artikel schrieben. Eine weitere Sache bei der man etwas verwirrt ist, ist wohl die Tatsache das man eine Anwendung nicht mehr als einmal auf bekommt. Besonders nervig ist das beim Terminal, zu mindestens bis zu dem Moment in welchem man feststelt das man mittelt „Cmd + T“ einen neuen Tab öffnen kann.

Eine andere Sache die recht störend war, ist das es augenscheinlich keinen vernünftigen „2-Panel“ Dateimanager für OS X gibt. Zwar gibt es Software wie „Path Finder“ und „Forklift“ aber das „Norton Commander“ Feeling will da nicht aufkommen. Schuld daran ist hauptsächlich die unzureichende Tastaturbedienung. Ich bin am Ende beim „muCommander“ gelandet welcher unter http://www.mucommander.com/ zu finden ist. Dabei handelt es sich um eine freie Java Anwendung.

Eine weitere Sache die man nach einer Weile drauf hat, sind die MacPorts. So kann man sich z.B. Gimp über MacPorts mittels:

sudo port install gimp

installieren. Die Softwareinstallation kann prinzipiell über vier Arten erfolgen:

  • App Store
  • Macports
  • dmg Datei herunterladen und in Programme Ordner schieben
  • Installer (*.pkg et cetera) herunterladen und ausführen

Das Deinstallieren unterscheidet sich dann auch je nach Intallationsart. Über den Appstore installierte Programme können direkt im Launcher deinstalliert werden, indem man mit der Maus etwas länger auf ein Symbol drücken. Bei den Macports sieht das ganze so aus:

sudo port uninstall gimp

Bei den Applikationen welche einfach nur in das Programmverzeichnis geschoben wurden, reicht es diese einfach aus diesem zu löschen. Allerdings kann es durchaus sein, das danach noch Konfigurationsdateien und ähnliches auf der Festplatte vorhanden sind.

Interessant wurde es dann wieder, als ich versucht einige Bash Skripte welche ich unter Linux in Benutzung habe, auch auf dem Mac auszuführen. Glücklicherweise ist das kein Problem, da es sich bei der Shell um eine Bash handelt. Die Skripte kann man im ersten Moment allerdings nur im Terminal ausführen, es sei denn man hängt ein „.command“ an den Dateinamen heran, dann geht das ganze auch von der grafischen Oberfläche.

Als Jabber Client musste „iChat“ herhalten und für IRC tut es erst einmal „LimeChat“. Die Installation von „Krusader“ und „Kdenlive“ über Macports schlug leider fehl, hier muss dann doch noch etwas geforscht werden. Alles in allem ein schönes Betriebsystem, wobei ich am meisten von der beleuchteten Tastatur begeistert bin ;)

Bei „twitter-eraser“ handelt es sich um ein Werkzeug (in Form eines Pythonskriptes) zum löschen von alten Tweets. Möchte man das Skript unter Ubuntu ausführen/einrichten sind folgende Schritte im Terminal nötig:

git clone https://github.com/ilf/twitter-eraser
apt-get install python-tweepy

Anschließend sollte man die Datei „radiergummi.py“ bearbeiten und dort die entsprechenden Limits einstellen. Für den „Consumer key“, das „Consumer secret“, den „Access token“ und das „Access token secret“ besucht man dann die Webseite https://dev.twitter.com/apps und generiert diese dort, indem man eine neue Applikation anlegt. Wichtig ist dabei das man in den Einstellungen den „Application type“ auf „Read, Write and Access direct messages“ stellt.

Nun muss nur noch der entsprechende Cronjob eingerichtet werden. Dazu wird mittels „crontab –e“ die entsprechende Datei geöffnet folgende Zeile hinzugefügt:

*/45 *    * * *   python /home/seeseekey/radiergummi.py

Damit wird das Skript alle 45 Minuten ausgeführt. Allerdings sollte man es vorher noch manuell ausprobieren und die Funktionsfähigkeit zu überprüfen. Kürzer sollte man die Cron Zeit im übrigen nicht einstellen, da per OAuth nur 350 Updates pro Stunde getätigt werden dürfen.

Weitere Informationen gibt es unter:
http://seeseekey.net/blog/8209
http://seeseekey.net/blog/8132
http://wiki.ubuntuusers.de/Cron