E-Mails loggen statt senden mit MAMP etc.

default

Von: Mo am um Uhr.

Bei lokaler PHP-Entwicklung (z.B. in MAMP) möchte man öfter mal E-Mails nicht wirklich verschicken, sondern einfach nur abspeichern lassen, zu Debugging-Zwecken usw.

So gehts: dieses Skript unter /usr/bin/phpmaillog abspeichern:

#!/usr/bin/php
<?php

// Speicherort:
$log_file = '/Users/{me}/Desktop/phpmaillog.txt';

$log_content = '';

$pointer = fopen('php://stdin', 'r');
while ($line = fgets($pointer)) {
    $log_content .= $line."\n";
}
$log_content .= "\n\n=============================\n\n";

//* Write the log
file_put_contents($log_file, date('Y-m-d H:i:s') . "\n" . $_ENV['PWD'] . "\n" . $log_content, FILE_APPEND);

Dann Schreibrechte vergeben: sudo chmod +x /usr/bin/phpmaillog und in der php.ini (MAMP Pro: Ablage > Vorlage editieren > PHP > PHP 5.x.x ini, richtige Version beachten!) diese Zeilen suchen:

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

… und ändern in …

[mail function]
; For Win32 only.
; SMTP = localhost
; smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
sendmail_path =/usr/bin/phpmaillog

Noch den Server neu starten und fertig: alle E-Mails, die MAMP-PHP dann verschicken möchte landen in der spezifizierten .txt-Datei und werden nicht verschickt.

Falls das jemand noch nicht kennt…

Von: Mo am um Uhr.

Webdeployment auf Uberspace mit git

default

Von: Mo am um Uhr.

Weil ich das jetzt endlich erfolgreich hingekriegt habe, möchte ich das hier mal teilen. Ich mache das aktuell auf einem Uberspace-Host, das funktioniert so ähnlich natürlich überall wo ssh und git verfügbar sind, das müsst ihr dann halt anpassen.

Was will ich haben?

Ich will die Möglichkeit in einem lokalen git-Repo auf meiner Maschine zu entwickeln und sobald ich das ganze dann auf den Uberspace-Server pushe, soll alles gleich live gehen. Oder anders ausgedrückt, nach einem git push auf den Uberspace-Server sollen alle Änderungen direkt in /var/www/virtual/______/html/ gespiegelt werden.

Wie?

mit einem kleinen Shellskript auf dem Uberspace; das sieht so aus:

#!/bin/sh

if [ -z "$1" ]; then
echo please define repo name
exit 0
fi

mkdir $1.git

cd $1.git
git --bare init

cd hooks/

echo #!/bin/sh >> post-receive
echo unset GIT_INDEX_FILE >> post-receive
echo export GIT_WORK_TREE=/var/www/virtual/{benutzername}/html/ >> post-receive
echo export GIT_DIR=/home/{benutzername}/$1.git/ >> post-receive
echo git checkout -f >> post-receive
echo echo post-receive-hook fired! >> post-receive
chmod +x post-receive

Da drin müssen wir natürlich {benutzername} anpassen.
Das Skript speichern wir in ~/bin (z.B. als "gitdeploy") und machen es ausführbar:

$  chmod +x ~/bin/gitdeploy

Jetzt können wir das Script jederzeit aufrufen; dazu geben wir einen frei wählbaren Projektnamen als Parameter an:

$  gitdeploy meinehomepage

Das Skript erzeugt daraufhin ein bare repository mit dem Namen meinehomepage.git inkl. dem dazugehörenden post-receive hook, der in /var/www/____/html/ bei jedem push ins Repo sofort einen pull aus selbigem verursacht.

Dann einfach noch das lokale Repo anlegen, die clone URL ist:

ssh://{benutzername}@{server}.uberspace.de/home/{benutzername}/{projektname}.git/

Vorsicht: vor dem ersten Push ins Repository dringend die Daten in html/ backuppen, sonst werden die evtl. überschrieben. Packt sie einfach nachträglich nochmal ins lokale repo, und pusht sie mit, dann geht nichts verloren und alles ist im Fluss.

Wenn ihr alles richtig gemacht habt, sollte in den git-Meldungen während dem Push die Zeile

remote: post-receive-hook fired!

