Yamaha Fernbedienung programmieren

Seit 5 Jahren habe ich einen Yamaha RX-V671 Receiver, und beschwere mich seit dem, dass ich mit seiner Fernbedienung nicht den CD Player fernbedienen kann – ebenfalls ein Yamaha, ein CD-S 300. Stellt sich raus: Kann man doch. Und auch den Panasonic Plasma (ein TX-P42GW30) und den BD Player DMP-BD77EG-S. Funktioniert halt nur nicht per Kabel, wie damals zu meiner Zeit, sondern einfach per Programmierung über die Fernbedienung (eine RAV438, btw):

  1. “Code Set” oben rechts drücken; die Grüne LED sollte zwei mal kurz blinken.
  2. Den zu programmierenden Input wählen. Für TV heißt das: Den roten Power Knopf ganz unten im TV Panel. Für alle anderen (CD, DVD, …) heißt das, den entsprechenden Kanal zu wählen: HDMI1, 2, …, AV1, 2, … usw. Die LED blinkt ein mal.
  3. Den vierstelligen Code des Zielgeräts eingeben (lokale Kopie). Die LED blinkt wieder.

 

[Ubuntu] Dateien ohne Umbenennen ausblenden

Normalerweise würde man einen Datei foobar in .foobar umbenennen, um sie unsichtbar zu machen. Das ist natürlich nicht immer praktikabel.

Als Workaround für Nautilus kann man eine Datei .hidden anlegen, in der man alle zu versteckenden Dateien auflistet (Dateinamen mit Leerzeichen o.ä. kommen in Hochkommata, klar).

Das wird von ls so erst mal nicht berücksichtigt, man kann es ihm aber per

beibringen (Quelle), beispielsweise in der ~/.bashrc. UPDATE: Funktioniert nur mit ls, nicht mit bsplw. ls -al m(

PostgreSQL: Entity ID GenerationType migrieren

Angenommen, man möchte die ID einer Entity von

auf

migrieren, und dazu explizit eine Sequence in der Datenbank anlegen. Ein Migrationsskript könnte dann so aussehen:

Aaaber: IDs können negativ sein:

org.postgresql.util.PSQLException: ERROR: setval: value -91 is out of bounds for sequence “foo_bar_id_sequence” (1..9223372036854775807)

😄

Naheligende Lösung wäre, das SELECT in

zu ändern. setval geht allerdings per default aber beim nächsten Wert los, im Fall “1” (wenn gar keine oder nur negative IDs vorhanden sind) also bei 2. Das ist nicht direkt schlimm, aber uncool. Eine (umständliche!) Lösung ist eine Fallunterscheidung – und falls man die Migration viele viele male durchführen muss, verpackt man die Fallunterscheidung in einer FUNCTION:

Aufruf dann per:

Deutlich einfacher ist allerdings:

FALSE sorgt dafür, dass nicht der nächste Wert genommen wird, sondern genau dieser – und “+ 1” vermeidet einen Wert von 0, der ebenfalls out of bounds wäre.

Danke an Nils für’s vereinfachen! 🙂 Die umständliche Version bleibt trotzdem online als Template für PG Functions.

Ubuntu: Notifications deaktivieren

Ich bin offen für bessere Lösungen, aber

scheint zu klappen (von).