Archiv ‘Apple’

Sonntag, 8. März 2020

MacPorts s-nail unter macOS meldet „Cannot find a usable character set to encode message“

Kürzlich habe ich hier beschrieben, wie ich meinem iMac endlich beigebracht habe, E-Mails von der Kommandozeile zu versenden.

Heute dann die Erkenntnis, dass ein Cron- Launchd-Job folgende Fehlermeldung ins Log ausspuckt:

mail: Cannot find a usable character set to encode message: No such entry, file or directory
mail: ... message not sent

Ich habe mir dann den zu versendenden Mail-Body in eine Datei ausgegeben und überprüft, ob dort Nicht-ASCII-Charakter vorkommen (Unter Linux Nicht-ASCII-Charakter in einer Datei ausgeben). Volltreffer! Im E-Mail-Text finden sich deutsche und französische Umlaute, die als UTF-8 abgelegt sind.

Das Problem habe ich gelöst, indem ich /opt/local/etc/mail.rc um folgende Zeilen ergänzt habe:

...
set ttycharset=utf-8
set charset-8bit=utf-8
...

Seither klappt es mit dem Versand des E-Mails.

Meine Vermutung ist, dass bei launchd-Prozessen gewisse Umgebungsvariablen nicht mitkommen, die s-nail verwendet, um das Terminal-Charset zu eruieren.

Nachtrag

Die Fehlermeldung wird in Zeile 2334 des Source Codes generiert (Stand: 8. März 2020).

Tags: , , , , , ,
Labels: Apple

2 Kommentare | neuen Kommentar verfassen

Sonntag, 1. März 2020

Unter macOS High Sierra mit MacPorts, postfix und s-nail E-Mails versenden

Emails von der Kommandozeile versenden — was man bei Linux im Handumdrehen hinkriegt, erforderte bei mir unter macOS stundenlange Handstände.

MacPorts postfix anstelle macOS postfix

Doch jetzt habe ich den Kniff raus: Die von macOS mitgelieferte postfix-Installation habe ich schlussendlich ignoriert und auf das MacPorts postfix-Paket gesetzt.

MacPorts Variants nicht vergessen

Der erste Fallstrick lauert schon hier: Um heutzutage über einen Hoster E-Mails zu versenden, benötigt man zwingend SASL und TLS. Diese Features müssen als sog. MacPorts Variants explizit mitinstalliert werden, sonst landen sie nicht auf dem Mac:

# port install postfix +sasl +tls

Ansonsten meldet postfix:

...
Mar 01 14:16:11 imac postfix/smtp[70687]: warning: smtp_sasl_auth_enable is true, but SASL support is not compiled in
Mar 01 14:16:11 imac postfix/smtp[70687]: warning: TLS has been selected, but TLS support is not compiled in
...

Verzeichnisse und Pfade zur Sicherheit hardkodieren

Eine funktionierende postfix-Konfiguration mitsamt Installationsscript habe ich von meinen Linux-Servern herüberkopiert (diese Anleitung alleine würde das Format dieses Blog-Artikels sprengen). Die Konfiguration habe ich aber mit den MacPorts-Einstellungen ergänzt. Denke daran: Bei Linux liegen die Konfiguration sowie die Arbeitsverzeichnisse allesamt am erwarteten Ort (bspw. /etc/postfix/main.cf). Da wir unter macOS auf MacPorts setzen, liegt dieselbe Datei hier unter /opt/local/etc/postfix/main.cf. Deshalb habe ich zur Sicherheit in main.cf folgende von MacPorts vorgeschlagene Ergänzungen (siehe /opt/local/etc/postfix/main.cf.sample) hinzugefügt:

