Im Terminal:
|
1 2 3 4 |
$ su - karl // irgendein Admin User $ diskutil list /dev/disk2 // suchen des richtigen Pfades $ sudo umount /dev/disk2 // kann entsprechend auch disk0, 1, ... sein $ dd if=/dev/disk2 of=mydisk.iso |
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.