Arme Ritter mit Sauce Arrabiata

    Aus der Reihe “Campingküche macht kreativ”

    Wenn man vom Mittagessen auf dem Campingtisch noch Arrabiata Sauce stehen hat kommt man zu ganz neuen Kreationen. Zwar nicht für alle aber für einige.

    Papa, eine super Schnapsidee!

    19.4.19
    Weitere Beiträge zu: Camping Küche Schnapsidee

    Screenshots von Webseiten in Chrome

    Wahrscheinlich weiß das schon jeder aber ich bin erst vorgestern darüber gestolpert.

    Wenn man einen Screenshot einer Webseite machen möchte die über den Bildschirm hinausgeht habe ich das bisher immer nur sehr umständlich hinbekommen.

    Mit dem Chrome Browser geht das ganz einfach. Einfach mit I in die Entwicklertools wechseln und dann rechts oben bei den 3 kleinen Punkten den gewünschten Screenshot auswählen.

    Das Bild wird dann in “Downloads” gespeichert und kann weiterverarbeitet werden.


    12.4.19
    Weitere Beiträge zu: Chrome

    Fahrrad (un)freundliche Städte

    Der ADFC hat eine Umfrage durchgeführt und Bürger(innen) nach dem “Klima” für Fahrradfahrer befragt. Hier kann man nachsehen wie es um seine Stadt bestellt ist (wenn genug Antworten kamen.) Meine Heimatstadt Meckenheim ist im Ranking der vergleichbaren Städte auf Platz 2 von 82 :-)

    10.4.19
    Weitere Beiträge zu: Fahrrad

    Bonner Schulmarathon 2019

    Zum dritten mal haben 3 Trainer Teams des Meckenheimer Konrad-Adenauer-Gymnasiums auf den Lauf vorbereitet und heute war der große Tag. Diesmal sogar mit 3 Mannschaften.

    Man mag es kaum sagen aber auch diesmal hat auf der Laufstrecke alles geklappt. Kein Kind hat sich verletzt, alle Wechselstationen waren komplett und in der Zeit und am wichtigsten alle Kinder hatten bei besten Wetter Spaß an der Sache. Man merkt natürlich auch das wir inzwischen schon Kinder und Jugendliche dabei haben die hier schon Erfahrungen von 2 oder 3 Läufen haben und auch viele Eltern kennen sich inzwischen auch schon aus.

    Im vorläufigen Ergebnis belegen wir in unserer Altersklasse von 92 Mannschaften die Plätze 16, 34 und 35 (Das ist zwar fast unwichtig aber trotzdem ein cooles Ergebnis).

    Vermutlich werden wir nächstes Jahr wieder mitmachen.


    7.4.19
    Weitere Beiträge zu: KAG Marathon

    DSGVO scheint zu wirken

    zumindestens in England und ich vermute auch generell. Eine Studie in Großbritannien kommt unter anderem zu dem Ergebnis:

    GDPR has played a large part in these changes. Three in ten businesses (30%) and over a third of charities (36%) say they have made changes to their cyber security policies or processes as a result of GDPR. Our qualitative findings suggest that GDPR has encouraged and compelled some organisations over the past 12 months to engage formally with cyber security for the first time, and others to strengthen their existing policies and processes.

    Aber vor allem auf der Management Seite scheint es noch viel zu tun zu geben.

    There is still more that organisations can do to protect themselves from cyber risks. This includes taking important actions that are still relatively uncommon, around board-level involvement in cyber security, monitoring suppliers and planning incident response.

    6.4.19
    Weitere Beiträge zu: DSGVO

    PDF Dateien mit Fußzeilen und Seitenzahlen nachrüsten

    Für ein Dokumentationsprojekt stehe ich vor der Aufgabe das ich ein großes Dokument aus verschiedenen kleineren pdf Dateien zusammenfügen muss. Das wäre ja einfach. Damit das ganze aber nicht wie eine Aneinanderreihung von Bruchstücken wird sollen durchgehende Seitennummern vergeben werden. Das i-Tüpfelchen ist die Anforderung das es Quer- und Hochformatdokumente gibt. Und da das ganze ein fortlaufendes Projekt ist müssen immer wieder Zwischenberichte erstellt werden. Es lohnt sich also das zu automatisieren.

    Hier habe ich eine Anregung gefunden wie das ganze funktionieren könnte.

    Der Ablauf ist dann

    • Berechne die Anzahl der Seiten aller Dokumente
    • Erstelle für jedes Dokument ein “Overlay Dokument” in PDF Form das “auf die Zieldokumente gelegt wird” und die richtige Seitenanzahl mit den gewünschten Fußzeilen und Seitenzahlen hat
    • teile die Ziel- und Nummerndokument auf in die einzelnen Seiten
    • Füge die Seiten mit den Overlayseiten zusammen.
    • Kombiniere die Seiten der Einzeldokumente wieder in ein Dokument zusammen
    • Kombiniere alle jetzt durchnummerierten Dokumente zu dem gewünschten Gesamtdokument.

    Hier das Script (Ja man kann noch mehr in Funktionen zerlegen aber das brauche ich (noch) nicht)

        #!/bin/bash
        function add_numbers {
        # Parameter: filename start_page_number amount_of_pages landscape/portrait
        mkdir -p temp
        # Tausche im Nummerntemplate die Platzhalter gegen die gewünschten Seitenzahlen aus
        more numbers-$4.tex | sed "s/number_to_start_with/$2/" | sed "s/number_of_pages/$3/" > temp/numbers.tex
        # zerlege das Quelldokument
        pdftk $1.pdf burst output temp/$1_%03d.pdf
        cd temp
        # Erstelle aus dem Template die Seiten mit den Seitenzahlen
        pdflatex numbers.tex
        # Zerlege das Seitenzahlendokument
        pdftk numbers.pdf burst output numbers_%03d.pdf
        # füge die einzelnen Zieldokumente mit den Seitenzahlendokumenten zusammen
        for i in $(seq -f %03g 1 $3) ; do pdftk $1_$i.pdf stamp numbers_$i.pdf output new_$1_$i.pdf ; done
        # alles zusammenstellen
        pdftk new_$1_???.pdf output ../n_$1.pdf
        # aufräumen
        rm new_*.pdf
        rm numbers*
        rm doc_data.txt
        rm $1_???.pdf
        cd ..
        }
    
        doc_1=index
        doc_2=anhang-1
        doc_3=Anhang-2-Modellierung
        doc_4=anhang-3
    
        # Berechne die Seitenzahlen der Einzeldokumente
        doc_1_pages=$(pdfinfo $doc_1.pdf | grep "Pages"  | cut -c 8-  | sed "s/ *//")
        doc_2_pages=$(pdfinfo $doc_2.pdf | grep "Pages"  | cut -c 8-  | sed "s/ *//")
        doc_3_pages=$(pdfinfo $doc_3.pdf | grep "Pages"  | cut -c 8-  | sed "s/ *//")
        doc_4_pages=$(pdfinfo $doc_4.pdf | grep "Pages"  | cut -c 8-  | sed "s/ *//")
        # Berechne die Startseiten für die Einzeldokumente
        # Titelblatt und Index werden im ersten Dokument nicht mitgezählt
        doc_2_start=$((${doc_1_pages} - 2 + 1 ))
        doc_3_start=$((${doc_2_start} + ${doc_2_pages}))
        doc_4_start=$((${doc_3_start} + ${doc_3_pages}))
    
        # Für jedes Dokument ein Overlaydokument erstellen
        add_numbers $doc_2 $doc_2_start $doc_2_pages landscape
        add_numbers $doc_3 $doc_3_start $doc_3_pages portrait
        add_numbers $doc_4 $doc_4_start $doc_4_pages portrait
        # Alles zusammenpacken
        pdftk $doc_1.pdf n_$doc_2.pdf n_$doc_3.pdf n_$doc_4.pdf  cat output $(date +"%Y%m%d")-it-siko-v.pdf
        rm n_*.pdf
    

    Die Templates sehen so aus

    numbers-landscape.text

      \documentclass[10pt, a4paper,twoside, landscape]{article}
      \usepackage{multido}
      \usepackage[hmargin=.8cm,vmargin=1.5cm,nohead,nofoot]{geometry}
      \usepackage{fancyhdr}
      \setcounter{page}{number_to_start_with}
      \pagestyle{fancy}
      \fancyhf{}
      \fancyfoot[RE,LO]{\fontfamily{phv}\selectfont Verinice Reporting Dokument}
      \fancyfoot[LE,RO]{\fontfamily{phv}\selectfont Seite \thepage}
      \renewcommand{\headrulewidth}{0pt}
      \renewcommand{\footrulewidth}{1pt}
      \begin{document}
      \multido{}{number_of_pages}{\vphantom{x}\newpage}
      \end{document}
      \maketitle
    

    numbers-portrait.tex

      \documentclass[10pt, a4paper,twoside]{article}
      \usepackage{multido}
      \usepackage[hmargin=.8cm,vmargin=1.5cm,nohead,nofoot]{geometry}
      \usepackage{fancyhdr}
      \setcounter{page}{number_to_start_with}
      \pagestyle{fancy}
      \fancyhf{}
      \fancyfoot[RE,LO]{\fontfamily{phv}\selectfont Verinice Reporting Dokument}
      \fancyfoot[LE,RO]{\fontfamily{phv}\selectfont Seite \thepage}
      \renewcommand{\headrulewidth}{0pt}
      \renewcommand{\footrulewidth}{1pt}
      \begin{document}
      \multido{}{number_of_pages}{\vphantom{x}\newpage}
      \end{document}
      \maketitle
    
    30.3.19
    Weitere Beiträge zu: PDF Debian

    Kostenlose Debian Mini VM bei Google

    Google stellt jedem Nutzer eine kleine temporäre und kostenlose Mini Instanz mit Debian unter der https://console.cloud.google.com/cloudshell bereit. Eigentlich gedacht um eine Console für die Google Cloud bereitzustellen kann man sie auch benutzen um “mal eben” schnell aus dem Browser einen Test auf einer Debian VM durchzuführen

    Aus der Doku

     Virtual machine instance
    
     When you start Cloud Shell, it provisions a g1-small Google Compute Engine virtual machine running a Debian-based Linux operating system. Cloud Shell instances are provisioned on a per-user, per-session basis. The instance persists while your Cloud Shell session is active and terminates after an hour of inactivity.
    

    Es ist auch schon einiges installiert und 5GB Storage gibt es auch noch.

    26.3.19
    Weitere Beiträge zu: Google Debian

    Git: Erste Babyschritte mit Branches und Mergen

    Warnung: Das sind die Aufzeichnungen einen Anfängers und keinesfalls als “Best Practise” geeigent. Use at your own risk**

    Aber vielleicht hilft es ja auch mal anderen die ersten Schritte zu wagen.

    Bisher benutze ich Git nur zu einfachen Versionierung in einem Entwicklungszweig. An Branches und Merges habe ich mich bisher nicht getraut. Es gab noch keinen echten Anwendungsfall.

    Folgendes Ziel möchte ich erreichen. Ich habe eine Webseite die ich kopieren und in verschiedenen Situationen einsetzen möchte (die Lizenz lässt das zu). Für die unterschiedlichen Bereiche sollen sowohl textuelle als auch farbliche Anpassungen geschehen. Nun möchte ich natürlich Änderungen die ich im Hauptzeig vollziehe auch automatisch in die verschiedenen anderen Versionen übernehmen.

    Git bietet die Funktion von Branches. Die sind zwar eigentlich nicht für so einen Fall vorgesehen da man Branches dazu benutzen soll um Entwicklungen später wieder in den Hauptzweig überführen zu können. Das ist in meinem Fall zwar nicht der Fall aber trotzdem scheint mir dies aktuell die einfachste Möglichkeit zu sein. Wenn man es richtig machen würde sollte man wohl eher mit anderen Ansätzen arbeiten.

    Wir haben also ein Git Repository. Von diesem Repository erstellen ich einen Branch

      git checkout -b rc-its
    

    Wechseln zwischen den Branches geht mit

     git checkout master
     git checkout rc-its
    

    In welchem Branch ich bin und welche Branches es gibt findet man so:

     git branch -a      
     * master
       rc-its
       remotes/origin/master
    

    Wenn ich also auf dem Master Änderungen durchführe (z.B. ein sed-Befehl )

      git:(master) find ./ -type f -exec sed -i -e 's/BITS/ITS-RC/g' {} \;
    

    und diese dann einchecke

     git:(master) ✗ git commit * -m "bits nach rc-its in allen dokumenten "
     git:(master) git push  
    

    So kann ich die jetzt durch einen Wechsel des Branches und einen anschließenden Merge aus dem Master in den anderen Zweig übernehmen.

    git:(master) git checkout rc-its    
    git:(rc-its) git merge master
    

    Um jetzt noch den Branch auf gitlab zu pflegen

     git:(rc-its) git push -u origin rc-its
    

    Wenn ich jetzt im Branch ein anderes Logo haben möchte dann tauschen ich das einfach aus. Danach sehen wir

      git status
      Auf Branch rc-its
      Ihr Branch ist auf dem selben Stand wie 'origin/rc-its'.
      Änderungen, die nicht zum Commit vorgemerkt sind:
      (benutzen Sie "git add <Datei>...", um die Änderungen zum Commit vorzumerken)
      (benutzen Sie "git checkout -- <Datei>...", um die Änderungen im Arbeitsverzeichnis zu verwerfen)
    
      geändert:       bits/images/design/header.jpg
    
      keine Änderungen zum Commit vorgemerkt (benutzen Sie "git add" und/oder "git commit -a")
    

    Ein Commit für das neue Logo

       git:(rc-its) ✗ git commit bits/images/design/header.jpg -m " kunden logo"
       [rc-its 593eef6]  kunden logo
       1 file changed, 0 insertions(+), 0 deletions(-)
       rewrite bits/images/design/header.jpg (99%)
    

    und dann hoch schieben:

      git push
      Zähle Objekte: 6, Fertig.
      Delta compression using up to 4 threads.
      Komprimiere Objekte: 100% (5/5), Fertig.
      Schreibe Objekte: 100% (6/6), 67.52 KiB | 0 bytes/s, Fertig.
      Total 6 (delta 3), reused 0 (delta 0)
      remote:
      remote: To create a merge request for rc-its, visit:
      remote:   https://g.........%5D=rc-its
      remote:
      To git.......git
      d0f277c..593eef6  rc-its -> rc-its
    

    Jetzt wechseln wir wieder in den master

      git checkout master
      Zu Branch 'master' gewechselt
      Ihr Branch ist auf dem selben Stand wie 'origin/master'.
    

    Und sehen das originale Logo. Nun wollen wir die nächste Hauptänderung machen

       git:(master) find ./ -type f -exec sed -i -e 's/Behörden-IT-Sicherheitstraining/IT-Sicherheitstraining/g' {} \;
       git:(master) ✗ git commit * -m "Behörden-it-sicherheits... in IT-Sicherheitstraining geändert"
       git:(master) git push     
    

    Der Branchwechsel

          git:(master) git checkout rc-its
          Zu Branch 'rc-its' gewechselt
          Ihr Branch ist auf dem selben Stand wie 'origin/rc-its'.
          ➜  ...... git:(rc-its)
    

    Die Webseite hat noch das Kundenlogo und den alten Titel

     git:(rc-its) git merge master
    

    TATATAA: Die Webseite hat das Kundenlogo und neuen Titel

    23.3.19
    Weitere Beiträge zu: asciidoctor

    Unisex-Toiletten wie es nicht sein sollte

    Also das finde ich ein wenig unpassend wie die Uni in Chemnitz die Toilettennutzung regelt. Wenn schon Allgender Toiletten dann aber auch bitte für Männlein und Weiblein.

    So ist das kein guter Beitrag für den Kampf um Gleichberechtigung.

    21.3.19
    Weitere Beiträge zu: Gleichberechtigung

    Chemnitzer Linux Tag 2019

    Leider etwas früh muss ich dieses Jahr die Chemnitzer Linux Tage schon gegen Mittag verlassen. Wie auch schon das letzte Jahr eine sehr gelungene Veranstaltung. Für mich wäre die Veranstaltung ohne einen eigenen Vortrag zu weit aber wenn man “in der Nähe” wohnt auf jeden Fall einen Besuch wert.

    Zu meiner Überraschung wurden im Auswahlverfahren beide meiner Vortragvorschläge angenommen und auf den Sonntag morgen gelegt. Es ging um DSGVO IT Sicherheitsdokumentation mit Verinice und Backups im Netzwerk mit restic.

    Es war ein wenig anstrengend aber hat wieder viel Spass gemacht.


    17.3.19
    Weitere Beiträge zu: Konferenzen ChemnitzerLinuxTage

    Friday for Future

    Hier werden gerade Plakate für FridaysForFuture gemalt.

    Und ansonsten habe ich diesem Tweet nichts hinzuzufügen

    14.3.19
    Weitere Beiträge zu: FridayForFuture

Dies ist ein privater Blog von Hagen Bauer- berufstätiger Vater, Ehemann, Naturliebhaber, Läufer, Zelter, technikverliebt.


Creative Commons License
This blog is licensed under a Creative Commons License