$ cat /opt/local/etc/postfix/main.cf
# Directories
queue_directory = /opt/local/var/spool/postfix
command_directory = /opt/local/sbin
daemon_directory = /opt/local/libexec/postfix
data_directory = /opt/local/var/lib/postfix
meta_directory = /opt/local/etc/postfix
manpage_directory = /opt/local/share/man
sample_directory = /opt/local/share/postfix/sample
readme_directory = /opt/local/share/postfix/readme
shlib_directory = no
html_directory = no

# Paths
sendmail_path = /opt/local/sbin/sendmail
newaliases_path = /opt/local/bin/newaliases
mailq_path = /opt/local/bin/mailq

# Log
maillog_file_prefixes = /var, /var/log/macports/postfix
maillog_file = /var/log/macports/postfix/postfix.log

# Other stuff ...
mail_owner = _postfix
setgid_group = _postdrop
default_privs = nobody
unknown_local_recipient_reject_code = 550
debug_peer_level = 2
...

Logs in eine Datei schreiben

Weiter hatte ich während dem Debuggen so meine liebe Mühe, die Logging-Informationen zu finden, da diese an syslog gesendet werden und bei macOS dann in der Console.app landen. Deshalb habe ich im Gegensatz zu meinen Linux-Installationen auch noch die Konfigurationsdatei /opt/local/etc/postfix/master.cf anpassen müssen. Essentiell war es, die folgende Zeile einzufügen:

...
postlog   unix-dgram n  -       n       -       1       postlogd
...

Quelle: Postfix logging to file or stdout

Verhindern, dass fälschlicherweise die macOS postfix-Konfiguration geladen wird

Damit mir die Parallelinstallation von Postfix nicht in die Quere kommt und ich mir sicher war, dass die MacPorts-Installation von postfix tatsächlich die Konfiguration unter /opt frisst, habe ich kurzerhand den macOS postfix-Ordner verschoben:

# mv /etc/postfix /etc/postfix.bkp

Ob das wirklich nötig gewesen wäre sei dahingestellt; Vorsicht, wer das auf seinem System macht: Ich garantiere für nichts.

Postfix starten und stoppen

Die Postfix-Installation lädt man folgendermassen:

# port load postfix
# launchctl unload /Library/LaunchDaemons/org.macports.postfix.plist
# launchctl load -w /Library/LaunchDaemons/org.macports.postfix.plist

Die plist-Datei zeigt als symbolischer Link nach /opt/local/etc/LaunchDaemons/org.macports.postfix/org.macports.postfix.plist. In dieser Datei habe ich folgendes angepasst/ergänzt — das ist nicht zwingend nötig, sollte aber dazu führen, dass Postfix bei jedem Neustart automatisch gestartet wird. Ausserdem sollten im Fall von Start-Problemen Fehlermeldungen in eine Log-Datei geschrieben werden:

...
        <string>--pid=none</string>
    </array>
    <key>Disabled</key>
    <false/>
    <key>KeepAlive</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/var/log/launchd.macports.postfix.standard.log</string>
    <key>StandardErrorPath</key>
    <string>/var/log/launchd.macports.postfix.error.log</string>
</dict>
</plist>

s-nail verwendet standardmässig die macOS mail-Executables

Anschliessend musste noch eine Mail-Programm her, welches erlaubt, den Absender eines E-Mails selber zu setzen. MacPorts bietet hierzu s-nail an (Homepage des Entwicklers).

# port install s-nail

Als ich mit s-nail ein Test-Mail versenden wollte folgte eine weitere Hiobs-Botschaft:

$ echo "Test email" | mail user@domain.tld
unknown: fatal: open /etc/postfix/main.cf: No such file or directory
/Users/user/dead.letter 7/135
mail: ... message not sent

Ich übertreibe nicht, wenn ich sage, dass ich Stunden mit Debugging verbracht habe. Bis ich plötzlich realisierte, dass s-nail die offiziellen Mail-Executables mail, mailx und/oder sendmail unter /usr/bin verwendet. Der Lackmus-Test: Wenn ich diese Mail-Executables manuell aufrief, erschien ein- und dieselbe Fehlermeldung.

