Dienstag, 16. Dezember 2014

YCombinator Hacker News Evergreen-Artikel automatisiert zu Instapaper senden

Im November 2014 publizierte Ben Autrey auf Contextly eine Liste der am höchsten bewerteten Hacker News-Artikel aller Zeiten.

Da er in seinem Blog-Post nicht direkt auf die eigentlichen Artikel, sondern nur auf die Hacker News-Kommentarseite verwies, investierte ich gestern einige Zeit, um die eigentlichen Artikel automatisiert meinem Instapaper-Konto hinzuzufügen.

Das Ergebnis inklusive einer Textdatei mit allen Links auf die eigentlichen Artikel (urls-articles.txt) finden interessierte Zeitgenossen in meinem Github-Repository.

Tags: , , , , , , , ,
Labels: Programmierung

Keine Kommentare | neuen Kommentar verfassen

Montag, 15. Dezember 2014

Wenn man das SWISS-Osterei partout nicht im Adventskalender 2014 finden kann …

… ja dann hilft nur die gute, alte Web-Entwickler-Konsole:

Swiss Adventskalender 2014

Tags: , , , , , , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Montag, 15. Dezember 2014

Wieder einmal: Wie ich Video-Streams von News-Sendungen herunterlade

Mittels eines Cron-Scripts lade ich jede Stunde alle YouTube-Links in meinen Remember The Milk-Taskliste auf mein NAS, damit ich diese dann zu Hause mit Air Video auf meinen Apple TV (und somit 55″ Plasma) streamen kann.

Manchmal komme ich aber auch an News-Beiträgen von Fernsehanstalten vorbei, welche nicht auf YouTube angeboten werden und mit youtube-dl nicht heruntergeladen werden können.

Um dieser Videos trotzdem habhaft zu werden ist (leider) noch einiges an Handarbeit nötig. In der Regel streamen Fernsehanstalten solche Inhalte als f4f (“F4F is Adobe’s fragmented MP4 or FLV file format for HTTP Dynamic Streaming”).

Als Beispiel nehmen wir ABC’s David Muir Exclusive Backstage Interview With Apple CEO Tim Cook.

Nachdem man die Web-Site im Browser der Wahl geöffnet hat, startet man die Web Developer-Konsole, schaltet auf die Ansicht der HTTP-Requests und startet anschliessend das Video. Im Chaos der aufgerufenen Assets suchen wir das sogenannte f4m-Manifest — eine XML-Datei, die dem Videoplayer sagt, wo er die Fragmente des Video-Streams findet.

Obwowhl ich Firefox längst totgeschrieben habe — ich habe die Erfahrung gemacht, dass dieser Browser die Netzwerkrequests am intuitivsten aufbereitet, um am schnellsten zum Ziel zu kommen. Nicht zuletzt, weil es eine Spalte mit dem Typ des Requests gibt, die es äusserst einfach macht, nach dem Typ f4m Ausschau zu halten.

Hier die Datei für obiges Video vom September 2014:

