Posts Tagged ‘Google’

Sonntag, 5. Februar 2017

imapfilter wechselnde Zertifikats-Fingerabdrücke ignorieren lassen

imapfilter funktioniert bei mir wunderbar, um in meiner INBOX eintreffende Mails automatisiert in Unterordner zu verschieben.

Dann und wann bricht das per Cron aufgerufene Script seine Arbeit aber ab, weil das Zertifikat des Mail-Servers gewechselt wurde:

imapfilter: certificate mismatch in non-interactive mode

imapfilter muss in einem solchen Fall interaktiv gestartet und das neue Zertifikat permanent akzeptiert werden.

Wen dieses Verhalten stört und die eindeutige Identifikation seiner Gegenseite weniger wichtig ist als ein sauber durchlaufendes Script, fügt oben an seine imapfilter-Regeln folgende Zeile ein:

...
options.certificates = false
...

Quelle: Ignore certificate fingerprint mismatch

Ich habe das bei mir nur für ein kaum genutztes Gmail-Konto aktiviert.

Das Problem könnte mit den hier geschilderten zwei gleichzeitig aktiven, unterschiedlichen Gmail-Zertifikaten zusammenhängen.

Tags: , , , , ,
Labels: Linux

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 21. September 2016

Irrtümlich gelöschte Google Kalender-Einträge wiederherstellen

Das geht ganz einfach: Auf der Web-Oberfläche klickt man auf den Pfeil-Button, um ein Dropdown mit den Eigenschaften des Kalenders anzuzeigen:

google-kalender-eigenschaften
image-6941

Dort klickt man auf „Papierkorb ansehen“ und erhält eine Liste der in den letzten 30 Tagen gelöschten Einträge:

google-kalender-papierkorb
image-6942

Einzelne Einträge kann man mit Klick auf die Checkbox links und dem Button „Ausgewählte Termine wiederherstellen“ am Ende der Liste wiederherstellen.

Tags: , , , , , ,
Labels: IT

1 Kommentar | neuen Kommentar verfassen

Freitag, 12. August 2016

Nicht alle Google-Kalender werden in Calendar.app auf iOS angezeigt

In solchen Fällen lohnt es sich, mit dem Browser als erstes folgende URL aufzurufen:

calendar.google.com/calendar/iphoneselect

Dort überprüft man, ob man den gewünschten Kalender tatsächlich zur Synchronisation mit iOS-Geräten (iPhone oder iPad) ausgewählt hat.

Quelle: HOW TO SYNC MULTIPLE GOOGLE CALENDARS TO YOUR IPHONE OR IPAD

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

1 Kommentar | neuen Kommentar verfassen

Sonntag, 22. Mai 2016

Wo speichert Apple iCloud-Daten?

In der Branche ein offenes Geheimnis:

iCloud Photos googleapis
image-6690

Derzeit greift Apple auf einen Mix von Amazon, Microsoft Azure sowie Googles Cloud zurück, um seine Internet-Dienste zur Verfügung zu stellen. Obiger Screenshot einer Meldung der Firewall Little Snitch belegt dies.

Tags: , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 30. April 2015

Google Updater unter OS X effektiv abwürgen

Um den Google Updater unter OS X effektiv und permanent abzuwürgen, empfiehlt sich folgendes Vorgehen:

$ cd ~/Library/LaunchAgents
$ chmod 0 com.google.keystone.agent.plist

Quelle: MacBook Pro keeps freezing, could Google Update be the cause?

Tags: , , , ,
Labels: Apple

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

Donnerstag, 13. November 2014

Google Maps in eigene Web-Site integrieren

Damit man Google Maps-Karten in die eigene Web-Site integrieren kann, benötigt man ein Google-Konto und Zugriff auf die Google Developers Console.

Dort findet man im Menupunkt APIs & Auth in der Unterrubrik APIs die „Google Maps Embed API“, welche man dort auch gleich für die Verwendung aktiviert.