Dies obwohl meine Bash PATH-Variable /opt/local/bin und /opt/local/sbin vor /usr/bin und /usr/sbin nennt, verwendete s-nail aus irgendeinem Grund standardmässig die letztgenannten Pfade.

Wie sage ich s-nail aber, dass es stattdessen die MacPorts mail-Befehle verwenden soll? Folgende Anpassung in /opt/local/etc/mail.rc war nötig:

...
set mta=/opt/local/sbin/sendmail

Absender (From:) der E-Mails selber festlegen

Anschliessend musste noch eine Mail-Programm her, welches erlaubt, den Absender eines E-Mails selber zu setzen. Ich verwende in Bash-Scripts sehr oft folgendes Konstrukt, und ich wollte sicherstellen, dass die Scripts sowohl unter Debian GNU/Linux als auch macOS laufen (Argument -a):

$ echo -e "Test" | $(which mail) -a "From: DNS Query Analyzer " -s 'Top 25 DNS Queries' user@domain.tld another.user@domain.tld

Ich habe leider eine schlechte, aber auch eine gute Nachricht. Die gute: Man kann auch unter macOS den Absender setzen. Leider aber nicht mit demselben Befehl wie unter Debian GNU/Linux.

Bei s-nail muss ich leider ein anderes Argument verwenden:

$ echo -e "Test" | $(which mail) -r "DNS Query Analyzer " -s 'Top 25 DNS Queries' user@domain.tld another.user@domain.tld

Postfix hat Probleme mit selber gesetzter Absenderadresse und SPF Records

Doch nun trat bereits das nächste Problem auf, wie ein Blick in die leere INBOX und in /var/log/macports/postfix.log zeigte:

...
Mar 01 15:43:59 imac postfix/smtp[81049]: 4D0E3FBBE221: to=<user@domain.tld>, relay=s000.cyon.net[149.126.4.000]:25, delay=20, delays=0.03/20/0.03/0.04, dsn=5.0.0, status=bounced (host s000.cyon.net[149.126.4.000] said: 550 SPF: 1.2.3.4 is not allowed to send mail from emeidi.com (in reply to RCPT TO command))
...

Faszinierend. Unter Linux hatte ich eine solche Fehlermeldung noch nie gesehen. Ich verwende für den Versand „offizieller“ E-Mails jeweils emeidi.com als Absenderadresse.

Schlussendlich blieb nur die Holzhammer-Methode. Ich verschob alle Konfigurationsdateien, welche auf meinen Linux-Installationen nicht existierten, von /opt/local/etc/postfix in den Unterordner _old. Schlussendlich sah das Verzeichnis so aus:

$ find /opt/local/etc/postfix/opt/local/etc/postfix
/opt/local/etc/postfix/_old
/opt/local/etc/postfix/_old/access
/opt/local/etc/postfix/_old/access.sample
/opt/local/etc/postfix/_old/aliases
/opt/local/etc/postfix/_old/aliases.sample
/opt/local/etc/postfix/_old/bounce.cf.default
/opt/local/etc/postfix/_old/canonical
/opt/local/etc/postfix/_old/canonical.sample
/opt/local/etc/postfix/_old/generic
/opt/local/etc/postfix/_old/generic.sample
/opt/local/etc/postfix/_old/header_checks.sample
/opt/local/etc/postfix/_old/LICENSE
/opt/local/etc/postfix/_old/main.cf.default
/opt/local/etc/postfix/_old/main.cf.proto
/opt/local/etc/postfix/_old/main.cf.sample
/opt/local/etc/postfix/_old/master.cf.proto
/opt/local/etc/postfix/_old/master.cf.sample
/opt/local/etc/postfix/_old/relocated
/opt/local/etc/postfix/_old/relocated.sample
/opt/local/etc/postfix/_old/TLS_LICENSE
/opt/local/etc/postfix/_old/transport
/opt/local/etc/postfix/_old/transport.sample
/opt/local/etc/postfix/_old/virtual
/opt/local/etc/postfix/_old/virtual.sample
/opt/local/etc/postfix/header_checks
/opt/local/etc/postfix/main.cf
/opt/local/etc/postfix/makedefs.out
/opt/local/etc/postfix/master.cf
/opt/local/etc/postfix/postfix-files
/opt/local/etc/postfix/sasl
/opt/local/etc/postfix/sasl/outgoing
/opt/local/etc/postfix/sasl/outgoing.db

