Blog über Linux Sicherheit und andere verschiedene Sachen

Build Kernel

Ich im Beitrag Kernel Bauen geschrieben, wie man sich einen Linux Kernel für Debian bzw. Ubuntu selbst bauen kann. Da ich in der letzten Zeit öfter Kernel baue, habe ich mir ein Skript geschrieben, welches alle Schritte automatisiert. Das Skript befindet sich unten. build-kernel.sh #!/bin/bash set -e VERSION= KERNEL_KEY=38DBBDC86092693E function usage() { echo '' echo "$(basename "$0")--kernel=4.15.6" echo 'Build linux kernel' printf '\t-h --help\n' printf '\t--kernel=<kernel version>\n' echo '' } while [ "$1" !

Autovervollständigung mit PostgreSQL

In diesen Artikel wird nicht gezeigt, wie man eine Autovervollständigung im Frontend umsetzt. Hier geht es ausschließlich um die Realisierung der Autovervollständigungslogik in der Datenbank. Wenn mich jemand fragt, wie man eine Autovervollständigung umsetzt, dann würde ich immer Elasticsearch empfehlen. Wenn man schon PostgreSQL als Datenbank benutzt, dann kann man auch PostgreSQL dafür nutzen. Das hat den Vorteil, dass der Technologiestack kleiner ist. Es entfällt ggf. die Synchronistaion von Elasticsearch mit PostgreSQL.

NULL Tupel in Postgresql Anzeigen

Ich habe mich in den letzten Wochen immer wieder aufgeregt, dass PostgreSQL NULL-Tupel auf der Konsole nicht anzeigt bzw. man kann NULL: postgres=# SELECT NULL AS "<null>", '' AS "empty string"; <null> | empty string --------+-------------- | (1 row) Man kann mittel \pset die NULL-Tupel auch explizit anzeigen: postgres=# \pset null '<null>' Null display is "<null>". postgres=# SELECT NULL AS "<null>", '' AS "empty string"; <null> | empty string --------+-------------- <null> | (1 row) postgres=#

Unique Index mit PostgreSQL

Das ist wieder ein Beitrag zum Thema: Ich lerne PostgreSQL. Wobei (fast) alle relationalen Datenbanken das Verhalten haben, welches ich beschreibe. Man kann ein Unique Index über mehrere Spalten von einer Tabelle definieren, dann sichergestellt, dass es keine doppelten Tupel gibt. UNIQUE Causes the system to check for duplicate values in the table when the index is created (if data already exist) and each time data is added. Attempts to insert or update data which would result in duplicate entries will generate an error.

DISTINCT in PostgreSQL

Ich habe sehr lange ausschließlich MySQL benutzt. Mein Chef bei busnetworx, wollte unbedingt PostgreSQL einsetzten. Aus diesem Grund habe ich mir PostgreSQL genauer angesehen. Das Schlüsselwort DISTINCT ist in PostgreSQL mächtiger als in MySQL und ich möchte es im einmal erklären. SELECT DISTINCT Ich habe eine einfache Mitarbeitertabelle angelegt, wie man sie in vielen Tutorials findet. Die Testdaten habe ich mit mockaroo generiert. test=# \d employee Table "public.employee" Column | Type | Modifiers ------------+-----------------------+------------------------------------------------------- id | integer | not null default nextval('employee_id_seq'::regclass) first_name | character varying(50) | name | character varying(50) | department | character varying(50) | salary | integer | Indexes: "employee_pkey" PRIMARY KEY, btree (id) test=# SELECT * FROM employee limit 3; id | first_name | name | department | salary ----+------------+---------+-------------+-------- 1 | Francklin | Gurr | Services | 4207 2 | Cecily | Churm | Engineering | 3728 3 | King | Tribell | Training | 3780 (3 rows) Was macht DISTINCT SELECT DISTINCT entfernt Duplikate aus der Ergebnismenge.

Docker aufräumen

Wenn man Docker nutzt, wird man über kurz oder lang seine Festplatte voll bekommen. Das liegt daran, dass Docker keine alten (unbenutzten) Images automatisch löscht. Man kann diese Images per Hand löschen, das ist aber sehr nervig. Das Tool docker-gc gibt es schon recht lange, mit ihm kann man recht konfortabel aufräumen. In Docker 1.13 wurde das Unterkomando system eingeführt. Damit kann man sich den verbrauchten Plattenplatz übersichtlich anzeigen lassen und aufräumen.