/tmp/temp_textmate.DgGpNM:2: warning: variable $KCODE is no longer effective; ignored
<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns="http://ns.adobe.com/f4m/1.0" xmlns:akamai="uri:akamai.com/f4m/1.0">
  <akamai:version>2.0</akamai:version>
  <akamai:bw>5000</akamai:bw>
  <id>/abcnews/2014/09/140909_wn_muir7_1837_,500,700,900,1200,1600,2000,2500,.mp4.csmil_0</id>
  <streamType>recorded</streamType>
  <akamai:streamType>vod</akamai:streamType>
  <duration>200.968</duration>
  <streamBaseTime>0.000</streamBaseTime>
  <bootstrapInfo profile="named" id="bootstrap_0">AAAAi2Fic3QAAAAAAAAAAQAAAAPoAAAAAAADEQgAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAACEBAAAARmFmcnQAAAAAAAAD6AAAAAADAAAAAQAAAAAAAAAAAAAXcAAAACEAAAAAAALuAAAAIwgAAAAAAAAAAAAAAAAAAAAAAA==</bootstrapInfo>
  <bootstrapInfo profile="named" id="bootstrap_1">AAAAi2Fic3QAAAAAAAAAAQAAAAPoAAAAAAADEQgAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAACEBAAAARmFmcnQAAAAAAAAD6AAAAAADAAAAAQAAAAAAAAAAAAAXcAAAACEAAAAAAALuAAAAIwgAAAAAAAAAAAAAAAAAAAAAAA==</bootstrapInfo>
  <bootstrapInfo profile="named" id="bootstrap_2">AAAAi2Fic3QAAAAAAAAAAQAAAAPoAAAAAAADEQgAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAACEBAAAARmFmcnQAAAAAAAAD6AAAAAADAAAAAQAAAAAAAAAAAAAXcAAAACEAAAAAAALuAAAAIwgAAAAAAAAAAAAAAAAAAAAAAA==</bootstrapInfo>
  <bootstrapInfo profile="named" id="bootstrap_3">AAAAi2Fic3QAAAAAAAAAAQAAAAPoAAAAAAADEQgAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAACEBAAAARmFmcnQAAAAAAAAD6AAAAAADAAAAAQAAAAAAAAAAAAAXcAAAACEAAAAAAALuAAAAIwgAAAAAAAAAAAAAAAAAAAAAAA==</bootstrapInfo>
  <bootstrapInfo profile="named" id="bootstrap_4">AAAAi2Fic3QAAAAAAAAAAQAAAAPoAAAAAAADEQgAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAACEBAAAARmFmcnQAAAAAAAAD6AAAAAADAAAAAQAAAAAAAAAAAAAXcAAAACEAAAAAAALuAAAAIwgAAAAAAAAAAAAAAAAAAAAAAA==</bootstrapInfo>
  <bootstrapInfo profile="named" id="bootstrap_5">AAAAi2Fic3QAAAAAAAAAAQAAAAPoAAAAAAADEQgAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAACEBAAAARmFmcnQAAAAAAAAD6AAAAAADAAAAAQAAAAAAAAAAAAAXcAAAACEAAAAAAALuAAAAIwgAAAAAAAAAAAAAAAAAAAAAAA==</bootstrapInfo>
  <bootstrapInfo profile="named" id="bootstrap_6">AAAAi2Fic3QAAAAAAAAAAQAAAAPoAAAAAAADEQgAAAAAAAAAAAAAAAAAAQAAABlhc3J0AAAAAAAAAAABAAAAAQAAACEBAAAARmFmcnQAAAAAAAAD6AAAAAADAAAAAQAAAAAAAAAAAAAXcAAAACEAAAAAAALuAAAAIwgAAAAAAAAAAAAAAAAAAAAAAA==</bootstrapInfo>
  <media bitrate="495" url="0_a3ed2f8d8e5b9694_" bootstrapInfoId="bootstrap_0">
    <metadata>AgAKb25NZXRhRGF0YQgAAAAMAAhkdXJhdGlvbgBAaR752yLQ5QAFd2lkdGgAQIAAAAAAAAAABmhlaWdodABAcgAAAAAAAAANdmlkZW9kYXRhcmF0ZQBAeSO4tL3p2AAJZnJhbWVyYXRlAEA99wg+h62+AAx2aWRlb2NvZGVjaWQAQBwAAAAAAAAADWF1ZGlvZGF0YXJhdGUAQFdnYcJYreUAD2F1ZGlvc2FtcGxlcmF0ZQBA5YiAAAAAAAAPYXVkaW9zYW1wbGVzaXplAEAwAAAAAAAAAAZzdGVyZW8BAQAMYXVkaW9jb2RlY2lkAEAkAAAAAAAAAAhmaWxlc2l6ZQBBZ8IggAAAAAAACQ==</metadata>
  </media>
  <media bitrate="694" url="1_a3ed2f8d8e5b9694_" bootstrapInfoId="bootstrap_1">
    <metadata>AgAKb25NZXRhRGF0YQgAAAAMAAhkdXJhdGlvbgBAaR752yLQ5QAFd2lkdGgAQIQAAAAAAAAABmhlaWdodABAdoAAAAAAAAANdmlkZW9kYXRhcmF0ZQBAgs/By82odgAJZnJhbWVyYXRlAEA99wg+h62+AAx2aWRlb2NvZGVjaWQAQBwAAAAAAAAADWF1ZGlvZGF0YXJhdGUAQFdnYcJYreUAD2F1ZGlvc2FtcGxlcmF0ZQBA5YiAAAAAAAAPYXVkaW9zYW1wbGVzaXplAEAwAAAAAAAAAAZzdGVyZW8BAQAMYXVkaW9jb2RlY2lkAEAkAAAAAAAAAAhmaWxlc2l6ZQBBcKoP4AAAAAAACQ==</metadata>
  </media>
  <media bitrate="894" url="2_a3ed2f8d8e5b9694_" bootstrapInfoId="bootstrap_2">
    <metadata>AgAKb25NZXRhRGF0YQgAAAAMAAhkdXJhdGlvbgBAaR752yLQ5QAFd2lkdGgAQIQAAAAAAAAABmhlaWdodABAdoAAAAAAAAANdmlkZW9kYXRhcmF0ZQBAiQ24xGUM/gAJZnJhbWVyYXRlAEA99wg+h62+AAx2aWRlb2NvZGVjaWQAQBwAAAAAAAAADWF1ZGlvZGF0YXJhdGUAQFdnYcJYreUAD2F1ZGlvc2FtcGxlcmF0ZQBA5YiAAAAAAAAPYXVkaW9zYW1wbGVzaXplAEAwAAAAAAAAAAZzdGVyZW8BAQAMYXVkaW9jb2RlY2lkAEAkAAAAAAAAAAhmaWxlc2l6ZQBBdXMc8AAAAAAACQ==</metadata>
  </media>
  <media bitrate="1194" url="3_a3ed2f8d8e5b9694_" bootstrapInfoId="bootstrap_3">
    <metadata>AgAKb25NZXRhRGF0YQgAAAAMAAhkdXJhdGlvbgBAaR752yLQ5QAFd2lkdGgAQIQAAAAAAAAABmhlaWdodABAdoAAAAAAAAANdmlkZW9kYXRhcmF0ZQBAkTU4pmS0SwAJZnJhbWVyYXRlAEA99wg+h62+AAx2aWRlb2NvZGVjaWQAQBwAAAAAAAAADWF1ZGlvZGF0YXJhdGUAQFdnYcJYreUAD2F1ZGlvc2FtcGxlcmF0ZQBA5YiAAAAAAAAPYXVkaW9zYW1wbGVzaXplAEAwAAAAAAAAAAZzdGVyZW8BAQAMYXVkaW9jb2RlY2lkAEAkAAAAAAAAAAhmaWxlc2l6ZQBBfKCEIAAAAAAACQ==</metadata>
  </media>
  <media bitrate="1593" url="4_a3ed2f8d8e5b9694_" bootstrapInfoId="bootstrap_4">
    <metadata>AgAKb25NZXRhRGF0YQgAAAAMAAhkdXJhdGlvbgBAaR752yLQ5QAFd2lkdGgAQIQAAAAAAAAABmhlaWdodABAdoAAAAAAAAANdmlkZW9kYXRhcmF0ZQBAl3KVnpj2SgAJZnJhbWVyYXRlAEA99wg+h62+AAx2aWRlb2NvZGVjaWQAQBwAAAAAAAAADWF1ZGlvZGF0YXJhdGUAQFdnYcJYreUAD2F1ZGlvc2FtcGxlcmF0ZQBA5YiAAAAAAAAPYXVkaW9zYW1wbGVzaXplAEAwAAAAAAAAAAZzdGVyZW8BAQAMYXVkaW9jb2RlY2lkAEAkAAAAAAAAAAhmaWxlc2l6ZQBBgxjZEAAAAAAACQ==</metadata>
  </media>
  <media bitrate="1993" url="5_a3ed2f8d8e5b9694_" bootstrapInfoId="bootstrap_5">
    <metadata>AgAKb25NZXRhRGF0YQgAAAAMAAhkdXJhdGlvbgBAaR752yLQ5QAFd2lkdGgAQJAAAAAAAAAABmhlaWdodABAggAAAAAAAAANdmlkZW9kYXRhcmF0ZQBAnbA4DHkwAgAJZnJhbWVyYXRlAEA99wg+h62+AAx2aWRlb2NvZGVjaWQAQBwAAAAAAAAADWF1ZGlvZGF0YXJhdGUAQFdnYcJYreUAD2F1ZGlvc2FtcGxlcmF0ZQBA5YiAAAAAAAAPYXVkaW9zYW1wbGVzaXplAEAwAAAAAAAAAAZzdGVyZW8BAQAMYXVkaW9jb2RlY2lkAEAkAAAAAAAAAAhmaWxlc2l6ZQBBh+GlUAAAAAAACQ==</metadata>
  </media>
  <media bitrate="2491" url="6_a3ed2f8d8e5b9694_" bootstrapInfoId="bootstrap_6">
    <metadata>AgAKb25NZXRhRGF0YQgAAAAMAAhkdXJhdGlvbgBAaR752yLQ5QAFd2lkdGgAQJQAAAAAAAAABmhlaWdodABAhoAAAAAAAAANdmlkZW9kYXRhcmF0ZQBAor16mqIiOAAJZnJhbWVyYXRlAEA99wg+h62+AAx2aWRlb2NvZGVjaWQAQBwAAAAAAAAADWF1ZGlvZGF0YXJhdGUAQFdnYcJYreUAD2F1ZGlvc2FtcGxlcmF0ZQBA5YiAAAAAAAAPYXVkaW9zYW1wbGVzaXplAEAwAAAAAAAAAAZzdGVyZW8BAQAMYXVkaW9jb2RlY2lkAEAkAAAAAAAAAAhmaWxlc2l6ZQBBjdrgaAAAAAAACQ==</metadata>
  </media>