In sasl/outgoing entfernte ich zudem den TCP-Port nach der Server-Adresse, und master.cf ergänzte ich mit Zeilen, die bisher nur unter Linux existierten.

Heureka

Und jetzt endlich kann ich mir von der Kommandozeile aus E-Mails senden. Hat nur geschlagene sechs Stunden gedauert.

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

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 15. Januar 2020

Mit einem Apple Smart Keyboard auf dem iPad die virtuelle Tastatur einblenden

Am Montag habe ich mein iPad Pro 9.7″ von 2016 mit einem baugleichen Occasionsmodell ersetzt.

Gründe waren, dass einerseits die Kapazität des Akkus spürbar abgenommen hat. Das wäre noch einigermassen zu verkraften gewesen. Doch seit ein paar Wochen habe ich Probleme mit dem Smart Connector im Zusammenspiel mit einer Logitech Base Ladestation und der Logitech Create Tastatur. Sowohl das Laden als auch die Tastatur funktioniert nur noch sporadisch. Und die Tastatur auch nur noch, wenn man das iPad in einem bestimmten Winkel zum Smart Connector-Anschluss hält.

Das neue „alte“ iPad konnte ich auf Ricardo für einen günstigen Preis ersteigern, insbesondere wenn man bedenkt, dass die Auktionsware mit einem etwas mehr als einem Jahr alten Apple Smart Keyboard für das iPad Pro 9.7″ geliefert wurde.

Im Gegensatz zur Logitech Create-Tastatur verfügt die Apple-Tastatur über keine Funktionstasten, und auch über keine Tastatur-Taste, welche unter iPadOS die virtuelle Tastatur auf dem Bildschirm anzeigen würde (Apple nennt diese „Software Keyboard“). Und so stand ich heute morgen das erste Mal vor dem Problem, dass ich mit angeschlossenem Smart Keyboard die Software-Tastatur anzeigen lassen wollte, aber nicht herausfinden konnte, wie man das macht.

Zwar hat Apple einen Support-Artikel „Use your Smart Keyboard Folio or Smart Keyboard with iPad Pro“ veröffentlicht, der auch auf diesen Punkt eingeht:

Switch to software keyboard

You might need to use your software keyboard instead of the Smart Keyboard Folio or Smart Keyboard to do things like type accented characters or use dictation. To show the software keyboard, tap the down arrow key on your Smart Keyboard Folio or Smart Keyboard, then touch and hold [Pfeil nach unten-Symbol] until the software keyboard appears. To hide the keyboard again, tap [Tastatur über Pfeil nach unten-Symbol].

Learn more about using iOS keyboards.

Der Hilfetext ist aber derart schlecht geschrieben, dass ich ihm nicht folgen konnte und es nicht geschafft habe, die Software-Tastatur anzuzeigen. Ich tippte wie blöd auf der Cursor-Taste herum, ohne dass sich auf dem Bildschirm etwas tat.

Erst nach dutzenden Minuten Recherche dann stiess ich auf folgendes YouTube-Video:

Wie beim iPad-Besitzer im Video war bei mir die Option „Shortcuts“ nicht aktiviert. Man findet sie unter Settings > General > Keyboard > Shortcuts.