… auftauchen. Wenn sonst keine Fehlermeldungen drin sind, sollte die neue Version der Seite schon live sein.

Neues aus dem Labor

800px-Alexey_Ukhtomsky_04

Von: Mo am um Uhr.

#1: ein kleines Nebenprodukt eines Jobs

WordPress Content Comments, ein Plugin, dass es einem ermöglicht Kommentare in WordPress Seiteninhalten zu vermerken, z.B. “// TODO: hier noch das Bild ändern”. Diese Kommentare werden im Frontend dann ausgeblendet und im Backend auf einer Übersichtsseite vermerkt. Besonders praktisch, wenn man mit mehreren Leuten Inhalte einpflegt.

Github: https://github.com/moritzjacobs/wp-plugin-boilerplate-config

#2: weil Plugins für WordPress schreiben auch Spaß machen kann

WordPress Plugin Boilerplate Config: Dieses Skript holt das großartige WP-Plugin-Boilerplate von Tom McFarlin aus Github und ändert schonmal alle Plugin-Namens- und Klassendefinitionen für das eigene Plugin ab.

Github: https://github.com/moritzjacobs/wp-plugin-boilerplate-config

rechtaufremix.org

Bildschirmfoto 2013-05-08 um 14.26.40

Von: Mo am um Uhr.

Im Rahmen der eben zu Ende gehenden re:publica 2013 launchte gestern auch Teil 1 meines Masterprojektes “rechtaufremix.org” im Rahmen eines Panels meines Projektpartners: in Kooperation mit der Digitalen Gesellschaft e.V. startet somit eine politische Kampagne für eine gesetzliche Verankerung von Remixrechten, bei der ich mich um Kommunikationskonzeption und Design, sowie Umsetzung der Website gekümmert habe.

Aus der PM dazu:

Mit dem Internet sind Remix und andere Formen kreativer Kopie Teil des kommunikativen Alltags breiter Bevölkerungsschichten geworden. Im aktuellen Urheberrecht sind Remix und Remixkultur allerdings nicht vorgesehen. Markus Beckedahl, Vorstand des Digitale Gesellschaft e. V., sieht deshalb Handlungsbedarf: “Ein Recht auf Remix ist inzwischen eine grundlegende Voraussetzung für die Kunst- und Meinungsfreiheit in einer digitalen Gesellschaft.”

Hier gibt es auch ein Video des Kick-Off-Panels.

Im Herbst gibt es dann Teil 2, man darf gespannt sein

 

Weitere Links:

http://www.rechtaufremix.org

http://www.facebook.com/rechtaufremix

http://twitter.com/right2remix

Abenteuer Mountain Lion

tropple

Von: Mo am um Uhr.

Am Dienstag ist mein neues MacBook geliefert worden. Nach dem Auspacken saß ich davor, mit meinem alten MacBook daneben und überlegte: Migrationsassistent wäre kurz und schmerzlos, aber oft nicht so zuverlässig. Außerdem hat sich über die Jahre viel Müll angestaut. Und: ich migriere von 10.6.x direkt auf 10.8.2, wer weiß, ob das gut geht… also: frisch aufsetzen.

Der Beginn eines Abenteuers.

Zunächst einmal muss man ja mal kucken, ob das System und seine Komponenten aktuell sind. Also Apple-Menü > Softwareaktualisierung. Es öffnet sich der unsägliche AppStore. Eine Apple-ID hat man ja, wenn man bei denen im Store sein Gerät gekauft hat ohnehin, dann hinterleg ich die da halt auch noch. Gut, dass ich bis dato noch keine geklaute Apple-Software installiert hatte *hüstel*. Dazu ein kurzes Fazit: Dieses Softwareupdate via AppStore funktioniert noch schlechter als sein Pendant zu 10.6-Zeiten (und früher). Vier Neustarts später (dank SSD wenigstens schnelle Neustarts) war das System dann doch auf dem aktuellen Stand.

Weiterhin vermisse ich für OS X sowas wie ninite.com. Aber dankenswerterweise empfiehlt mir alternativeto.net eine kleine Software namens Bodega. Die ist zwar skeuomorph-galore, aber sie tut was sie soll. Im Verzeichnis findet man die allergängigsten Free- und Shareware-Tools, die man so braucht und hat in den allermeisten Fällen einen One-Click-Installer. Wir nähern uns.

