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" ! [weiter lesen from Build Kernel...]

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. [weiter lesen from Autovervollständigung 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. [weiter lesen from Unique Index Mit PostgreSQL...]

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. [weiter lesen from DISTINCT in PostgreSQL...]

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. [weiter lesen from Docker Aufräumen...]

Repository zu Github spiegeln

Bei Github gibt es leider keine Möglichkeit, dass man fremde git-Repositories spiegeln kann. Das hat zur Folge, dass man von Github aus spiegelt oder man muss zu Github pushen. Es gibt verschiedene Gründe, weswegen man Github nicht als das zentrale Repository nehmen möchte. Also muss man die Änderungen aktiv zu Github schieben. Zusätzlicher Remote Die offensichtlichste Möglichkeit ist, dass man eine zusätzlichen Remote hinzufügt. git remote add github <github repo URL> git push github Man muss aber immer daran denken, dass man auch zu Github pushen muss. [weiter lesen from Repository Zu Github Spiegeln...]

Multi-Stage-Build mit Docker

Wenn man Docker nutzt, möchte man gerne kleine Images haben. Durch die Nutzung von kleineren Images spart man Netzwerklast beim PUSH und PULL. Ein weiterer offensichtlicher Vorteil ist das Sparen von Festplattenplatz. Ein kleines Image kann auch sicherer sein, da der mögliche Angriffsvektor kleiner wird, wenn man keine zusätzlichen Tools, Compiler oder Laufzeitumgebungen im Image hat. Bis jetzt war es realtiv schwierig kleine Images mit Docker zu bauen. Da es nicht möglich ist, ein einmal erzeugten Layer wieder los zu werden. [weiter lesen from Multi-Stage-Build Mit Docker...]

map Files mit HAProxy

In meinen Beitrag Loadbalancer und Webserver härten habe ich map Files in HAProxy verwendet, um die Konfiguration zu vereinfachen. Normalerweise arbeitet HAProxy weiter, wenn ein use_backend keine Anwendung findet, da man dazu in der Regel eine entsprechende ACL definiert. Wenn man mehrere map Files verwendet und diese sollen nacheinander ausgewertet werden, z.B. zuerst möchte man nach Pfaden routen und dann nach Hostnamen, dann muss man auch ACLs definieren. Falls man keine ACL und kein Default-Backend bei der map-Funktion angibt, wird auch Default-Backend ignoriert, welches mit default_backend konfiguriert wird. [weiter lesen from Map Files Mit HAProxy...]

ccache

Ich habe heute mit 2 Bekannten über den Beitrag Kernel bauen gesprochen und wir sind auf das Thema ccache gekommen. Sie konnten meine Aussage nicht nachvollziehen, dass ich ccache nutze. Einer nutzt ccache nicht, weil er auf seinen System keinen (merkbaren) Geschwindigkeitsvorteil hat. Eine weitere Meinung ist, die nicht von der Hand zu weisen ist, die Wahrscheinlichkeit für Compilerfehler steigt, weil ccache auch Bugs haben kann und ggf. das falsche ausliefert. [weiter lesen from Ccache...]