Sobald die Option aktiviert ist, erscheint jedes Mal ein grauer Balken am unteren Ende des Bildschirms, wenn man durch tippen ein Texteingabefeld aktiviert. Und dieser Balken besitzt ganz rechts das gesuchte Pfeil nach unten-Symbol. Tippt man dieses Symbol an, erscheint die Software Tastatur auf dem Bildschirm:

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

Keine Kommentare | neuen Kommentar verfassen

Samstag, 9. November 2019

sed unter macOS an Hand von duplicity

Momentan gleise ich gerade die Migration von tarsnap mit Amazon S3 zu duplicity mit Backblaze B2 auf. Hauptgrund: Die verhältnismässig hohen Kosten.

Da MacPorts nur die veraltete duplicity-Version 0.7.17 liefert, welche mit folgender Fehlermeldung den Upload der Backup-Chunks verweigert …

Attempt 1 failed. AttributeError: B2ProgressListener instance has no attribute '__exit__'
Attempt 2 failed. AttributeError: B2ProgressListener instance has no attribute '__exit__'
Attempt 3 failed. AttributeError: B2ProgressListener instance has no attribute '__exit__'
Attempt 4 failed. AttributeError: B2ProgressListener instance has no attribute '__exit__'
Giving up after 5 attempts. AttributeError: B2ProgressListener instance has no attribute '__exit__'

… habe ich mir ein Script geschrieben, welches Version 0.7.19 herunterlädt, kompiliert und in meinem Heimverzeichnis installiert.

Diese Version wiederum hat aber leider das Problem, dass die shebang-Zeile in ~/Library/Python/2.7/bin/duplicity folgendermassen lautet:

#!/usr/bin/env python2
...

Meine MacPorts-Installation kennt kein Executable mit dem Namen python2 und duplicity stirbt deshalb mit folgender Fehlermeldung:

env: python2: No such file or directory

Mein Installationsscript passt das duplicity-Script nun mit sed, dem Stream Editor, an. Da mit macOS das BSD sed mitkommt und nicht das GNU sed, muss man für ein Inline-Replacement folgendermassen vorgehen, damit es klappt:

sed -i "" 's/env python2$/env python2.7/g' /Users/user/Library/Python/2.7/bin/duplicity

Die leeren Quotes nach -i müssen zwingend angegeben werden, ansonsten erscheint die nachfolgende Fehlermeldung (vgl. Sed: ’sed: 1: invalid command code R‘ on Mac OS X).

sed: 1: invalid command code m

Wer mehr über die Unterschiede in den verschiedenen seds erfahren will, liest sich folgenden Artikel durch BSD/macOS Sed vs. GNU Sed vs. the POSIX Sed specification.

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

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 22. September 2019

Mac-Laptop im Pool

Vor 30 Jahren kündigte Apple den ersten „tragbaren“ Macintosh an (das Gerät wog 7 Kilogramm). Dem us-amerikanischen Computer-Magazin MacUser kam darauf nichts besseres in den Sinn, als auf dem Titelbild des Magazins die Nutzung des Geräts … in einem Pool darzustellen:

MacUser Cover, Ausgabe vom November 1989

Quelle: THE MAC PORTABLE TURNS 30 sowie Mac Portable

Tags: , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 17. September 2019

iPhone 11 in einem Wort zusammengefasst

Als (ernsthafte) Hintergrundlektüre sei John Grubers Review des iPhone 11 und iPhone 11 Pro empfohlen:

Apple spent the vast majority of the stage time for the iPhone 11 and iPhone 11 Pro talking about their cameras. They spent no time — not a word — talking about phone calls. […] Driven by the iPhone, the word phone has simply taken on a new definition — a pocket-sized touchscreen personal computer with wireless networking and front- and rear-facing cameras capable of shooting photographs and video. Try convincing a six-year-old that a landline telephone is a “phone” — they won’t believe you.

Quelle: The iPhone 11 and iPhones 11 Pro

Tags: , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 3. September 2019

MacTeX-Download extrem langsam

