Tags it Wechsle die Anzeige der Kommentare | Tastatur-Bedienung

  • mc um 19:34 am 4. June 2014 Permalink | antworten
    Begriffe: , GPX, it, , workaround   

    GPX Datei in Google Maps anzeigen – v2 

    Hier habe ich “damals” ausgeführt, wie man einen GPS Track im GPX Format in Google Maps anzeigen kann. Leider funktioniert dieser Weg in der dort beschriebenen Form nicht mehr. Aber zum Glück habe ich einen neuen Weg gefunden ;)

    Man muss einfach das “alte” Maps zu nutzen. Dazu ist der Aufruf von Google Maps über die folgende URL erfolderlich: https://www.google.de/maps/ms?hl=de&authuser=0&msa=0&dg=feature – nun hat man wieder das alte Google Maps und ein Suchfeld, welches die Eingabe einer URL zu einer GPX Datei akzeptiert. Und für Bernd Bund (siehe Kommentare im alten Artikel) habe ich auch eine Lösung: wenn man keinen eigenen Webserver hat und die Funktion trotzdem nutzen möchte, so kann man seine GPX-Datei in die Dropbox hochladen und den Downloadlink in die Suchbox einfügen. Getestet – klappt!

     
  • mc um 08:23 am 23. May 2014 Permalink | antworten
    Begriffe: , it,   

    Security Update (KB2920189) Installation fails with ERR 0x800f0922 

    If you are trying to install the security Update KB2920189 (or KB2871690) on a Windows 8 or Windows 2012 Hyper-V Maschine (maybe the problem only occurs on Generation 2 Hyper-V VMs), you will get an Exception with Errorcode 0x800f0922.

    23.05

    There are two ways to solve this:

    That’s it :)

     
  • mc um 16:20 am 7. March 2014 Permalink | antworten
    Begriffe: , it, , raspberry pi   

    Raspberry Pi: SMS2Email Gateway mit AldiStick 

    Es ist mal wieder soweit. Ich habe einen neuen Handyvertrag und auch eine neue Handynummer. Dies nehme ich zum Anlass, meine “damalige” Anleitung zum Bau eines SMS2Email Gateways für die Synology Diskstation DS211j zu überarbeiten und für den Raspberry Pi auf Stand zu bringen. Die Tatsache, dass mein AldiStick bereits mit “Lösung 1″…

    Schön, unser Stick wird als USB-Datenträger erkannt. “Moderne” Linuxe erkennen diese Situation dank uDev und schalten den Stick automatisch in den Modem Modus – wir müssen das aber leider von Hand machen. Dazu gibt es zwei Möglichkeiten:

    • wir schalten den Stick auf einem Linux Rechner dauerhaft in den Modem Modus. Da hilft Google weiter. Oder dieser Link. Oder dieses PDF.
    • wir benutzen das Paket usb_modeswitch

    * Update: inzwischen hat es mich ziemlich genervt, dass ich den USB-Modus des Sticks nach jedem Reboot wieder manuell umschalten musste – zumal das per Init-Script irgendwie nicht funktionierte. Also hab ich dann doch mal “Lösung 1″ Ausprobiert und des Datenträger komplett deaktiviert:

    1. picocom /dev/ttyUSB1

    picocom v1.6
    port is : /dev/ttyUSB1
    flowcontrol : none
    baudrate is : 9600
    parity is : none
    databits are : 8
    escape is : C-a
    local echo is : no
    noinit is : no
    noreset is : no
    nolock is : no
    send_cmd is : sz -vv
    receive_cmd is : rz -vv
    imap is :
    omap is :
    emap is : crcrlf,delbs,
    Terminal ready
    ATZ
    OK
    ATI
    Manufacturer: huawei
    Model: E1550
    Revision: 11.608.13.01.52
    IMEI: 353443045652026
    +GCAP: +CGSM,+DS,+ES
    OK
    AT^U2DIAG=0
    OK

    Das wars. Beim nächsten Neustart ist und bleibt der Stick ein Modem…

    …dauerhaft in den Modem-Modus geschaltet ist, scheint mir das Leben dabei sehr leicht zu machen. (Aber vielleicht kaufe ich mir nachher im REWE auch einen “gesimlockten” Stick für 10€ und probiers damit auch mal.) Ebenfalls spielt mir das auf dem Raspberry Pi installierte Raspbian in die Karten – Debian in klein halt. Und so zeigte auch das Einstecken des AldiSticks das zu erwartende, aber dennoch überaus erfreuliche Ergebnis:

    [ 4.683102] usb 1-1.3: Product: HUAWEI Mobile
    [ 4.688842] usb 1-1.3: Manufacturer: HUAWEI Technology
    [ 4.699791] usb-storage 1-1.3:1.0: USB Mass Storage device detected
    [ 4.710090] usb-storage 1-1.3:1.1: USB Mass Storage device detected
    [ 4.752041] usb-storage 1-1.3:1.2: USB Mass Storage device detected
    [ 22.615306] usbserial: USB Serial support registered for generic
    [ 23.466525] usbserial: USB Serial support registered for GSM modem (1-port)
    [ 23.741833] option 1-1.3:1.0: GSM modem (1-port) converter detected
    [ 23.946533] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB0
    [ 24.167174] option 1-1.3:1.1: GSM modem (1-port) converter detected
    [ 24.357518] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB1
    [ 24.540019] option 1-1.3:1.2: GSM modem (1-port) converter detected
    [ 24.687946] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB2

    Das Modem wird erkannt. Und auch hier zeigt ein einfaches cat /dev/ttyUSB3, dass der Zugriff funktioniert:

    ^BOOT:45652026,0,0,0,87
    ^RSSI:8
    ^RSSI:8
    ^RSSI:0
    ^RSSI:7
    ^RSSI:7

    Die Installation der smstools ist auf dem Raspberry Pi ebenfalls erheblich unaufgeregter zu erledigen als auf der Diskstation. Denn im Gegensatz zu dieser gibt es für den Raspberry Pi entsprechende Pakete :) Bäm!

    pi@raspberrypi ~ $ sudo apt-get install smstools
    Paketlisten werden gelesen... Fertig
    Abhängigkeitsbaum wird aufgebaut.
    Statusinformationen werden eingelesen.... Fertig
    Die folgenden NEUEN Pakete werden installiert:
    smstools
    0 aktualisiert, 1 neu installiert, 0 zu entfernen und 3 nicht aktualisiert.
    Es müssen noch 0 B von 143 kB an Archiven heruntergeladen werden.
    Nach dieser Operation werden 414 kB Plattenplatz zusätzlich benutzt.
    Vorkonfiguration der Pakete ...
    Vormals nicht ausgewähltes Paket smstools wird gewählt.
    (Lese Datenbank ... 71276 Dateien und Verzeichnisse sind derzeit installiert.)
    Entpacken von smstools (aus .../smstools_3.1.14-1.2_armhf.deb) ...
    Trigger für man-db werden verarbeitet ...
    smstools (3.1.14-1.2) wird eingerichtet ...
    Starting SMS Daemon: smsd.
    pi@raspberrypi ~ $

    Das war’s auch schon fast! Nun muss man sich nur noch die Konfiguration zurechtstricken und – wenn man möchte – einen Eventhandler einrichten, der auf empfangene SMS reagiert. Die Konfiguration ist standardmäßig recht leicht verständlich, so dass ich hier nur die von mir angepassten Einträge der Datei /etc/smsd.conf aufzeigen möchte:

    devices = GSM1
    eventhandler = /usr/bin/smsevent
    [GSM1]
    device = /dev/ttyUSB0
    incoming = yes
    signal_quality_ber_ignore = yes
    init = AT+CPMS="ME"
    #Congstar
    smsc = 491710760000

    Die Werte für signal_quality_ber_ignore, init und smsc müssen jeweils für das verwendete GSM-Modem und die SIM-Karten bzw. den Provider angepasst werden. Da hilft Google weiter…

    Nun muss man sich nur noch einen Eventhandler (z.B. /usr/bin/smsevent) basteln und fertig ist die Laube!

     
  • mc um 11:28 am 6. March 2014 Permalink | antworten
    Begriffe: it,   

    SED – i love it! 

    Gut dass ich mir das damals mal aufgeschrieben habe! Mit sed lassen sich nicht nur einzelnen Zeilen, sondern auch ganze Dateien verarbeiten. Dieses Multiline-Pattern-Matching hab ich hier erklärt. Und heute konnte ich es nochmal selber brauchen.
    Die Aufgabe war, in Hunderten FTP-Server-Konfigurationsdateien den letzten Konfigurationsblock zu kopieren, darin ein paar Werte zu ändern und als neuen Block ans Ende der bestehenden Datei anzufügen. Und das ging dann so:

    for file in *.conf ; do sed -n -e '1h; 1!H; ${ g; s/\(.*\)\( Directory \/srv\/ftp\/ftp2\/.*\/xml .*\)$/\2/gi ; s/xml/html/gi ; s/_X_/_H_/gpi }' $file >> $file ; done

    Geil, oder?

     
  • mc um 12:25 am 4. March 2014 Permalink | antworten
    Begriffe: facebook, it, , ,   

    Facebook “Teilen” Cache leeren 

    Das kennt jeder Webentwickler und Webseitenbetreiber: man entwickelt und schraubt an seiner Website und klickt dann irgendwann mal auf “bei Facebook teilen” um auch diese Funktion zu testen. Und was macht Facebook? Es wird ein alter Stand der Seite angezeigt! Schlimmstenfalls noch irgendwas mit “Wartungsmodus” und “Schau in ein paar Tagen wieder vorbei!”. Das gleiche kann auch passieren, wenn man die Meta-Tags geändert oder ein Beitragsbild aktualisiert hat. Der Grund für dieses garstige Verhalten: Facebook speichert alle geteilten Seiten in einem Cache und holt sie bei erneutem Teilen von dort. Dieser Cache wird nach unbestätigten Informationen alle 24 Stunden erneuert. Man könnte also nun einfach 24 Stunden warten, oder aber den Facebook URL Linter aufrufen. Zum Einen erfährt man dort einige recht interessante Dinge über die eigene [oder eine fremde ;)] Seite, zum Anderen sorgt der Aufruf des Linters (was Linter auch immer bedeuten mag) dazu, dass Facebook den Cache augenblicklich aktualisiert.

    Und wenn man nun bei den köstlichen Frikadellen von ichzeigdirwiemanskocht.de auf “Teilen” klickt, dann werden auch die Frikadellen angezeigt – und nicht das Wartungsmännlein ;)

    [Der ursprüngliche Tipp stammt von Oliver Hauser/ ToolsNerd]

     
  • mc um 19:31 am 9. January 2014 Permalink | antworten
    Begriffe: it, , ,   

    Mails per bash herunterladen und als Datei speichern 

    Heute stand ich vor dem Problem, dass ich die Autoresponder-Mails eines Newsletter-Postfachs auslesen und auswerten wollte. Das Ganze natürlich per cronjob angetriggert und vollautomatisch. Es scheiterte zuerst an der grundsätzlichen Möglichkeit, Mails über POP3 abzurufen und als Textdatei zu speichern. Müsste doch gehen – ist doch Linux. Geht auch: fetchmail heißt das (quasi Standard-) Zauberwort. Fetchmail war mir aber zu aufgeblasen und wie man’s konfiguriert weiß ich auch nicht. Als Alternative fiel mir irgendwann getmail in die Hände – und schon war’s einfach…

    Zuerst mal getmail installieren und das Konfigurationsverzeichnis anlegen:
    $ sudo apt-get install getmail4
    $ sudo mkdir ~/.getmail

    Dann braucht man noch dort eine (simple) Konfigurationsdateim (~/.getmail/getmailrc):
    [retriever]
    type = SimplePOP3Retriever
    server = pop3.dein-server.de
    username = username@dein-server.de
    password = dEiNPassWOrt!

    [destination]
    type = Maildir
    path = ~/path/to/maildir

    [options]
    delete = true

    Der unter destination/path festgelegte Ordner muss über eine gültige maildir Struktur verfügen und die Unterordner cur, new und tmp enthalten. Mit
    $ getmail
    kann man nun an der Konsole Mails abrufen. Fertig ist die Laube…

     
  • mc um 16:54 am 1. January 2014 Permalink | antworten
    Begriffe: it, strato, ,   

    WordPress/ Jetpack/ “Service Temporarily Unavailable” 

    Beim Testen meines aktuellen Websiteprojekts http://www.art-of-mike.de stieß ich auf das Problem, dass die Login-Funktion (Facebook und Twitter) der Jetpack-Kommentarfunktion nicht funktionierte. Leider erschien die Fehlermeldung in schwarzer Schrift auf schwarzem Grund (*argh*), was die Fehlersuche etwas erschwerte. Aber irgendwann kam ich dahinter: 503 “Service Temporarily Unavailable”! Wie blöd?! Google förderte ein Posting von Servaholics zu Tage, wo das Problem beschrieben und auf die Strato-Sicherheitsfunktion “ServerSide Security” zurückgeführt wurde. Und in der Tat – nachdem ich in der Strato Paketverwaltung -> Sicherheit die “ServerSide Security” Filter abgeschaltet hatte, konnte man wieder mit Facebook- und Twitter-Login kommentieren. Schön, Mike freut sich – und für XALPS.DE und M8IN.DE konnte ich es auch gebrauchen ;-)

     
  • mc um 10:32 am 14. September 2013 Permalink | antworten
    Begriffe: , , , it,   

    Chrome Extensions selber schreiben – easy! 

    Hier war’s lange leise, ne? Ändert sich gerade! Letztes Wochenende war ich in Enzen beim traditionellen Herbstturnier als offizieller Turnierfotograf unterwegs. Hier geht’s zu den Bildern. Aber das nur ganz am Rande. Eigentlich wollte ich etwas über das Erstellen von Chrome Extensions schreiben. Warum? Chrome kann doch alles? Eben nicht! In meinem bisherigen Ex-Lieblingsbrowser Opera gab es einen Funktion die es dem Nutzer ermöglichte, eigene Suchmaschinen für die Adresszeile zu definieren. So konnte man z.B. durch die Eingabe von “e Rollschuhe” direkt die Suche nach Rollschuhen bei Ebay aufrufen. Ich hatte mir eine Kürzel definiert: a für Amazon, e für Ebay, m für GoogleMaps und w für Wikipedia. Kann Chrome nicht. Schade. Aber man kann Chrome erweitern! Also habe ich mir die Getting Started Doku angeschaut und flux die Extension “ConziSuperSearch” geschrieben. (mehr…)

     
  • mc um 10:57 am 25. July 2013 Permalink | antworten
    Begriffe: it, , mysql,   

    MySQL Datenverzeichnis verschieben. Leicht gesagt. 

    Auf meinem neuen Linux Webserver wollte ich – um mir das Datensicherungsgehähe zu vereinfachen – den Datenbankpfad für MySQL verschieben. Eigentlich ganz einfach, da nur der Eintrag datadir = /var/lib/mysql in der Datei /etc/mysql/my.cnf anzupassen ist. Blöderweise ließ sich nach dieser Anpassung der Dämon (mit Error 13 – Zugriff verweigert) nicht mehr starten. Schuld ist AppArmor, welches das neue Datenverzeichnis noch nicht kennt und den Zugriff dort hin blockiert.

    Zum Glück ist die Lösung einfach und hier gut dokumentiert. Man muss die AppArmor Konfiguration in der Datei /etc/apparmor.d/usr.sbin.mysqld um den neuen Datenpfad ergänzen. Dazu werden die folgenden Zeilen angefügt:

    /srv/mysql/ r,
    /srv/mysql/** rwk,

    Nach einem Neustart von AppArmor mit sudo service apparmor restart lässt sich dann auch myssql wieder starten: sudo service mysql restart

    Nochmals Danke an Matthias!

     
  • mc um 12:34 am 18. June 2013 Permalink | antworten
    Begriffe: it, ,   

    “multiline pattern matching” mit sed 

    Ich liebe sed. Und manchmal auch awk. Beide haben aber das Problem, dass man nicht einfach(!) mehrzeilige Pattern suchen und ersetzen kann. Dachte ich zumindest bis gerade eben. Aber man lernt ja nie aus – “hold space” ist das Zauberwort…

    But we can optimize this. Besides pattern space, sed also provides the so called hold space. This is just a temporary buffer on which no operations are performed. We can use this to read the whole input into it first and then replace the pattern space with the contents from hold space. That looks like this:

    sed -n ’1h; 1!H; ${ g; s/foo\nbar/bla\nblub/ p }’

    That first reads the first line from pattern space into hold space (1h) replacing all contents which currently exist in hold space. Then all lines except line 1 are appended to hold space (1!H). The reason why we cannot only use 1,$H is that this would result in a blank line at the beginning since hold space has not been emptied. As soon as the end of the string is reached (range marker $), a subclause is opened which writes contents from hold space into pattern space (g) and does the replacement. Because we have read everything into hold space and then into pattern space, we would get double output. To avoid this, the parameter -n (no output) is set and the edited final string is printed manually with the p command from within the subclause. This method works remarkably well, but you should note that it is much slower if the stream/file is very long. One advantage of sed over many other tools is that it reads line by line, so it doesn’t take more memory when working on long strings. This advantage is abrogated with this method. Keep that in mind.

    Danke an Janek Bevendorff, der mein IT-Leben mit diesem Post echt leichter gemacht hat ;-)

     
c
Compose new post
j
Next post/Next comment
k
Previous post/Previous comment
r
antworten
e
bearbeiten
o
Show/Hide comments
t
Go to top
l
Go to login
h
Show/Hide help
shift + esc
Abbrechen