Seleniums “Info-Bar” verschiebt Click-Koordinaten?

Der Chrome zeigt während des Tests

Chrome is being controlled by automated test software

an? Das kann Dir die Click-Events verschieben (um etwa 100px nach oben) 🙄 Fix:

UPDATE: Ein paar Tage später sind die Koordinaten wieder verschoben; lag also nicht (nur?) daran!

(Runeaudio|moOde|Volumio) mit Hifiberry Amp2 auf Raspi 3B+

Setup: Ein Hifiberry Amp2 auf einem Raspberry 3 B+.

Frage: Welches OS nutzt man jetzt? Laut Internet stehen Volumio, RuneAudio und moOde. Alle drei basieren auf demselben Ursprungsprojekt, also ene mene muh:

Rune:

None of the existing Rune images will work on the new Pi 3B+.

  • Es gibt zwar einen (Stand heute; Tendenz steigend) 48 Seiten langen Thread zu einer “Beta”- (die sind alle beta, so what) Version aus Februar 2017, mit “Ich habe diese Datei geändert”, “Ich jenes Setting auskommentiert” – also das macht schon mal nicht viel Hoffnung… und tatsächlich: 0.4-beta_20170229 funktioniert auch nicht.

Also moOde:

  • muss kompiliert werden, direkt auf dem Pi, unter Raspbian Stretch Lite in der Version vom 13.3.2018 – “No other release is guaranteed to work.” 🙄 Die aktuelle Version ist vom 18.4.2018, aber ich habe die “alte” noch Rum liegen.
  • Also: 13.3.2018 installieren, starten, /boot wird zum Glück automatisch vergrößert, moOde benötigt mindestens 2.5GB. Dann:
    1. sudo wget -q http://moodeaudio.org/downloads/mos/mosbuild.sh -O /home/pi/mosbuild.sh
    2. sudo chmod +x /home/pi/mosbuild.sh
    3. sudo ./mosbuild.sh
    4. warten. Lange. Man bekommt keinerlei Fortschrittsanzeige. Und auch keinerlei Erfolgsmeldung; irgendwann ist der Pi halt aus 🙄
  • Ein Neustart zeigt:
    • Die Installation war tatsächlich erfolgreich
    • das UI ist Mist, bzw. nicht “mobile first” (was ja ok wäre), sondern eher ein “mobile only”
    • Lautstärke hängt bei 0%, lässt sich auch nicht ändern

Angesichts des UI habe ich dann auch keine Lust, mich weiter damit zu befassen.

Also Volumio:

  • Installation problemlos; als Device wird direkt “snd_rpi_hifiberry_dacplus” zur Auswahl gestellt, das ist korrekt:

If the software you’re using doesn’t provide the Amp2 as an output option, you should use the HiFiBerry DAC+ driver as the Amp2 is basically a DAC+ with an integrated power stage.

  • Aber: Lautstärkeregelung funktioniert wieder nicht!? Dieses mal hängt sie auf 100% 😐
  • Das UI hat ebenfalls Probleme: Es ist webbasiert und startet im Chromium, der dabei schon mal eine Fehlermeldung bringt, man hätte beim letzten mal nicht alle Tabs geschlossen. Hilfetexte sind hin und wieder leer. Ein WLAN, das auf 2.4 und 5 GHz sendet, wird doppelt angezeigt (ja, das liegt primär an den Einstellungen im Router, aber andere UIs bekommen das auch hin)
  • Es gibt “Plugins”, die sich aus dem Webinterface heraus installieren lassen – theoretisch. Das Plugin für TouchPanels etwa kann man nicht installieren, ohne vorher auf der Kommandozeile tätig zu werden. Warum?
  • Hat man das Touchpanel-Plugin installiert, bootet man aber automatisch in das Webinterface, wie kommt man dann in die Kommandozeile? Etwa per SSH, das aktiviert werden muss: Eine Datei “ssh” in der “boot”-Partition anlegen, oder unter http://volumio.local/dev/. User/Passwort sind volumio/volumio

