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).

Mikrotik hAP lite: LAN Port 1 nutzen

Port 1 ist eigentlich für’s WAN/Internet vorgesehen. Wenn man einen Client anschließt, wird man kein (nutzbares) Internetsignal bekommen. Um das zu ändern

  1. öffne man die Interfaces
  2. suche man “ether1”; das sollte auf “R” (Relay?) stehen
  3. suche man das “ether” Interface, das auf “RS” steht (bei mir “ether2”)
  4. öffne man “ether1” und setze den Master Port von “none” auf das gefundene Interface (hier “ether2”)

Um auf Port 1 wieder Internet zu haben, muss man das zurückändern, klar.

Pale Moon: User Agent setzen

Wer auf einer Webseite Probleme mit Pale Moon hat, während Firefox funktioniert, der kann den User Agent anpassen:

Ist, Beispiel:

Mozilla/5.0 (X11; Linux x86_64; rv:3.0) Gecko/20100101 Goanna/20161201 PaleMoon/27.0.1

Soll:

Mozilla/5.0 (X11; Linux x86_64; rv:3.0) Gecko/20100101 Goanna/20161201 FireFox/31.0 PaleMoon/27.0.1

Anwendung:

// about:config, new String:
general.useragent.override.some-subdomain.some-domain.tld: <user agent>

Ganz konkret hilft das zum Beispiel, die Outlook Web App nicht (automatisch und unbeeinflußbar) im “Lite”-Modus starten zu lassen.

UPDATE: In v27.0.2 ist das wieder der default, siehe Release Notes. Kommentar dazu:

people still insist on using useragent sniffing to determine “browser features” […] HTML offers plenty of ways to do proper feature detection; site owners should use them. Seriously people, it was a bad idea 20 years ago, and it’s a worse idea in 2016.

😂

Windows: Welcher Prozess blockiert eine Datei?

Wer mit Bordmitteln herausfinden will, welcher der bsplw. drölf “java.exe”-Prozesse auf eine Datei zugreift, der kann den “Resource Monitor” verwenden – “resmon.exe” im Startmenü:

  • Tab “CPU”
  • Reiter “Processes”: Alle zu untersuchenden Prozesse anwählen
  • Reiter “Associated Handles”: In das Suchfeld den Dateinamen eingeben
  • Prozess finden und direkt von hier aus beenden

via

Ubuntu: Launcher, Menü, … weg

Während eines apt-get update wurde ich auf den Login-Screen geworfen und musste mich neu einloggen. Begrüßt wurde ich von meinem Desktop-Hintergrund, dem Kram auf dem Desktop, sowie: nichts anderem.

Langes Hin und Her, letztlich sogar ein Upgrade von 14.04 auf 16.04, aber die Lösung war schließlich:

Quelle