Gestern wollte ich mir MacTeX 2019 herunterladen (veröffentlicht im Mai 2019). Das macOS Installations-Package für die LaTeX-Distribution ist mittlerweile sagenhafte 3.9 GB gross.

Als ich den Link tug.org/cgi-bin/mactex-download/MacTeX.pkg auf der offiziellen Download-Seite anklickte, tröpfelten die Daten nur Kilobyte-weise rein.

Nach etwas Recherche (einen Torrent-Link fand ich auf die Schnelle leider nicht) stiess ich dann auf die Homepage der Distribution auf CTAN. Dort wird stattdessen der Link mirrors.ctan.org/systems/mac/mactex/MacTeX.pkg angeboten, der per Zufall (oder nach geographischen Kriterien?) einen Mirror zum Download auswählt. Über den gestern Abend gewählten Mirror erreichte ich dann Download-Geschwindigkeiten von bis zu 10 MB/s und hatte das Paket dementsprechend in ein paar Minuten heruntergeladen. Der Web-Download über den offiziellen Link war zu dem Zeitpunkt erst bei 189 MB angelangt …

Tags: ,
Labels: Apple, IT

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 9. Juni 2019

Thoughts on Apple’s Find my (English)

(A friend of mine living in the US asked me about my thoughts on Apple’s upcoming Find my app announced at WWDC 2019 this week — that’s why this article is posted in English)

Links (preliminary reads)

My thoughts

In short: Very, very, very useful.

Once rolled out, this feature will help a lot of devices to be returned to their rightful owner, and probably will also lead to some arrests over times, as well as some very weird discussions with friends and family («Brother-in-law, I know my iPhone is in your house! What the f*** were you thinking?») …

Oh, and think about missing persons, unconscious or incapable of calling for help. You MIGHT find them as long as they’re not totally off the beaten track, even if they don’t have mobile reception. Interesting to see whether good hackers will try to improve their antenna designs to catch Bluetooth signals from miles away (if this is even physically and technically possible?).

Of course, this feature only works as long as your phone is charged, switched on and not damaged (as in hard- and/or software issues). A while ago, a friend lost his phone when „not fully sober“ in front of his condo’s building on a night it was snowing heavily. He found it two days later when the snow melted (after an oven session the thing switched on again and still works, yay!) … this technology would have helped him find it (probably) the morning after, when the phone still had a charge — given that he had access to a second device able to receive the Bluetooth beacon (or another person living in the neighbourhood passing by with his Apple device).

Some questions currently remain open:

  1. How safe is it? In theory it sounds bullet proof. My biggest fear is that hackers nevertheless might find vulnerabilities in the implementation once it is in the wild — looking at you, 36C3 and Def Con. I hope Apple will be able to fix such vulnerabilities with a quick software update …
  2. Does the Bluetooth beacon signal continue to work when Airplane mode is activated? I don’t see airlines tolerate Apple devices sending Bluetooth beacons on an airplane during start and landing. So the Apple devices will have to respect an activated Airplane Mode. If implemented this way, as an unwanted side effect, it will lead malicious persons to switch the device to Airplane Mode (works for iPhones and iPads, but not MacBooks AFAIK) immediately after finding/stealing it, to prevent the device to broadcasting it’s location. On a sidenote: If a device is NOT switched to Airplane mode and such beacons are caught by other devices during a flight, this would give some weird location readings :-)
  3. Will Apple extend this feature to a yet-to-be-introduced tag-like device, as in Bluetooth tiles? Then your tracking might not be limited to a phone anymore, but to anything that can be attached to something (e.g. Bluetooth tile to your keychain, sports bag, backpack etc.). This will totally crush the market for such tiles, because you won’t have to install a tile-specific app on your phone, let it run in the background on your device and hope that other people passing by the lost item also run the very same app to catch your tile’s distress signal …

Tags: , , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Montag, 11. Februar 2019