</manifest>

Hat man die URL dieses Manifests ergattert (in diesem Fall ist es abcvod.abcnews.com/z/abcnews/2014/09/140909_wn_muir7_1837_,500,700,900,1200,1600,2000,2500,.mp4.csmil/manifest.f4m?g=SFHWHPOOGNQB&hdcore=3.5.0&plugin=aasp-3.5.0.151.81), verwendet man AdobeHDS.php, um die Stream-Fragmente automatisiert auf den lokalen Rechner herunterzuladen und danach zu einer MP4 oder FLV-Datei zusammenzuschustern:

$ php AdobeHDS.php --manifest "http://abcvod.abcnews.com/z/abcnews/2014/09/140909_wn_muir7_1837_,500,700,900,1200,1600,2000,2500,.mp4.csmil/manifest.f4m?g=SFHWHPOOGNQB&hdcore=3.5.0&plugin=aasp-3.5.0.151.81"

Tags: , , , , , , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Montag, 15. Dezember 2014

Googles 2-Step-Verification funktioniert nicht mehr

Heute morgen wurde ich von einem Angehörigen zu einem Supportfall gerufen: Er könne sich auf der Arbeit nicht mehr in sein Google-Konto einloggen, weil er die SMS mit den Zwei-Faktor-Codes aus unbekannten Gründen nicht mehr auf das Telefon zugesendet erhielt.

