Archiv ‘Apple’

Sonntag, 25. Mai 2014

curlftpfs unter Mac OS X

Ergänzungen meiner IT-Installation machten es kürzlich nötig, dass ich neu auch unter Mac OS X curlftpfs einsetze, um per FTP von bestimmten Web-Sites Sicherheitskopien anzufertigen (Stichwort: Vagrant und puPHPet, dank an Christian für die „Erleuchtung“!)

Entweder hat sich curlftpfs in der Zwischenzeit weiterentwickelt, oder unter Mac OS X läuft der „Karren“ etwas anders. Auf jeden Fall habe ich bei der Adaptierung meiner Linux-Scripte unter Mac OS X folgendes gelernt:

MacPorts

curlftpfs installiert man sich folgendermassen:

# port install curlftpfs

Wenn man curlftpfs dann zum ersten Mal ausführt, warnt einem Mac OS X (hier: 10.9 Mavericks), dass man eine Kernelextension aktiviert, welche von einem unbekannte Entwickler kompiliert wurde. Henusode … (NSA lässt grüssen). Die Warnung ist seither nie mehr aufgetaucht; ich hoffe, dass dies auch nach einem Reboot so bleibt.

Geduldiges mounten

In Tests hat sich herausgestellt, das das Mounten von FTP-Volumen längert dauert als unter Linux. Meinem Script habe ich deshalb folgendermassen Geduld beigebracht:

...
MAXIMUMITERATIONS=5000
...
TIME=$(date +%H:%M:%S)
echo -n "Checking whether mountpoint is populated ($TIME): "

COUNTER=0
while [ ! -d "$SOURCE" ]
do
	let COUNTER=COUNTER+1
	echo -n "."
	
	if [ "$COUNTER" -eq "$MAXIMUMITERATIONS" ]
	then
		echo "Mountpoint still not available after $COUNTER iterations. Aborting."
		exit 1
	fi
done
...

In der Variable $SOURCE ist der Pfad zu einem auf dem FTP-Server vorhandenen Unterordner gespeichert. Sobald bash meldet, dass dieser nun verfügbar ist, kann ich mit den Kopieraktionen beginnen.

Zugriff verweigert

Bei den Tests traf ich auch auf ein Berechtigungsproblem: Manchmal wurde rsync beim Traversieren von FTP-Ordnerstrukturen der Zugriff verweigert. Nach einigem Pröbeln realisierte ich, dass einige Ordner auf den FTP-Servern das Execution-Bit nur für den Owner gesetzt hatten, nicht aber für die Gruppe oder gar Dritte. In einem Fall passte ich die Berechtigungen über den FTP-Client meiner Wahl an, in einem anderen Fall war ich mir todsicher, dass ich allen Serverbenutzern definitiv keine Berechtigung zum Lesen aller meiner Dateien geben wollte. Was nun?

Folgende Option verhindert, dass curlftpfs respektive FUSE bei FTP-Verbindungen Berechtigungschecks durchführen (dies ist hier Aufgabe des FTP-Servers — gibt dieser Zugriff auf eine Datei, hat definitiv schon eine zuverlässige Authentifizierung und Authorisierung stattgefunden):

$ curlftpfs -o defer_permissions ...

Zeichensalat

In meinem älteren Blog-Artikel zu curlftpfs habe ich gezeigt, wie der Zeichensatzproblematik unter Linux begegnen kann. Unter Mac OS X klappt dies so nicht. Stattdessen sind folgende Werte an curlftpfs zu übergeben:

$ curlftpfs -o modules=iconv,from_code=latin1

Quelle: International characters (e.g. Swedish åäö) in remote file system folder names makes Finder hang #71

Den Ausgabezeichensatz finden FUSE respektive curlftpfs offenbar selber heraus.

Dem Parameter from_code ist natürlich der Zeichensatz des FTP-Servers mitzugeben. Es sind alle iconv bekannten Zeichensätze konfigurierbar:

$ iconv -l

In Verbindung mit rsync führt dies aber zum unerwünschten Verhalten, dass Verzeichnisse und Dateien mit Umlauten im Namen bei jeder Synchronisation erneut heruntergeladen werden (ich bin unschuldig, das war ein anderer Benutzer des Servers!).

