Global:
|
1 |
$ defaults write -g ApplePersistence -bool no |
per Anwendung:
|
1 |
$ defaults write -app 'Preview' ApplePersistence -bool no |
♪ Commit ins Abenteuerland ♫
Global:
|
1 |
$ defaults write -g ApplePersistence -bool no |
per Anwendung:
|
1 |
$ defaults write -app 'Preview' ApplePersistence -bool no |

Sie wollen Ihre WTFs zurück.
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
|
1 2 |
# EDIT: Works only for "ls" w/o any parameter (so "ls -al" doesn't work): alias ls="export GLOBIGNORE_TMP=$GLOBIGNORE; export GLOBIGNORE=$GLOBIGNORE:.*:$(tr '\n' ':' < .hidden); ls -dC * ;export GLOBIGNORE=$GLOBIGNORE_TMP; export GLOBIGNORE_TMP=''" |
beibringen (Quelle), beispielsweise in der ~/.bashrc. UPDATE: Funktioniert nur mit ls, nicht mit bsplw. ls -al m(
![]()
Selbsterklärender Code ist wichtig, das habe ich lange nicht mehr erwähnt.
Von Facebook, ich glaube via Jens.

Hex Hex!
Danke an… Gregor? Ich weiß nicht mehr 😢
Angenommen, man möchte die ID einer Entity von
|
1 2 |
@Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "foo_bar_sequence") |
auf
|
1 2 |
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) |
migrieren, und dazu explizit eine Sequence in der Datenbank anlegen. Ein Migrationsskript könnte dann so aussehen:
|
1 2 3 |
CREATE SEQUENCE foo_bar_id_sequence OWNED BY foo_bar.id; ALTER TABLE foo_bar ALTER COLUMN id SET DEFAULT nextval('foo_bar_id_sequence'); SELECT setval('foo_bar_id_sequence', (SELECT max(id) FROM foo_bar)); |
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
|
1 |
SELECT setval('foo_bar_id_sequence', (SELECT greatest(max(id), 1) FROM foo_bar)); |
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:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
CREATE OR REPLACE FUNCTION safeSetval(_tbl REGCLASS) RETURNS VOID AS $func$ DECLARE maxId INT; BEGIN EXECUTE FORMAT('SELECT max(id) FROM %s;', _tbl) INTO maxId; CASE WHEN maxId ISNULL OR maxId < 0 THEN PERFORM setval(FORMAT('%s_id_sequence', _tbl), 1, FALSE); ELSE PERFORM setval(FORMAT('%s_id_sequence', _tbl), maxId); END CASE; END $func$ LANGUAGE plpgsql; |
Aufruf dann per:
|
1 |
SELECT safeSetval('foo_bar'); |
Deutlich einfacher ist allerdings:
|
1 2 |
SELECT setval('foo_bar_id_sequence', (SELECT greatest(max(id) + 1, 1) FROM foo_bar), FALSE); |
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.
Ich bin offen für bessere Lösungen, aber
|
1 |
dbus-monitor "interface='org.freedesktop.Notifications'" | grep --line-buffered "string" | grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v | grep --line-buffered '.*(?=string)|(?<=string).*' -oPi | grep --line-buffered -v '^\s*$' | xargs -I '{}' pkill notify-osd |
scheint zu klappen (von).
Ich bin großer Fan von Reflection (Hallo, Johann 👋). Aber einige Sachen sind gar nicht soo offensichtlich hinzubekommen, etwa das Finden aller Sub-Klassen. Doch grämet euch nicht, es gibt Reflections:
|
1 2 3 4 |
Reflections reflections = new Reflections("net.crusy.foo"); for (Class<?> subClass : reflections.getSubTypesOf(SomeInterface.class)) { // do stuff } |
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
Um auf Port 1 wieder Internet zu haben, muss man das zurückändern, klar.
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.
😂
UPDATE: Geht (natürlich) auch für Waterfox, allerdings musste ich den global via general.useragent.override setzen. Der User Agent für Firefox 72:
Mozilla/5.0 AppleWebKit/537.36 (KHTML like Gecko) Gecko/20100101 Firefox/72.0