Googles Zwei-Faktor-Authentifizierung hatte ich ihm vor einigen Wochen eingeschaltet, nachdem gerade wieder Horror-Stories mit gekaperten Gmail- und Apple-Konten die Runden machten.

Es folgte ein halbstündiger Versuch von Fernsupport per iMessage, der mich fast zur Verzweiflung brachte: Als erstes erörtete ich die Möglichkeiten, dem Hilferufenden den SMS-Code über einen anderen Weg zu übermitteln — ein automatisierter Telefonanruf anstelle des SMS-Codes scheint für Schweizer Mobilfunknummern nicht angeboten zu werden. Die Option, 3 bis 5 Arbeitstage auf eine Rücksetzung des Kontos zu warten schlug ich ebenfalls aus.

Ich wendete mich deshalb dem Mobiltelefon zu: Wieso zum Teufel erhielt es die SMS nicht zugestellt? Die SIM-Karte stammt von Coop Mobile mit Prix Garantie, d.h. der Pre-Paid-Option. Coop Mobile ist ein MVNO, welcher über das Mobilfunknetz von Orange operiert. Ich weiss von bei mir eingerichteten Kalender-Alarmen, dass Google SMS aus dem Vereinigten Königreich versendet. Könnte es sein, dass Google die SMS derart krude oder illegal versendet, dass sie von Coop Mobile geblockt werden?

Google-Recherchen förderten ein älteres Problem mit einem rumänischen Mobilfunkanbieter zu Tage, bezüglich Coop Mobile/Orange fand ich aber keinen einzigen Beitrag.