Um Missbrauch zu verhindern, sollte man zudem im Menupunkt Credentials unter Public API Access einen API Key für die Google Maps Embed API erstellen und bei Referers dann die Domainnamen erfassen, von welchen die Requests für Kartendaten kommen dürfen (Referer lassen sich selbstverständlich fälschen, aber ich gehe davon aus, dass Google Gegenmassnahmen in seinen serverseitigen Embed-Code eingebaut hat).

Auf der eigenen Web-Site fügt man dann das iFrame beispielsweise folgendermassen ein:

<iframe
  width="850"
  height="550"
  frameborder="0"
  style="border:0"
  class="map"
  src="https://www.google.com/maps/embed/v1/place?key=%ApiKey%&q=Bern+Switzerland&zoom=10">
</iframe>

Quelle: Google Maps Embed API

Tags: , , , , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 18. Dezember 2013

Google crawlt einmal entdeckte URLs auf immer und ewig

Seit Monaten plagten mich die Log-Dateien eines von mir betreuten Web-Projektes: Bestimmte URLs wurden von Googlebot periodisch wiederkehrend aufgerufen, obwohl die Informationen dieser Web-Seiten vor langer Zeit deaktiviert worden waren (kurz: Die Objekte wie Personen und Referate waren nicht mehr in der Datenbank vorhanden und generierten beim Aufruf eine PHP-Exception, welche zwar abgefangen wurde, aber meine Log-Dateien vollmüllte) und das Script seit einigen Wochen einen HTTP 404-Fehler zurückgab.

Wie zum Teufel kam der Googlebot immer wieder auf diese verflixten URLs zurück?

Ich hatte eine verdächtige Subdomain des Projektes im Visier, welche eine archivierte Version der Web-Site bereitstellte. Deshalb passte ich die URLs auf dieser Web-Seite dort an und fügte ihnen eine GET-Variable hinzu, welche unmissverständlich aufzeigen sollte, ob der Googlebot die URLs von dieser Web-Site bezog. Leider stellte sich heraus, dass die Ursache des Übels nicht von dieser Web-Site herrührte.

Daraufhin wählte ich URLs aus, welche eine ganz bestimmte, möglichst einmalige Zeichenkette enthielten und gab diese in der Google-Suche ein. Tatsächlich lieferte Google die Seite der Web-Site als Resultat aus — obwohl die Seite seit Wochen HTTP 404 retournierte. Ein Blick auf den Zeitpunkt des Caches bestätigte, dass Google eine mehrere Wochen alte Version aufbewahrte, welche kurz vor dem Einbau der 404-Routine gecrawlt wurde.

Nun gut, sagte ich mir: Irgendwann einmal muss ja der Googlebot akzeptieren, dass eine URL permanent einen 404er zurückliefert und diese URL dann nicht mehr regelmässig anpingen. Falsch gedacht:

Once Googlebot finds and crawls a URL, they will periodically come back and crawl it again forever. Even after you remove the page and have been returning 404 status for years, Googlebot will still crawl the URL from time to time.

Quelle: Google Crawls my disabled products on my Magento website [closed]

So ist das. Gibt es also wirklich nichts, was ein besorgter Webmaster tun kann? Doch, durchaus:

I followed up on the 404 vs 410 thing with the team here. As mentioned by some others here & elsewhere, we have generally been treating them the same in the past.

However, after looking at how webmasters use them in practice we are now treating the 410 HTTP result code as a bit „more permanent“ than a 404. So if you’re absolutely sure that a page no longer exists and will never exist again, using a 410 would likely be a good thing. I don’t think it’s worth rewriting a server to change from 404 to 410, but if you’re looking at that part of your code anyway, you might as well choose the „permanent“ result code if you can be absolutely sure that the URL will not be used again. If you can’t be sure of that (for whatever reason), then I would recommend sticking to the 404 HTTP result code.

In the worst case, the 410 will be treated the same as a 404; in the best case it’ll be a bit quicker & stickier :-).

Quelle: Does it make sense to return a 410 instead of 404 when some page has been permanently removed?, Via: Does it make sense to return a 410 instead of 404 when some page has been permanently removed?

Ich passte also meinen try-catch-Block im Script an, welcher neu heisst:

...
header("HTTP/1.0 410 Gone");
...

Tags: , , , , ,
Labels: Programmierung

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 17. November 2013