Aber zurück zur Lautstärkenregelung: Laut Entwickler vom Hifiberry ist das ein Problem von Volumio, zumal alsamixer funktioniert. Und tatsächlich: Das Problem ist (indirekt) das UI. Man muss unter “Playback Options” → “Volume Options” → “Mixer Control Name” von “Analog” auf “Digital” wechseln und speichern. Das Pop Up a la “Alles gespeichert und neu gestartet” muss man ignorieren und den Pi neustarten.

Dann geht’s.

Firefox@Ubuntu: Clickverhalten der Addressbar wiederherstellen

Angenommen, ich bin auf www.google.com. Doppelklicke ich auf “google”, dann erwarte ich, dass “google” ausgewählt wird. Der Firefox (unter Ubuntu) wählt aber – und das schon beim ersten Klick – alles aus. Absolut nervig, und auch anders als überall sonst. Ich kann es nicht leiden, wenn Software schlauer sein möchte als der Benutzer 😠 Leider funktioniert Pale Moon immer schlechter, Renderfehler etc., aber das ist ein anderes Thema.

Also:

stellt das korrekte Verhalten wieder her. Und wenn man schon mal da ist, kann man direkt

setzen. Von.

Überlaufende Texte finden

Eine bessere Übersetzung Umschreibung für text-overflow ist mir nicht eingefallen 🙃

In jQuery ginge das so:

Cross-post; basiert auf den Antworten hier. Bonus: In Selenium geht das so:

bäm.

Selenium: Touchgesten simulieren

Wer mit Selenium Touchgesten simulieren will (hier: Pull-to-Refresh 🙂), der benötigt zuerst mal einen Browser, der Touch unterstützt:

Der Rest ist dann einfach:

(wenn man davon absieht, dass der vierte Parameter laut Sourcecode 0, 1 oder 2 sein sollte, nicht 200 – getestet mit selenium-java 3.9.1)

Javascript: “Pull to refresh”

Pull-to-refresh in (mobilen!) Webseiten nachzubauen, ist jetzt keine Raketenwissenschaft, aber doch so viel Aufwand, dass sich ggf. eine Library lohnt. Viele (? einige? apeatling, ember-gestures, …) bauen aber auf hammer auf, und das hat einen Bug (Beispiel, es gibt weitere Tickets) im Zusammenspiel von Panning (also dem “Pull” in “Pull-to-refresh”) und Scrolling. Zusammengefasst: Es geht nur eines von beiden. Mit ein wenig Drumherumgehacke bekommt man das etwas näher zusammengeführt, aber entweder kommt PanEnd dann gar nicht (was das “refresh” schwierig macht), oder bspw. die PanMove-Events kommen nicht zuverlässig (wodurch man den “pull” nicht 1:1 an den Finger des Nutzers hängen kann).

Ein npm-Modul, das nicht auf hammer aufbaut, wäre pulltorefreshjs (getestet mit 0.1.11 und 0.1.13):

In Ember sieht das als Komponente so aus:

Auf dem Handy sollte das so schon funktionieren. Auf dem Desktop hatte ich das Phänomen, dass Hochcrollen immer erst beim zweiten mal funktioniert hat (und auch dann nur, wenn zwischen Versuch 1 und 2 nicht zu viel Zeit lag). Weil: Die Lib immer beim Hochscrollen den Loader anzeigt, wenn man die Funktion shouldPullToRefresh nicht vom default !window.scrollY ummapt, bspw. auf

Hochscrollen geht sonst nur, so lange der Loader angezeigt wird 🙃

Neues Fenster in Web Apps

Anwendungsfall: Eine Bedienungsanleitung in Form eines PDFs in einem neuen Fenster/Tab öffnen. Internet sagt (hier am Beispiel Ember):

Das funktioniert grundsätzlich auch in Fullscreen Web Apps, aber da solche Apps keine Browsernavigation anzeigen, kommt man ggf. „nie wieder“ aus der geöffneten Seite raus. Abhilfe schafft

, was anleitung.pdf im „richtigen“ Browser anzeigt, statt innerhalb der App.