Oder war die SMSC (SMS-Center-Konfiguration) des Handys etwa am Arsch?

Als erstes googelte ich nach Möglichkeiten, die SMSC-Konfiguration des iPhones anzuzeigen. Ich stiess dabei auf den Knowledgebase-Artikel Change or add the SMSC number to apple iPhone, welcher dem interessierten Frickler folgenden Code anbot:

*#5005*7672#

Ich probierte den Code auf meinem Gerät aus, erstellte Screenshots und versendete diese per iMessage an den Hilfesuchenden. Ich forderte meinen Angehörigen auf, diese Nummer einzugeben und anrufen. Als Antwort erschien auf dessen Display:

Abfrage der Einstellung fehlgeschlagen. Für Dienstcenter

Er fragte mich daraufhin, ob “mobile netz” eingeschalten sein müsste. Ich klarifizierte, dass Mobile Daten für den Empfang und Versand von SMS nicht benötigt würden. Doch diese Frage regte meine Gehirnwindungen an: “Wird oben links eigentlich Orange CH angezeigt?” — “Nein, nur VPN” — “Ja, schon klar, du bist auf der Arbeit, aber … links davon, steht da Orange CH?” — “Nein, dort steht SIM gesperrt”.

Ich nahm deshalb mein iPhone zur Hand und rief auf dessen Nummer an. Und tatsächlich erhielt ich die Meldung: “Der Teilnehmer ist momentan nicht erreichbar”. Voilà, kein Wunder kommen keine SMS an!

Wie sich herausstellte hatte die Person letzte Woche iOS 8.1.2 auf seinem Gerät installiert. Nach dem Neustart des iPhones wurde er zwar aufgefordert, die SIM-Karte zu entsperren, da er den Code aber nicht zur Hand hatte, vernachlässigte er die Meldung. Da er offenbar selten Telefonanrufe und SMS-Nachrichten erhält und im heimischen Netzwerk und im WLAN auf der Arbeit iMessage und alle anderen Internetdienste funktionierten, wurde die Person nicht misstrauisch.

Diese Anekdote ist wieder einmal eine Mahnung an uns Generation Internet und Smartphone: Die mobilen Technologien bringen eine ungeheure Komplexität mit sich, welche die älteren Benutzer weiterhin stark überfordert. Wenn das nur gut ausgeht …

Tags: , , , , , , , ,
Labels: Leben

1 Kommentar | neuen Kommentar verfassen

Sonntag, 14. Dezember 2014

MySQL-Query auf Dev blitzschnell, in Prod extrem langsam

Am Freitag habe ich mich entschieden, eine bisher nur auf meinem lokalen Mac mini in einem Vagrant-Container laufende Web-Applikation auf meinen “produktiven” Web-Server bei der Cyon GmbH zu verschieben.

Es handelt sich um eine Applikation, mit welcher Fragen einer Zertifizierungsprüfung mittels Multiple Choice beantwortet werden können. Eine Unterseite der Applikation berechnet aus dem Log der bisher getätigten Antworten Statistiken.

Nach einigen Minuten lief die Web-Applikation und der aktuellste MySQL-Dump war ebenfalls auf dem Server eingespielt. Doch dann kam das böse Erwachen: Beim Aufruf einer neuen Frage wartete ich unzählige Sekunden auf eine Antwort des Servers, bis die Ausführung des PHP-Scripts dann mit einem Timeout abbrach.

Was zum Teufel? Rasch war klar, dass ein SQL-Query zur Berechnung von Statistiken der Übeltäter war.

Auf Dev lief das MySQL-Query folgendermassen rasch durch:

[12-Dec-2014 13:22:18 Europe/Zurich] I - mysql->query() took 0.1694 secs in /var/www/apps/%APP%/inc/%APP%.class.php:343 for URI (Referer: unknown) from IP 192.168.1.1 with User Agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/600.1.17 (KHTML, like Gecko) Version/7.1 Safari/537.85.10"

Auf Prod hingegen loggte ich diesen Zeitwert:

[12-Dec-2014 12:40:18 Europe/Zurich] I - mysql->query() took 47.8917 secs in %PATH%%APP%.class.php:343 for URI <%URI%> (Referer: %REFERER%) from IP %IP% with User Agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/600.1.17 (KHTML, like Gecko) Version/7.1 Safari/537.85.10"