Checkliste für die Aktualisierung des Profilbildes („Avatar“) auf den wichtigsten Social Media-Plattformen

Gestern habe ich am AvatarDay #5 von Pictura teilgenommen und bin so nicht nur zu einer kostenlosen Gesichtsmaske gekommen, sondern auch zu zwei netten Profilbildern (meine Facebook-Freunde werden es bereits bemerkt haben). Noch einmal ein grosses Danke an die Organisatoren für diesen tollen Anlass!

Nachfolgend eine Checkliste, um auch ja keinen personalisierten Internet-Service zu verpassen, auf welchem das Profilbild aktualisiert werden muss:

Internet-Anwendungen

  • Facebook
  • Twitter
  • Google+
  • Skype
  • Swisscom iO
  • What’s App
  • Viber
  • Last.fm
  • Foursquare
  • Gravatar
  • WordPress (resp. auf der eingesetzten Blogging-Software)

Desktop-Rechner

  • Apple Addressbook (synchronisiert sich Dank iCloud auf alle Macs und iOS-Geräte)
  • System Preferences > Users & Accounts (muss leider auf jedem Mac durchgeführt werden; sprich bei mir drei Mal)

Da ich für geschäftliche Internet-Services ein anderes Photo von mir verwende (mit Kravatte & Anzug), waren nachfolgende Web-Sites nicht relevant:

  • Xing
  • LinkedIn

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

Keine Kommentare | neuen Kommentar verfassen

Montag, 7. Oktober 2013

Mit Google Docs Spreadsheet eine Variable von einer Internet-Seite abrufen und als Zellwert verwenden

In Google Docs Spreadsheet ist es äusserst einfach, eigene Zellfunktionen zu definieren und diese danach mit einer JavaScript-basierten Funktion zu hinterlegen.

Ich habe mir diese Funktionalität zu Nutzen gemacht, um via meinen Linux-Server die aktuellen Gold- und Silberpreise in Schweizer Franken von einer Web-Site auszulesen und als „rohe“ Zahl an eine Zelle eines Google Docs Spreadsheet weiterzugeben. Basierend auf diesem Wert werden danach weitere Berechnungen in anderen Zellen angestossen.

Zuerst habe ich hierzu ein Spreadsheet eröffnet und sogleich unter Tools > Script editor… ein Script namens „Code.gs“ erstellt. Dort habe ich folgende (hier anonymisierte) JavaScript-Funktion abgelegt:

function getQuote(item) {
  if(item.length < 3) {
    return '#ERROR: parameter too short';
  }
  
  var response = UrlFetchApp.fetch("http://site.tld/index.php?item=" + item + "&raw=true");
  
  quoteRaw = response.getContentText();
  quote = parseFloat(quoteRaw).toFixed(2);
  
  return quote;
}

Anschliessend habe ich in der Zelle A1 den Wert „Gold“ hinterlegt. In Zelle A2 habe ich notiert „=getQuote(A1)“. Sobald man die Zelle A2 verlässt, versucht Google, die URL aufzurufen und die Antwort in eine Zahl umzuwandeln. Dies setzt natürlich voraus, dass das PHP-Script auf dem entfernten keinen HTML-Code zurückgibt, sondern Plaintext. Sobald Google die Funktion getQuote() aufruft, steht in der Zelle für ein bis zwei Sekunden „Thinking…“, während Google im Hintergrund meinen Server kontaktiert und die hinterlegte URL aufruft. Sobald der Wert empfangen wurde, wird dieser in der Zelle angezeigt.

Nebenbemerkung: Ja, den Umweg über meinen eigenen Server könnte ich mir selbstverständlich sparen. Ich bin mir es aber zu Schade, a) ausgedehntes JavaScript zu programmieren, zumal b) Google keine guten Debug-Werkzeuge im Script-Editor bereitstellt. Stattdessen verlasse ich mich auf PHP, Apache und auf dem Server installierte Linux-Tools mit ihren ausgefeilten Funktionen und einem sauberen Debug Logging.

Tags: , , , , ,
Labels: Programmierung

Keine Kommentare | neuen Kommentar verfassen