Apple, die AirPods 2, bitte. Jetzt!

Am 13. Dezember 2016 war es soweit: Dank eines selbstgestrickten Pingdom-Alarms, der um 15:08 Uhr — 8 Minuten nach Verkaufsstart — losging, gehörte ich vermutlich zu den ersten Schweizern, welche Apples kabellose Kopfhörer über deren Online-Shop bestellten. Am 20. Dezember 2016 trafen die Kopfhörer bei mir zu Hause ein — und ohne diese gehe ich seither selten bis nie aus dem Haus.

Aus meiner Sicht handelt es sich bei den AirPods um das vermutlich beste Produkt, welches Apple in den letzten etwas mehr als zwei Jahren herausgebracht hat. Geschlagen werden die Kopfhörer nur von Face ID (mit kleinen Schwächen). Anfänglich von vielen belächelt, sind die weissen Kopfhörer mittlerweile angeblich ein Statussymbol. Während ich im Dezember 2016 als Träger der Kopfhörer klar zu den Exoten im täglichen Pendlerverkehr gehörte, sind die „Stöpsel“ heute allgegenwärtig, vor allem im Grossraum Zürich.

Doch nun wäre es an der Zeit, dass Apple langsam mal die von der Gerüchteküche seit längerem vorausgesagten AirPods 2 veröffentlicht. Nicht, weil man die Dinger viel besser machen könnte (wobei — Apple, überrasch‘ mich!), sondern wegen einem viel trivialeren Problem:

Die Batterien meiner AirPods verfügen nur noch über einen Bruchteil der ursprünglichen Kapazität wenn voll geladen. Oder in Pendler-Distanzen ausgedrückt: Von der Abfahrt des 7:10 Uhr-Zugs von Bern nach Zürich, über Zürich HB, S-Bahn-Fahrt nach Zürich Hardbrücke, stirbt der rechte Kopfhörer jeweils irgendwann auf dem Fussmarsch von Zürich Hardbrücke zu meinem Arbeitgeber; oftmals auf der roten Passerelle über die Pfingstweidstrasse (also ca. um 8:25 Uhr). Der linke Kopfhörer schafft es jeweils höchstens noch bis zum Parking West, und dann ist auch dort Ende Feuer. Das ergibt eine Laufzeit von gut einer Stunde — und somit ein Bruchteil dessen, was frisch gekaufte AirPods liefern (gemäss Werbung halten die Dinger bis fünf Stunden).

Ich habe mir schon überlegt, die Batterien der Kopfhörer auszuwechseln. Das kostet gemäss Apples offizieller Seite knapp 55 Franken (oder insgesamt 110 Franken — bei einem Neupreis von 178.50). Doch damit zögere ich, weil gemäss der Gerüchteküche die neue Version vor der Türe steht. Am 21. März 2019 ist ja bekanntermassen der astronomische Frühlingsbeginn …

Tags: ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 3. Februar 2019

Installationsverzeichnis von MacTeX

Die Installation von MacTeX (der LaTeX-Distribution für macOS) findet sich standardmässig in folgendem Verzeichnis:

/usr/local/texlive

Hat man zudem vergessen, welche Version man installiert hat, hilft das Listing des Verzeichnisses:

$ ls -l /usr/local/texlive
total 0
drwxrwxr-x  20 root  wheel  680  1 Jan 19:42 2018
drwxr-xr-x   9 root  wheel  306  1 Jan 19:44 texmf-local

Der Ordner „2018“ signalisiert, dass MacTeX 2018 installiert ist.

Nachtrag: Will man eine neue Version von MacTeX installieren (bspw. die Version 2018 mit 2019 ersetzen), löscht man am Besten das Verzeichnis /usr/local/texlive

# rm -rf /usr/local/texlive

… und führt dann das neue macOS Installer-Package aus, welches man aus dem Internet heruntergeladen hat.

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

Keine Kommentare | neuen Kommentar verfassen