Eine Verlangsamung von mehr als dem 200-fachen!

Als erstes prüfte ich die Versionen der Datenbank-Software:

Dev

-- Server version	5.6.21-1~dotdeb.1

Prod

-- Server version	5.5.40-cll

Ich verwendete also eine Zehntelsversion bessere Datenbank.

Anschliessend liess ich mir das Query sowohl in Dev als auch in der Produktion “erklären” (EXPLAIN):

Dev

EXPLAIN-localhost

Prod

EXPLAIN-cyon

Der Unterschied: Auf Prod führte MySQL ein “Dependent Subquery” aus, auf Dev “nur” (?) ein “Subquery”. War das das Problem?

Da mir EXPLAIN hier nun wirklich nicht weiterhalf, wendete ich mich Google zu. Folgende zwei Stackexchange-Artikel erheischten meine Aufmerksamkeit:

Beim Lesen der Antworten kam mir plötzlich die Idee: Vielleicht sind INDEXe deine Freunde? Ich wählte die Spalte Questions-id (`Questions-id` varchar(64) NOT NULL, CLSIDs enthaltend) aus und versah sie mit einem Index.

Und siehe da, beim nächstem Aufruf der Web-Seite wurde folgender Zeitwert registriert:

[12-Dec-2014 23:33:09 Europe/Zurich] I - mysql->query() took 0.0412 secs in %PATH%%APP%.class.php:343 for URI <%URI%> (Referer: %REFERER%) from IP %IP% with User Agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/600.1.17 (KHTML, like Gecko) Version/7.1 Safari/537.85.10"

Der zusätzliche Index auf einer Spalte auf hat mein Performance-Problem zu meiner vollsten Zufriedenheit gelöst. Wieso der Index aber in Version 5.6 von MySQL nicht mehr benötigt wird, ist mir derzeit noch ein Rätsel. Wahrscheinlich haben die Entwickler die Subquery-Performance in dieser Version stark verbessert?

Tags: , , , , , , , , , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 14. Dezember 2014

Welche Adobe Flash-Version verwende ich?

In den letzten Wochen haben sich die Sicherheits-Updates für Adobes Flash-Frickelware wieder gehäuft. Ob ich das neuste Plugin auf einem Rechner installieren muss, sagt mir folgende Web-Site:

What is my Flash Player version? Is it up-to-date?

Die Web-Site Flash Tester liefert zusätzlich eine Chronologie aller Updates und verlinkt zudem auf eine offizielle, von Adobe gehostete Seite, welche die Version des aktuell installierten Flash-Plugins anzeigt, an Hand derer der Benutzer in einer Tabelle selber nachschauen muss, ob er schon Up-to-date ist:

Adobe — Flash Player Version Information

Meine Besucher entscheiden bitte selber, welche der beiden Web-Seiten nun benutzerfreundlicher ist … ich persönlich habe meine Meinung gebildet, und sie bekräftigt meinen Eindruck des Bloatware-Herstellers Adobe.

Tags: , , , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 25. November 2014

Eines der schlechtesten Tech-Videos in der letzten Zeit

Vor wenigen Tagen habe ich mir folgendes Referat an der JailbreakCon zu Gemüte geführt:

Ich bin auf das Video gestossen, weil wir einen neuen Plasma-Fernseher angeschafft haben, welcher selbstverständlich Full HD unterstützt — mein Apple TV 2 gibt aber nur maximal 720p aus. Während ich mich auf den einschlägigen Online-Plattformen nach einer Occasion eines Apple TV 3 umsah, realisierte ich plötzlich, dass Leute Unsummen für Apple TV 2-Geräte ausgaben. Rasch wurde klar, dass der Apple TV 3 offenbar (noch?) nicht “jailbreaked” werden konnte — nicht so wie sein jüngerer Bruder, der Apple TV 2.

Eine Web-Seite empfahl obiges Video, um mehr über den Jailbreak-Prozess zu erfahren. Ich habe es mir angeschaut und schlussendlich realisiert, dass ich 20 Minuten meines Lebens verdödelt habe. Was stört mich konkret an der Präsentation?