Tags: , , , , ,
Labels: Apple, Linux

Keine Kommentare | neuen Kommentar verfassen

Montag, 12. Mai 2014

„Delete VPN“-Button fehlt unter iOS 7

Da ich heute erfahren habe, dass ich mit iOS eine PPTP-VPN-Verbindung zu meinen DD-WRT-Router herstellen und mich und meine Daten so in öffentliche Funknetzwerken schützen kann, habe ich mich hinter die Konfiguration meiner drei iOS-Geräte gemacht.

Auf dem kürzlich bei einer Mitarbeiteraktion erstandenen iPad 4 64GB WiFi + 3G war unter Settings > General > VPN bereits ein VPN-Profil meiner Alma Mater erfasst (Ursache: Ich habe das Backup meines iPad 1 auf das neue iPad geladen, welches ich während meiner Studienzeit verwendet habe). Dummerweise fehlte dem Cisco IPSec-Profil der Delete VPN-Knopf zuunterst in den Konfigurationseinstellungen (via Tastendruck auf das runde i-Symbol). Was zum Teufel … Wie kriege ich dieses längst nicht mehr genutzte VPN-Profil von meinem iPad weg?

Einige Minuten Internetrecherchen später hatte ich die Lösung meines Problems gefunden: „Can’t Delete VPN Profile“ Fix

Kurz zusammengefasst geht es darum, Benutzernamen, Serveradresse, Secret, Passwort, sonstige Formularfelder sowie den VPN-Typ mit Phantasiewerten anzupassen und das Profil zu speichern. Beim nächsten Aufruf der Konfigurationseinstellungen strahlte mir der Delete VPN-Knopf dann wie gewünscht entgegen — und das Profil lag innert Sekundenbruchteilen im digitalen Nirvana.

Tags: , , , , , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 29. April 2014

Apples TextEdit unter Mac OS X Mavericks mit einer leeren, lokalen Textdatei starten

Sowohl unter Windows als auch unter Mac OS X starte ich die Text-Editoren notepad.exe respektive TextEdit.app mindestens einmal pro Tag, um formatierten Text in unformatierten Text umzuwandeln und so zwischen zwei Applikationen hin- und herzukopieren. Immerhin Microsoft Office verfügt mittlerweile über eine entsprechende Einfügen-Funktion, welche die Formatierungen automatisch entfernt. Doch für andere Anwendungsarten muss man weiterhin auf diesen lästigen Workaround zurückgreifen.

Unter Mac OS X wird dieses Unterfangen seit Mac OS X Mavericks deutlich erschwert, weil einem beim Starten von TextEdit nicht umgehend eine leere Textdatei entgegenstrahlt. Stattdessen fanden die Mac OS X-Entwickler (resp. deren übereifrigen Manager) die iCloud-Integration des neuen Betriebssystem offenbar so toll, dass sie den Benutzer immer zuerst fragen, ob er die neue Textdatei auf dem lokalen Rechner oder nicht aber doch lieber in iCloud ablegen möchte. Wenn einem dieses eher Microsoft zuzuschreibende Verhalten nicht den letzten Nerv raubt …

Um das vor Mavericks gewohnte Verhalten wieder hinzubekommen, behilft man sich der Kommandozeile:

defaults write -g NSShowAppCentricOpenPanelInsteadOfUntitledFile -bool false

Quelle: How to make TextEdit open with a blank file by default?

Tags: , ,
Labels: Apple

1 Kommentar | neuen Kommentar verfassen

Samstag, 29. März 2014

Die Datei mach_kernel im Finder ausblenden

Aus einem mir unerklärlichen Grund wird bei mir die Datei mach_kernel, welche den Mac OS X Kernel enthält, im Finder angezeigt:

mach_kernel

Mit folgendem Shell-Befehl wird die Datei im Finder inskünftig ausgeblendet:

# chflags hidden /mach_kernel

Via: mach_kernel now visible

Tags: , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 5. März 2014

Apple Time Capsule mit gestörter WiFi-Verbindung mit Mac OS X Mavericks