Während Bodega vor sich hin installiert, werfen wir mal einen Blick in die Systemsteuerung. Am allerwichtigsten: Scroll-Richtung wieder korrigieren. Das wurde umgedreht um den iOS-Leuten entgegen zu kommen, weil man denen ja seit Jahren vorgaukelt die Touchgesten unter iOS wären “natürlich” und “intuitiv”. Dass das nicht stimmt, muss keiner wissen; aber dass man jetzt hochscrollt, wenn man auf dem Trackpad mit zwei Fingern nach unten rutscht, will mir als Standardeinstellug nicht einleuchten. Den Haken findet man aber wenigstens schnell.

Was man nicht so schnell findet, bzw. nämlich überhaupt nicht, ist auch neu: Apple hält es augenscheinlich für unzumutbar, dass ein Zeichen beim Tippen wiederholt wird, wenn man auf der Taste bleibt. Nochmal: wenn ich einen Buchstaben, z.B. das F, auf der Tastatur gedrückt halte, dann erwarte ich “ffffffffffffff”; Mountain Lion macht “f” und glotzt blöd… Übrigens: das gilt auch für die Pfeiltasten. Um das zu beheben “genügt” folgender Terminal-Befehl:

defaults write -g ApplePressAndHoldEnabled -bool false

m(

Hab ich erwähnt, dass mein WLAN alle 10 Minuten einfach die Verbindung verliert? Dieses Problem hat in den einschlägigen Foren Verschwörungsstatus; viele haben es, keiner weiß warum und jeder hat eine Theorie. Es kursieren mindestens zwei Dutzend “Lösungsansätze”, eine obskurer als die nächste. Das geht von irgendwelchen Kernel-Extension-Patches über MTU-Settings bis zur Neuinstallation… jetzt das gruselige: es wird mit der Zeit besser. Mittlerweile macht es das nur noch bei mir daheim, alle paar Stunden mal. Mal sehen ob das irgendwann mal gepatcht wird.

Die User-Library wird einem auch wegversteckt übrigens.

Achja, und iCal. HAHAHAHA, was zum!?

Ihr macht mich fertig…

Mit diesem Nothelfer hier, kann man vieles von diesem Unsinn übrigens loswerden: Mountain Tweaks

Alles in allem hat Apple in ML (und vermutlich in Lion auch schon, das kann ich nicht beurteilen) so viel unnötigen Interface-Schnickschnack implementiert (die Icons von Dateien, die gerade erst kopiert werden haben einen Statusbalken und ein Abbruch-X; sinnlose Vollbild-Spaces, Notifications) und so viel von Gewohntem umgeschmissen (Kein Speichern-Unter mehr? WTF!?), dass man den Eindruck gewinnt, sie haben vielleicht zu viele Entwickler in der Design- und Usability-Abteilung sitzen, die in der Funktionalitäts-Abteilung dringend benötigt würden.

Sie haben es nämlich immer noch nicht auf die Reihe bekommen, dass OS X nicht alles schief anordnet, wenn man die Auflösung ändert oder einen externen Hauptmonitor absteckt. Festplatten auswerfen scheint immer noch höhere Magie zu sein. Usw. usf.

Über Adobe fang ich jetzt gar nicht erst an…

Vom 29C3 und den Geistern, die ich rief

Bildschirmfoto 2013-01-15 um 23.44.11

Von: Mo am um Uhr.

Türkischer Weihnachtspop ist auch was abgefahrenes. Vor allem nach Weihnachten in einem türkischen Backshop/Coffeeshop/unserem morgendlichen HQ zum Aufwachen, Sammeln und Frühstücken um dann gemeinsam zum Hamburger Dammtor zu pilgern. Jüngül Bells – eine flache Pointe, aber eine die gemacht werden muss. Wo bleibt mein Kaffee?

Der Irrsinn beginnt einige Tage vorher: Donnerstag Abend reisen wir per ICE in Hamburg an, verstauen unser Hab und Gut in einem Hotel der Marke „Design and Style“ (aaahahahaha) und machen uns gleich auf ins Kongresszentrum am Dammtor (CCH), in dem in diesen Tagen der 29. jährliche Chaos Communication Congress, kurz 29C3, stattfindet. Das CCH ist gut zentral gelegen, schön groß aber auch nicht zu groß und für einen C3 eigentlich perfekt. Schon nach wenigen Stunden sind die meisten Hacker mit der neuen Location versöhnt.

Ich mag jetzt hier gar nicht genau auf Vorträge, Workshops und sonst was eingehen, das ist im C3-Wiki ja hinreichend dokumentiert und da bloggen viele andere auch noch drüber. Nur eine kleine Bemerkung: ewi und ich waren vor 10 Jahren auf unserem ersten C3 und so wenig ich mich im Detail da dran erinnern kann (mein Langzeitgedächtnis ist quasi nicht vorhanden) so sehr habe ich jetzt den Eindruck, dass der Kongress im CCH wieder zu alter Form auflaufen kann. Spannend das alles. Die Welt ist ein Hackcenter, wo ist mein Lötkolben?

Tag 1 verlief trotz Anreise mit der Bahn ziemlich ereignislos. Ein paar gute Talks, ein paar schlechte, ein bisschen „socialisen“ und mit Flora-Mate vollgepumpt ab ins Bett und ausschlafen. Hier beginnt das Seltsame: Ich weiß jetzt gar nicht genau, wie ich das sagen soll, aber – also äh – in meinem Hotelzimmer spukt es. Also natürlich spukt es nicht, aber die Imitation ist hervorragend. Der Fernseher geht nachts von alleine an. Immer ein mal. Und nie zur selben Zeit und immer auf einem anderen Sender… ich weiß. Ich auch nicht.

(Weil du, werter Leser, vermutlich männlich bist und daher sofort nach Problemursachen und -lösungen suchen wirst, hier mein Vorgehen: Ausstecken von dem Fernseher geht nicht so einfach, da das so eine komische Konstruktion mit einer Wandverkleidung ist, in den er hineingelassen ist. Ich habe weiterhin sämtliche Einstellungsmenüs abgesucht und konnte nichts einem Timer ähnliches finden. ewi mutmaßte irgendetwas über Infrarotstreulicht von der Straße… Puh.)

An der Rezeption nahmen Sie die „Klage“ am Morgen von Tag 3 mit einem Schmunzeln auf. Sowas sei ja tatsächlich noch nie vorgekommen und man schicke einen Techniker, sobald einer verfügbar wäre. Dass dies nicht passiert ist, wurde mir eben, ca. 24 Stunden später durch die Blume gesagt, als ich beim Check-Out folgendes gefragt wurde: „Und, ist der Fernseher noch einmal von alleine angegangen?“. Dabei setzte die Rezeptionistin ein Gesicht auf, das ich vermutlich selber oft hatte, als ich während meinem Zivi die Medikamentenausgabe übernahm. „Sind die weißen Mäuse wieder da?“ – jetzt bin ich also einer von DENEN. Oh je.

Dieser Text folgt keiner weiteren Stringenz und/oder Logik.

Und hier gibt es noch ein paar wundervolle Impressionen vom C3, die die Lisa in Stift und Aquarell festgehalten hat – props dafür!

Circus Podcast #7

2012-12-05 23.48.29

Von: Mo am um Uhr.

Hallo, Freunde. Hier gibt es jetzt endlich mal wieder was von mir auf die Ohren. Bzw. nicht direkt hier, sondern drüben, beim Circus Homonovus.

Die siebte Session serviert uns Moritz Jacobs, freischaffender Multimedia-Designer, musikliebhabender Technosoph und laid-back DJ aus Augsburg. Sicher wird sein Podcast all diejenigen begeistern, die ihre musikalische Sozialisation mit HipHop verbracht haben — und noch heute wissend lächeln und anfangen mit dem Kopf zu nicken, wenn das Bumm-Bumm-Klack durch ihren Körper zuckt. Einfach laufen lassen und laufen lassen lassen: Tightes Mixing und Tracklist sprechen für sich.

So viel Lob, damit kann ich nicht umgehen (jetzt bin ich auch noch ein Technosoph! Wuah.) – vielen Dank an die Circusdirektoren und -dompteure und nie vergessen: “DJs act like they don’t know”.

Hier nochmal der Link zum Artikel
und hier der direkte Download

P.S.: Ich glaube das ganze wird es bald auch auf Mixcloud geben, dann kann ich das hier embedden. Tu ich dann auch.