Nun, einiges: Die Lacher des Typs (Kevin Bradley) gehen einem äusserst rasch auf die Nerven. Ferner eiert er auf der Bühne sowas von rum, dass ich rasch einmal das Gefühl kriegte, dass er der Marketing-Dödel eines Geeks ist, der im Kämmerchen grosse Jailbreak-Arbeit leistet. Ausser Bulletpoints ablesen scheint er nichts zu können. Zusätzliches Indiz: Er trägt einen Anzug, sowohl im Referat als auch auf dem Photo im Interview. Kevin scheint den Zenit seines Schaffens längst überschritten zu haben, sonnt sich aber gerne im vergangenen Ruhm.

Tags: ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 25. November 2014

Der Exchange-Administrator meines Arbeitgebers kann mein privates iPhone wipen

Erst kürzlich habe ich realisiert, dass die Exchange-Administratoren in unserem Betrieb mein privates iPhone aus der Ferne vollständig löschen (“wipe”) können, sobald ich darauf die Exchange-Anbindung zum Zugriff auf mein geschäftliches Mailkonto konfiguriert habe. Das war mir neu:

… einerseits nachvollziehbar, andererseits auch äusserst gefährlich, weil einige Leute wertvolle Daten verlieren könnten, wenn sie diese nicht regelmässig auf iCloud oder mit iTunes auf ihren Rechner sichern.

Tags: , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 25. November 2014

Ubuntu von einem kleinen USB-Stick installieren

Kürzlich nahm ich mir vor, einen alten Windos-Laptop mit Jahrgang 2008 platt zu machen und stattdessen Ubuntu darauf zu installieren. Da Computer mit DVD/CD-Laufwerken in unserem Haushalt de facto nicht mehr existieren, konnte ich die Installation nicht mittels einer DVD durchführen.

Ich entschied mich deshalb, die Installation über einen USB-Stick zu starten. Leider hatte ich nur einen alten USB-Datenträger mit mickrigen 512 MB zur Hand (auf dem anderen USB-Stick im Haushalt liegt Mac OS X 10.9 Mavericks als Installationsmedium bereit). Doch selbst für diesen exotischen Anwendungsfall hat Ubuntu vorgesorgt:

Ubuntu Minimal

Ich lud mir dafür Version 14.10 herunter, welche wenige 39 MB wiegt.

Anschliessend schloss ich den USB-Stick an meinem Mac mini an und folgte der Anleitung How to install Ubuntu on MacBook using USB Stick, um die Installationsdateien auf den USB-Stick zu bringen. Das MacBook wollte ich dann aber doch nicht mit Linux verschandeln, weshalb ich der Anleitung nur bis Punkt 11 folgte.

Die wichtigsten Befehle lauten (sozusagen als Sicherheitskopie hier in meinem Blog, falls das Ubuntu-Wiki das Zeitliche segnen sollte):

$ hdiutil convert minimal.iso -format UDRW -o minimal.img
# diskutil unmountDisk /dev/diskN
# dd if=minimal.img of=/dev/diskN bs=1m
# diskutil eject /dev/diskN

Da ich in der Vergangenheit meine liebe Mühe mit bootbaren USB-Sticks hatte, war ich überrascht, dass der Toshiba-Laptop beim ersten Anlauf ohne zu zicken in den Ubuntu-Installationsmodus bootete …

Tags: , , ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Montag, 24. November 2014

Apples Greg Joswiak auf der re/code-Bühne

Normalerweise kommentiere ich meinen Medienkonsum hier auf meinem Blog nicht mehr wirklich, doch das hier muss zum Auftritt Greg Joswiaks an der diesjährigen re/code gesagt sein:

  • Die beiden Interviewer Ina Fried und Walt Mossberg lassen Greg andauernd wieder entwischen; wären die beiden wirklich gute Interviewer, würden sie nachhaken, Greg in eine Ecke drängen und ihn zu klaren Antworten zwingen. Aber es ist ja bekannt, dass Walt ein sehr, sehr gutes Verhältnis zu Apple hat.
  • Meine Optik hat mich nicht getrübt: Ina war früher Ian.
  • Kann sich Millionär Greg keine besseren Hemden leisten? Das Design dieses Hemds lässt einem alle Körperhaare zu Berge stehen.

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

Keine Kommentare | neuen Kommentar verfassen