Vor einiger Zeit habe ich Mac OS X Mavericks auf meinem MacBook Air (Late 2010) installiert. Nach dem Update kämpfte ich mit einer gestörten WiFi-Verbindung zu meinem Apple Time Capsule Access Point und Router, welcher die Verbindung zum Internet herstellt. Selbst wenn der Laptop 30 Zentimeter neben den Access Point platziert wurde, verlor der Laptop immer wieder die Verbindung zum WLAN-Netzwerk.

Die einzige Lösung war schlussendlich, die Apple Time Capsule mit dem auf dem MacBook installierten Airport Utility von Version 7.6.3 auf 7.6.1 downzugraden. Hierzu muss man im Airport Utility mit gedrückter Option-Taste die Firmware-Versionsnummer mit der Maus anklicken und im Dropdown die gewünschte Firmware-Version auswählen (via Bug: AirPort Extreme 7.6.3 (Downgrade)).

Seit dem Downgrade funktioniert die WLAN-Verbindung wieder ohne jedwelche Komplikationen.

Tags: , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 3. November 2013

(Aus dem Archiv) Presetting second screen for VLC (VideoLAN Client) fullscreen playback

Der vorliegende Artikel habe ich ursprünglich irgendwann einmal ab 2002 auf meinem damaligen Linux-Entwicklungsserver im Web publiziert. Da ich das bloggen erst 2005 entdeckt habe, waren die Tipps in einer grossen HTML-Seite untergebracht. Anlässlich einer Aufräumaktion auf dem Server habe ich mich entschieden, die „Perlen“ über meine heutige Kommunikationsplattform ins Web zu posaunen. Seitdem ich die Artikel verfasst habe, sind viele Tage ins Land gegangen — ob der Artikel noch Gültigkeit hat, entscheidet der geneigte Leser selber.

Ever wondered how to preset video output screen in VLC (Videolan Client) permanently instead of switching to device two every time you fire up the client (Video > Video device > Screen 2)? I finally found the following hint at a support mailing list of the videolan developers:

The default screen can be set under

preferences >
modules >
interface >
video device

Tags: ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 3. November 2013

(Aus dem Archiv) Battlefield 1942 on Mac: Two hints for power-users

Der vorliegende Artikel habe ich ursprünglich irgendwann einmal ab 2002 auf meinem damaligen Linux-Entwicklungsserver im Web publiziert. Da ich das bloggen erst 2005 entdeckt habe, waren die Tipps in einer grossen HTML-Seite untergebracht. Anlässlich einer Aufräumaktion auf dem Server habe ich mich entschieden, die „Perlen“ über meine heutige Kommunikationsplattform ins Web zu posaunen. Seitdem ich die Artikel verfasst habe, sind viele Tage ins Land gegangen — ob der Artikel noch Gültigkeit hat, entscheidet der geneigte Leser selber.

Dual screen/display set up – run on secondary screen

It took me some time to figure out: Press and hold the ‚Apple‘-key and doubleclick on the Appliction icon (Note: This only seems to work with ‚Battlefield 1942.app‘ and not with ‚Battlefield 1942 The Road To Rome.app‘). Instead of launching the game, a small dialogue box comes up, where you can set the monitor on which the game should be displayed (aside, there are some other nice features like: play windowed, set resolution and refresh rate).

Bring up command console in the game

A lot of googling didn’t help – some sites mention the ~ key, others state ^ should be pressed, the third thinks it’s better to press the key above tab – nevermind, it’s < > on Mac!

Tags: , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 3. November 2013

(Aus dem Archiv) Backup my Mac OS X home directory with rsync

Der vorliegende Artikel habe ich ursprünglich irgendwann einmal ab 2002 auf meinem damaligen Linux-Entwicklungsserver im Web publiziert. Da ich das bloggen erst 2005 entdeckt habe, waren die Tipps in einer grossen HTML-Seite untergebracht. Anlässlich einer Aufräumaktion auf dem Server habe ich mich entschieden, die „Perlen“ über meine heutige Kommunikationsplattform ins Web zu posaunen. Seitdem ich die Artikel verfasst habe, sind viele Tage ins Land gegangen — ob der Artikel noch Gültigkeit hat, entscheidet der geneigte Leser selber.

Please be aware to use the special rsync-Version written for Mac OS X (fucking resource forks, again!). Otherwise you could end up with a mess (only on the backup side, but this sucks as much!).

I separated iPhoto-Files from the rest, because the .sparseimage wouldn’t fit on a DVD anylonger.

backup.sh

#!/bin/sh

if [ $# -lt 1 ]
then
	echo "Please provide a destination to store the backup to:"
	echo "fwdsk (Firewire-Drive)"
	echo "eth (Server-Share)"
	echo "tmp (/tmp)"
	exit 1
fi

case $1 in
	"fwdsk")
		IMAGEFOLDER="/Volumes/TRANSFER";;
	"eth")
		IMAGEFOLDER="/Volumes/RSYNC";;
	"tmp")
		IMAGEFOLDER="/tmp";;
	*)
		echo "Please provide a destination to store the backup to:"
		echo "fwdsk (Firewire-Drive)"
		echo "eth (Server-Share)"
		echo "tmp (/tmp)"
		exit 1;;
esac

if [ ! -d "$IMAGEFOLDER" ]
then
	echo "Directory '$IMAGEFOLDER' not found"
	exit 1
fi

BACKUPINFO=( "home" "iphoto" )

for VOLNAME in ${BACKUPINFO[@]}
do
	DISKIMAGENAME="$VOLNAME"
	DISKIMAGEPATH="$IMAGEFOLDER/$VOLNAME.sparseimage"
	
	BACKUPSOURCEFILE="/Users/mario/Rsync/bkpsrc/$VOLNAME.txt"
	
	if [ ! -f "$BACKUPSOURCEFILE" ]
	then
		echo "File '$BACKUPSOURCEFILE' not found"
		exit 1
	fi
	
	BACKUPSOURCE=`more $BACKUPSOURCEFILE`
	BACKUPDESTINATION="/Volumes/$VOLNAME"
	RSYNCEXCLUDE="/Users/mario/Rsync/exclude/$VOLNAME.txt"
	
	#-------------------------------------------------
	# Create/reuse & mount Disk-Image
	#-------------------------------------------------
	if [ ! -f "$DISKIMAGEPATH" ]
	then
		# Disk-image-file doesn't even exist - create it
		echo "Creating disk image \"$DISKIMAGEPATH\""
		hdiutil create -fs HFS+ -type SPARSE -size 20g -volname "$DISKIMAGENAME" "$DISKIMAGEPATH"
	else
		echo "Using pre-existing disk image \"$DISKIMAGEPATH\""
	fi
	
	if [ ! -d "$BACKUPDESTINATION" ]
	then
		# Disk-image doesn't seem to be mounted
		hdiutil attach "$DISKIMAGEPATH"
	fi
	
	#-------------------------------------------------
	# Did Disk-Image mount correctly?
	#-------------------------------------------------
	if [ ! -e "$BACKUPDESTINATION" ]
	then
		echo "There was a problem creating or mounting the disk image"
		exit 1
	fi
	
	#-------------------------------------------------
	# Rsync
	#-------------------------------------------------
	/Users/mario/Rsync/rsync.sh "$BACKUPSOURCE" "$BACKUPDESTINATION" "$RSYNCEXCLUDE"
	
	#-------------------------------------------------
	# Unmount Disk-Image and do maintenance operations
	#-------------------------------------------------
	# hdiutil info | grep /Volumes/$VOLNAME | cut -f 1
	# 
	# Expected output: /dev/disk2s2    Apple_HFS       /Volumes/Rsync-Backup
	#                  ^ this info is required to unmount
	
	DISKIMAGEDEVICE=`hdiutil info | grep /Volumes/$VOLNAME | cut -f 1`
	echo "Disk image mounted as $DISKIMAGEDEVICE"
	
	hdiutil detach -quiet "$DISKIMAGEDEVICE"
	echo "Disk image ejected"
	
	hdiutil compact "$DISKIMAGEPATH"
	echo "Disk image compacted"
done

rsync.sh

#!/bin/sh

if [ $# -ne 3 ]
then
	echo "Usage:"
	echo "rsync.sh   "
	exit 1
fi

BACKUPSOURCE="$1"
BACKUPDESTINATION="$2"
RSYNCEXCLUDE="$3"

if [ ! -d "$BACKUPSOURCE" ]
then
	echo "Source directory '$BACKUPSOURCE' not found"
	exit 1
fi

if [ ! -d "$BACKUPDESTINATION" ]
then
	echo "Destination directory '$BACKUPDESTINATION' not found"
	exit 1
fi

if [ ! -f "$RSYNCEXCLUDE" ]
then
	echo "Exclude file '$RSYNCEXCLUDE' not found"
	exit 1
fi

# --verbose
# --showtogo
# --dry-run
time sudo /usr/local/bin/rsync -a --delete --delete-excluded --eahfs --showtogo --exclude-from\
 "$RSYNCEXCLUDE" "$BACKUPSOURCE" "$BACKUPDESTINATION"

bkpsrc/home.txt

/Users/mario/.

bkpsrc/iPhoto.txt

/Users/mario/Pictures/iPhoto Library/.

exclude/home.txt

Music/
Movies/
PoisonDownloads/
Cache/
Caches/
.Trash/
Fun-Stuff/
.DS_store
iPhoto Library/

exclude/iphoto.txt

.Trash/
.DS_store

Tags: ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 3. November 2013

(Aus dem Archiv) phpMyAdmin-dumps downloaded through Safari

Der vorliegende Artikel habe ich ursprünglich irgendwann einmal ab 2002 auf meinem damaligen Linux-Entwicklungsserver im Web publiziert. Da ich das bloggen erst 2005 entdeckt habe, waren die Tipps in einer grossen HTML-Seite untergebracht. Anlässlich einer Aufräumaktion auf dem Server habe ich mich entschieden, die „Perlen“ über meine heutige Kommunikationsplattform ins Web zu posaunen. Seitdem ich die Artikel verfasst habe, sind viele Tage ins Land gegangen — ob der Artikel noch Gültigkeit hat, entscheidet der geneigte Leser selber.

ACHTUNG: Dem Artikel liegt wahrscheinlich Safari 1.x zu Grunde. Mittlerweile sind der Internet Explorer und der Firefox geschlagen und WebKit ist die dominante Plattform für’s Web-Browsing. Der hier erwähnte „Fehler“ ist längst behoben.

Somehow, the dump get’s fucked up because of the line endings. They’re all converted to \r. If you’re trying to restore the dump on a linux machine, nothing works. If you use the following command, everything should be fine:

tr '\015' '\012' < dump-mac.sql > dump-linux.sql

The other way ‚round … Converting linux- to mac-files:

tr '\012' '\015' < unix-format-file > mac-friendly-file

After you’ve treated your dumps, insert’em into your database:

mysql --user=user --password=password database < dump-linux.sql

Tags: , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 3. November 2013

(Aus dem Archiv) Remove Apple-specific files

Der vorliegende Artikel habe ich ursprünglich irgendwann einmal ab 2002 auf meinem damaligen Linux-Entwicklungsserver im Web publiziert. Da ich das bloggen erst 2005 entdeckt habe, waren die Tipps in einer grossen HTML-Seite untergebracht. Anlässlich einer Aufräumaktion auf dem Server habe ich mich entschieden, die „Perlen“ über meine heutige Kommunikationsplattform ins Web zu posaunen. Seitdem ich die Artikel verfasst habe, sind viele Tage ins Land gegangen — ob der Artikel noch Gültigkeit hat, entscheidet der geneigte Leser selber.

.DS_Store contains information on how to display folders; e.g. list view. Such files are of no use for Linux- and Windows-users. The following command finds all .DS_Store-files in the current directory and every subdirectory and deletes it immediately. I put it in a cron-job, which is performed every five minutes.

find . -type f -name .DS_Store -exec rm -f '{}' ';'

The next thing is about these fucking Resource Forks. If I could, I would travel back through time and eliminate the person who created it. Anyway, they’re among us now, and we can’t get rid of’em. Well, at least they serve no needs on a Linux-server, so it’s (usually) safe to delete them. As example, if you drag photos from iPhoto to a Samba-Share, not only the JPGs are stored, but also ._-files with thumbnails in it. Well then, good bye little bastards:

find . -type f -name ._* -exec rm -f '{}' ';'

Tags: , , , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen