noqqe@roz » blog | sammelsurium | photos | projects | about
Um nach Teil 1 und Teil 2 - jetzt erst Recht jetzt eine Trilogie aus der Blogreihe zu machen, heute nun ein weiterer Teil. Nach dem immer wiederkehrenden Schmerz R, das dazu passende Rstudio und alle Libraries auf aktuellen Stand zu kriegen, reichte es mir dieses Jahr. Ich hatte bereits mehrere Versuche gemacht und es immer wieder verworfen. Die dritte Iteration - Ziele Ich will ein einfaches kleines Python Script welches alljährlich wiederverwenden kann um meine Tracks dieses Jahr zu analysieren.
weiterlesen...

Auf der Suche nach einem passenden Namen für ein kleines Nebenprojekt habe ich eine Webseite besucht um zufällige Tiere anzeigen zu lassen. Bei einem davon, dem Yak, dachte ich kurz “Warte, ich kenne das Bild doch von irgendwoher”. Ich überlegte und mir fiel wieder ein, dass das Cover vom 2017er Album der Beatsteaks “Yours” kenne. Ich googelte kurz und fand wonach ich suchte. Quelle https://beatsteaks.
weiterlesen...

Es ist Tag 2 und ich bin ziemlich zufrieden mit dem Arbeiten am groestenteils textbasierten OpenBSD Desktop. An meinem cwm Window Manager habe ich ehrlich gesagt wenig bis garnichts herumkonfiguriert. Ich will lediglich ein schwarzes Terminal haben, weshalb ich den “Neues Terminal”-Shortcut ueberschreiben und einen weiteren um meinen Bildschrim zu sperren. > cat .cwmrc bind-key CM-Return "xterm -bg black -fg white +sb" bind-key CM-q "slock" Wo wir gerade ueber xterm sprechen.
weiterlesen...

Ein weiterer Dienst mit dem man so eigentlich nichts zu tun hat, wenn man sonst nur OpenBSD Server betreibt. Das “Advanced Power Management Control Program” hat diverse Features die mich anfangs ueberrascht hatten. > apm Battery state: high, 69% remaining, 145 minutes life estimate A/C adapter state: not connected Performance adjustment mode: manual (2501 MHz) So kann ich beispielsweise mittels zzz in den Suspend bzw mit ZZZ in den Hibernate Modus schalten.
weiterlesen...

In letzter Zeit spielte ich etwas mit OpenBSD auf dem Desktop herum, was ich schon jahrelang mal machen wollte, aber irgendwie nie tat. Mir fiel auf dem Dachboden der K4CG ein IBM Thinkpad R32 in die Haende, welches ich dafuer benutzte. Die Hardware hatte so ihre Probleme. Wackelkontakt auf der Tastatur, Akkulaufzeit ~20min, integriertes Wifi konnte nur WEP, CMOS Batterie leer, Pentium 4. Allesamt loesbare Probleme, nur leider nicht wirtschaftlich.
weiterlesen...

Manpages haben ein Format (roff, welches ich mir noch nie angeschaut habe. Beim Einlesen habe ich dann gemerkt das Roff eigentlich ein generelles Textsatzprogramm ist. Im speziellen bei OpenBSD hat sich das Format aber dann mit Fokus auf Manpages zu mdoc weiterentwickelt. Ingo Schwarze hat hier für OpenBSD eine ganzen Eimer voll Arbeit geleistet und neben komplettem Umbau des Toolings um man, mdoc und mandoc auch weite Teile von Content (zum Beispiel für LibreSSL) neu geschrieben.
weiterlesen...

Thumbnails mit fish

2019-11-27 @ fish
Ich habe mal wieder meine Fotos umgezogen und von Flickr weg transferiert. Und zwar hier in den Blog direkt unter photos Dazu muss ich aber ein paar Sachen selbst tun, zum Beispiel Thumbnails generieren. Dazu hab ich in meine fish Shell ein kleines Snippet gebaut was ich einfach im jeweiligen Albumordner ausführen kann. # Create a thumbnail image for all pictures in current folder function create_thumbs () # fix file extension names for jpeg in *.
weiterlesen...

Aus finanziellen Gründen finde ich mich ab und an in der Verlegenheit wider, eine Nexus Instanz zu betreiben. Oft ist bereits der Speicherplatz zur Neige gegangen (bitte mit der Anno 1604 Sprecher Stimme vorstellen). Was folgte war meist zielloses herumgestocher und Clean Up Policies tunen. Das ist alles andere als geil, wenn man mehrere Repos hat. Ich will eigentlich einfach nur eine Übersicht, welches Repo wie viel Storage verbraucht. In der offiziellen Dokumentation wird ein Groovy Script referenziert, welches dann ein JSON Dokument ausspuckt, wenn man es als Task in der Nexus Admin Oberfläche angelegt hat.
weiterlesen...

Wie bereits im letzten Post, dreht es sich auch dieses Mal wieder um Terraform und AWS. Allerdings genauer gesagt um den CI/CD Prozess. Terraform CI/CD Mein Terraform Code wird in einem Repository aufbewahrt und regelmäßig auf 4 Umgebungen (dev, alpha, stage, prod) ausgerollt. Diesen Prozess habe ich mittels Bamboo automatisiert. Als “Test”-Stage läuft in allen Umgebungen ein terraform init && terraform plan. Somit kann ich sehen ob einzelne Terraform runs überhaupt funktionieren würden.
weiterlesen...

Passwörter. Ein Quell der Freude, gerade beim Thema Infrastructure as Code (in meinem Fall mittels terraform) Ich arbeite im Moment an einem neuen Projekt in der Arbeit in der ich 4 identische Umgebungen in AWS aufbauen darf und natürlich werden dort diverse Systeme angebunden welche sich mittels Authentifizierung unterhalten. Vorher sah meine Codebase ungefähr so aus. Credentials wo man hinsah. module "mysql_db" { source = "../../modules/rds" name = "${var.environment}-mysql" subnet_ids = module.
weiterlesen...

Ich komme in der Arbeit leider zu selten in den Genuss etwas ansible zu machen, aber heute war es doch mal wieder so weit. Gesucht habe ich ein Playbook welches Debian Jessie -> Stretch Updates macht. Ja, Buster ist bereits released, ich fühle mich bereits schlecht, macht es nicht noch schlimmer mit dem Hinweis darauf als Reaktion auf diesen Blogpost. Gefunden habe ich dann dist-upgrade.yaml von DebOps. Leider sieht dieses Playbook nur Repos in /etc/apt/sources.
weiterlesen...

WireGuard ist so ziemlich das was man als Admin immer wollte was VPN angeht. Mir zog es immer die Gänsehaut auf wenn ich nur an dieses OpenVPN gegraddel denken musste. wg dagegen ist schön, einfach und unkomplizert. Über die Kernel-Modul Implementation kann man streiten, aber das ist ja kein muss, da es auch Userland Implementationen gibt wie unter iOS oder letztens in OpenBSD als Paket Ungefähr genau so schön ist die Implementierung in NixOS, welche mal wieder wunderbare Option Bindings zur Verfügung stellt.
weiterlesen...

Rspamd

2019-05-20 @ mail, spam
Zugegeben, ich war in den letzten Monaten etwas nachlässig mit meiner privaten Infrastruktur. Was das Spamvolumen anging entstand aber zuletzt dringender Handlungsbedarf. 2016 hatte ich zusätzlich zum IP-basierten bpgd-spamd eine eigene kleine Software bastelt: jeezus Content Spam Filtering. Also bisschen Bayesian, bisschen Checksum, bisschen IP-Blocking. Scheinbar reicht das aber nicht mehr aus und es ging wieder los. jeezus hab ich wieder entfernt und suchte nun eine allumfassende Spamlösung. Nachdem mir Spamassassin immernoch Angst macht, hatte ich rspamd ins Auge gefasst.
weiterlesen...

In letzter Zeit kam ich öfters in die Verlegenheit mit Systemd zu interagieren. Der Matomat in der K4CG hatte so ein paar Spezialanforderungen umzusetzen. Systemd hat den Ruf bloated und buggy zu sein, aber ich hatte in letzter Zeit 2 schöne Aspekte kennen gelernt. Auto Login Wir bedienen den Matomat über TTY1. Beim Starten soll auf TTY1 einfach das Programm starten. Früher musste dafür ein /etc/inittab Eintrag her.
weiterlesen...

Ich habe es die Tage schon gewtittert, trotzdem der Vollständigkeit halber, nochmal hier im Blog. why-openbsd.rocks Ich will Leute, die mich fragen warum ich OpenBSD einsetze, auf diese Seite schicken können und dann vielleicht die gleichen Aha-Momente triggern, wie bei mir damals in der K4CG, bzw. wie es mir immernoch passiert wenn ich tech@ Mailingliste lese. Es ist ein Projekt für das ich ziemlich lange irgendwelche Schnipsel und Fakten gesammelt und strukturiert habe.
weiterlesen...

Letztens habe ich mich (wegen einer kleinen Recherche für ein anderes Projekt) mit ping in OpenBSD beschäftigt. Anfang 2015 gab es diesen Commit in OpenBSD base, der Randomness in Ping Pakete einführt. Ping Crypto/Security was wie wo? Irgendwie wollte ich da noch etwas genauer verstehen um was es geht. ICMP Zunächst geht es dabei erstmal um ein ICMP Echo Paket. Ich hab im RFC792 gelernt das jedes ICMP Paket etwas anders aussieht, vom Aufbau und den Fields einfach her.
weiterlesen...

Ich hatte an Weihnachten ein paar Bilder gemacht und dabei eine Funktion meiner Kamera benutzt, welche viele Fotos hintereinander macht. Beim Durchscrollen sah das ein bisschen aus wie ein Stop-Motion Video, was ziemlich lustig war. Deshalb wollte ich daraus wirklich ein Video machen. Zuerst mal alle Bilder etwas verkleinert, 6000x4000 ist da etwas arg groß gewesen. ImageMagick <3 for x in DSC* convert $x -resize 30% -auto-orient medium-$x end Dann … ffmpeg Magie.
weiterlesen...

iperf

2019-02-01 @ Software, iperf
iperf ist ein Tool mit dem man Netzwerk Geschwindikeiten testen kann. Dazu braucht man 2 Linux Boxen. Einen Server: $ iperf -s -p 4001 ------------------------------------------------------------ Server listening on TCP port 4001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ und einen Client $ iperf -c 172.27.37.26 -n 1000M -p 4001 ------------------------------------------------------------ Client connecting to 172.27.37.26, TCP port 4001 TCP window size: 45.0 KByte (default) ------------------------------------------------------------ [ 3] local 172.
weiterlesen...

Mein Blog besteht schon seit Langem einfach nur aus Text Files. Keine Datenbank, kein dynamischer Content. Eignet sich das nicht eigentlich hervorragend um CI/CD zu machen? Wie ich was und warum gemacht habe, wird hier erklärt. TL;DR: markdownlint, hugo Build und rsync Deploy via travis-ci.org Markdown Style Testing Per Zufall bin ich auf markdownlint-cli gestoßen habe es auf meine Posts losgelassen. Tatsächlich ging das ganze CI/CD für meinen Blog mit dem Fund dieses Stücks Software los.
weiterlesen...

Vor kurzem habe ich einen kleinen Vortrag zu NixOS in der K4CG gemacht. Dafür habe ich (mal wieder) ein neues Presentation Tool verwendet, in diesem Fall mdp Der Source sieht dann ungefähr so aus und ist dabei immernoch compilierendes Markdown ----- -> # NixOS: Configuration Management! <- Um das System zu verändern vim /etc/nixos/configuration.nix nixos-rebuild switch Demo Time! ----- Was dann compiled ungefähr so aussieht Die Folien als PDF kann man hier sehen
weiterlesen...

Ich hatte überlegt entbehrlich.es nach Instagram zu bringen. Instagram also. Bilder bearbeiten. Was ich wollte war folgendes: Ein Script nimmt einen Artikel und schmeisst Title und Text auf ein “hübsches” Foto was man dann auf Instagram posten kann. Unsplash Ich bin ja ein bisschen sehr Fan von Unsplash. Jetzt gibt es eine Library die ich zum Glück einfach benutzen konnte. Lass ich mir von Unsplash einfach ein zufälliges Bild gegeben (anhand von ein paar keywords) und habe schonmal den ersten Schritt zum baldigen Social Media Erfolg von Sinnlosem Wissen.
weiterlesen...

sudo via fish-shell

2018-09-29 @ fish, sudo
Neben ctrl+r ist sudo !! eine der Funktionalitäten die ich bei der fish Shell am meisten vermisst hab. Natürlich gehts nicht nur mir so Aus diesem Thread hab ich dann eine Lösung für mich gefunden. function bind_bang switch (commandline -t) case "!" commandline -t $history[1]; commandline -f repaint case "*" commandline -i ! end end Besonders cool an dieser Lösung ist, dass beim eintippen des zweiten ! auch für den User sichtbar der letzte Befehl eingesetzt wird.
weiterlesen...

Vor einer Weile hatte ich bereits mal einen Post über GPX Files mittels R zu visualisieren. Also wieder über Strava Einstellungen ein Archiv aller Aktivitäten anfordern, dann auspacken und im Ordner activities die GPX Dateien finden. Abhängigkeiten installieren: $ R > p <- c("plotKML", "maps", "ggmap") > install.packages(p) und die leicht aktualisierte Version als gist nach angepassten Einstellungen ausführen. Der Unterschied ist eigentlich nur das ich diesmal pro Jahr ein einzelnes File bekomme:
weiterlesen...

Wir benutzen die gehostete Version des elastic Stack. Dort gibt es einige Möglichkeiten via Watcher Details des Clusters monitoren und ggf. an Menschen Emails zu verschicken. Was damit nicht geht ist den verbleibenden Speicherplatz monitoren. Das musste irgendwie gelöst werden und ich habe ein Icinga2 Plugin geschrieben um eben jenes zu bewerkstelligen #!/usr/bin/env python3 # -*- coding: utf-8 -*- import sys import requests import humanfriendly warn = sys.
weiterlesen...

sed & awk

2018-04-30 @ aws, code, gedanken, sed
Letztens stolperte ich über dieses Buch. Es ist von 1992 und beschreibt die Funktionalität von sed und awk. Beim durchblättern merkte ich: Das meiste in diesem Buch funktioniert noch. Es funktioniert einfach. Beides Tools die bis heute von Admins und Unix-Menschen benutzt werden und wahrscheinlich in tausenden Skripten Einzug gefunden haben. Man merkt schon, irgendwie saß ich da und hab mich beim herumsinnieren über dieses Buch erwischt.
weiterlesen...

Immer diese Websockets. Angenommen ich habe auf Port 8080 ein Stück Java Software laufen, welches Websockets zwingend erfordert. So möchte ich natürlich TLS Terminierung auf einem Reverse Proxy machen. In diesem Fall Apache 2.4 <VirtualHost *:443> ServerName <hostname> ## Vhost docroot DocumentRoot "/var/www/redirect" ## Proxy rules ProxyRequests Off ProxyPreserveHost Off ProxyPass / ws://localhost:8080/ nocanon ProxyPassReverse / ws://localhost:8080/ nocanon ProxyPass / http://localhost:8080/ nocanon ProxyPassReverse / http://localhost:8080/ nocanon </VirtualHost> Wichtig ist dabei auch die Reihenfolge.
weiterlesen...

Ich kam in die Verlegenheit ein Volume verkleinern zu müssen. LVM vergrößern, klar, 100 mal gemacht. Aber verkleinern war immer so…ehh… lieber auf neue Disk syncen und alte Disk wegwerfen. Da es diesmal aber Produktiver Service ist und es sich um Millionen von Files handelt (Danke Graphite..) geht das nicht. Testaufbau Da es dabei um 5TB geht und wir noch kein Backup davon haben (daher ja der ganze Aufwand) wollte ich das vorher mal ausprobiert haben.
weiterlesen...

R Talk

2018-04-01 @ Hackerspace, R, Rstats
Vor kurzem gab ich einen kurzen Talk über R in der K4CG und die Folien dazu wollte ich hier auch noch lassen. R-Talk.pdf Der Link zum Vortrag im Wiki Vortrag_R
weiterlesen...

10 Jahre Blog

2018-03-24 @ blog
Kaum zu glauben das mein erster Blogpost heute genau 10 Jahre her ist. Aus diesem Anlass heute ein kurzes Recap. Im Lauf der Zeit hat dieser Blog einige Veränderungen durch. Anfangs habe ich einfach auf wordpress.com einen Blog unter seufz.wordpress.com erstellt und angefangen Gedanken zu meinen Problemen die ich mit Linux auf meinem Laptop hatte. Viele davon handeln von Ubuntu Problemen, Grub und sonstigem Kram. Die typischen Einsteiger Probleme von Linux Usern damals™ zumindest.
weiterlesen...

Es ist ein nie enden wollendes Thema dieses Blogs zu erklären wie man IPv6 konfiguriert. Auf Vultr läuft so die eine oder andere meiner Maschinen und das bisher ohne v6. Die Konfiguration verlief nicht so reibungslos wie die letzten male, weshalb dieser Post viel mehr Details enthält und ich nun viel besser verstehe was eigentlich passiert! In den Settings zeigt einem das Webinterface von Vultr die v6 Adresse die man für seine VM benutzen kann daneben der Hinweis:
weiterlesen...

Beruflich habe ich 2017 so gut wie ausschliesslich Puppet gemacht. Das hat mich vielerlei Dinge gelehrt und schon fast ein bisschen was von Development gehabt. Dazu aber evtl. in anderen Posts mehr. Worum es in diesem Post gehen soll ist eine Methode zum angenehmen Entwickeln von Puppet Code. Das Problem mit Config Management Gerade im Configuration Management läuft es etwas anders als beim “traditionellen” Entwickeln. Ich kann meine Codebase leider nicht einfach “bauen” und den Build dann lokal ausführen.
weiterlesen...

Die Fish Shell

2018-01-28 @ bash, fish, shell
Seit 2 Monaten ist die fish Shell sowohl @work als auch zuhause meine Login Shell. Dazu gekommen ist es durch yogan und Mullet die ebenfalls umgestiegen sind und mich mit dem Thema angefixt haben. So eine neue Shell ist schon eine Umstellung. Seitdem ich Linux mache heisst eben diese Shell für mich Bash. Ab und an hatte ich mal versucht mich mit zsh anzufreunden, hab es aber immer gleich wieder verworfen.
weiterlesen...

Dank gpunktschmitz haben wir nun eine Virtualisierungslösung in der K4CG die mit Hyper-V umgesetzt wurde. Ich habe damit noch nie was gemacht, aber muss sagen das das wesentlich cooler ist als ich es mir vorgestellt hab! Ich habe ein NixOS installiert und wollte ein verschlüsseltes Volume via ecryptfs aufsetzen. Also erstmal in die /etc/nixos/configuration.nix das ecryptfs hinzugefügt. environment.systemPackages = with pkgs; [ tmux ecryptfs ]; Via nixos-rebuild switch hab ich die neue Konfiguration dann angewendet.
weiterlesen...

Früher habe ich viel R gemacht, was mir immer viel Spass machte. Es ist eine wunderschöne Sprache (wenns dann mal läuft). Der Teil den ich aber schon immer wahnsinnig hässlich fand ist das Visualisieren. ggplot ist so die Plotting Engine der Wahl. Zumindest wenn man nicht gerade das builtin functions plot verwendet. Dazu hab ich auch schonmal was 2011 gebloggt. Aber auch andere Tools wie gnuplot, diverse .js Libraries oder externe Services wie plot.
weiterlesen...

Wow. Gerade realisiert das ich hier ganze 5(!) Monate nicht mehr gebloggt habe. Quasi den ganzen Sommer über. Es fühlt sich auch ein bisschen fremd an wieder mit hugo zu arbeiten, was wahrscheinlich hauptsächlich daran liegt das die Befehle dazu aus meiner bash History rausrotiert sind und ich sie nicht wie sonst mit ctrl+r suchen konnte. Wie auch immer. In letzter Zeit hab ich wieder etwas an meinem vim herumgebastelt. Meistens entstand dieses Gebastel (mit dem ich auch noch nicht wirklich fertig bin) wegen verschiedenen vim Versionen auf Servern und Clients.
weiterlesen...

In der Recherche zu dem Thema, ist mir aufgefallen das ich scheinbar einen Hang zu selbstgemachten Graphen habe. Siehe Paying 5 bucks a month for stupid statistics? oder Photos auf Google Maps. Wie auch immer. Auch dieses mal bietet mir mein Tracking Tool Strava nicht die Möglichkeit all meine gefahrenen Strecken auf einer Karte zu visualisieren. Problem: Das hätte ich gerne. Nach einigem Wälzen im Netz nach einer Art HTML/JS Library die mir das interaktiv im Browser macht, fand ich dann einen Blogpost der mich ebenfalls interessierte.
weiterlesen...

Auf was ich mich am Meisten im neuen OpenBSD Release 6.1 gefreut hab ist acme-client(1). Das Binary welches direkt aus dem base System kommt ersetzt bei mir einen hässlichen Wust aus Shell Skripten und anderen Schnipseln die ich mir irgendwo notiert hatte. #!/usr/local/bin/bash TACME=/home/noqqe/Code/acme-tiny/acme_tiny.py wget --quiet -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > /tmp/intermediate.pem D="organic-entropy.org entbehrlich.es devnull-as-a-service.com noqqe.de" for x in $D ; do python $TACME --account-key /etc/ssl/private/letsencrypt.key --csr /etc/ssl/csrs/${x}.csr --acme-dir /var/www/htdocs/challenges/ > /tmp/signed.
weiterlesen...

neovim

2017-04-15 @ neovim, vim
Seit ca. 2 Monaten oder so benutze ich nun auf dem MacBook neovim. Und zwar einfach als Drop-In-Replacement. NVIM=$(which nvim 2>/dev/null) if [[ -x $NVIM ]]; then alias vim=$NVIM export EDITOR=$NVIM fi Solchen quatsch muss ich eigentlich nur machen, weil ich meine bashrc auf relativ vielen Systemen einsetze, aber das ist eine andere Geschichte. Relativ angenervt hat mich der per default aktivierte Mouse Support. Ich weiss nicht wer das nutzt aber eigentlich hindert es mir nur daran mal etwas mit via Mouse Selektion aus dem vim herauszukopieren.
weiterlesen...

Solang du ein halbwegs normales Filesystem hat, speichert es dir Access, Modification und Creation Dates als Meta Information ab. Das macht sogar HFS+ von Apple. $ stat foo 16777220 47263467 -rw-r--r-- 1 noqqe staff 0 16 "Mar 7 10:41:34 2017" "Mar 7 10:13:46 2017" "Mar 7 10:13:46 2017" "May 5 01:00:00 1970" 4096 8 0 foo Man braucht kurz um die Infos geistig zu sortieren. Die Manpage von stat ist garnicht mal so aussagekräftig.
weiterlesen...

sadcat

2017-02-03 @ config, python, ssh
Vor Kurzem schrieb ich einen Config Generator für ssh. Das hört sich unsinnig an und ist es wahrscheinlich auch. Der Grund warum ich das tat liegt nichtmal an der Tatsache, dass Funktionalität im Konfigurationsformat fehlen würde. Nein. Vielmehr daran das ich mir angewöhnte kleine Aliase für Server zu benutzen statt deren vollständigen FQDNs. Hostnames mit denen ich üblicherweise konfrontiert werde sehen (leicht obfuscated) so aus: nyc-cexapsdrap21.company.com. Ich gewöhnte mir an einfach drap21 als Alias zu benutzen.
weiterlesen...

Auf dem 33c3 hatte ich kurz Lust etwas umzusetzen, dass ich schon länger geplant hatte. Seit der Umstellung des Blog Themes benutze ich kein isso mehr. Um trotzdem Feedback (z.B. per Mail) an posts anhängen zu können hab ich mir überlegt Kommentare im Yaml des Blogposts abzulegen. --- title: Als ich begann die Wikipedia zu editieren. comments: - author: Anonymous content: "Wurde ja inzwischen gelöscht schade D:" date: '2016-02-01T19:57:44.804276' - author: Bob content: "Test.
weiterlesen...

TL;DR: 2013 zog ich meine Lesezeichen aus dem Browser zu Pinboard. 2015 von Pinboard auf die Cmd zu bm und später rvo. Jetzt wieder zurück zu Pinboard. Fast 1,5 Jahre sammle ich nun Lesezeichen und Weblinks in der Commandline. Besser gesagt wurde rvo dafür etwas umfunktioniert. Warum hab ich nun meine Lesezeichen wieder zurück nach Pinboard gezogen? Auch nach der ganzen Zeit fällt es mir immernoch schwer mich zu motivieren für etwas wirklich ein Lesezeichen anzulegen.
weiterlesen...

Die ganze Geschichte mit spamd als Spamfilter ist schon etwas her. Nach bisschen über 2 Monaten bin ich eigentlich ganz zufrieden wie es läuft mit dem eigenen Mail Setup. spamd bleibt aber eben nur ein IP basierter Filter. Irgendeine Art von Contentfiltering braucht man aber trotzdem. Zumindest war meine Mailbox trotzdem ziemlich voll mit Mist. Da ich schon immer ein Fan von Bayesian Spam Filtering war wollte ich das wieder benutzen.
weiterlesen...

Als Sysadmin kommt man mit viel zu viel Technik in Kontakt die man gleich wieder vergisst und manchmal auch gleich wieder vergessen möchte. Schon öfters hab ich hier über Lösungen wie cmddocs oder rvo geschrieben und wie ich mit meinen Notizen zu solcher Technik umgehe und diese verwalte. Oder es zumindest versuche. Meistens schreibe ich mir Zeug auf wenn ich anfange mit mich mit neuer Technik zu befassen. Das hat sich sehr oft als nützlich erwiesen.
weiterlesen...

Seit 2-3 Monaten betreibe ich meinen Mailserver nun selbst. Dann wollte ich eine mail zu web.de schicken und wurde abgewiesen. 550-Requested action not taken: mailbox unavailable invalid DNS MX or A/AAAA resource record Was denn nun? Egal. Ich habs natürlich falsch gemacht. Für die Domain noqqe.de gabs den MX mail.n0q.org und der war ein CNAME auf aax.n0q.org. Letzterer hat eine saubere Rückwärtsauflösung für v4 und v6. Nach etwas genauerem Recherchieren in der K4CG zeigt sich dann in RFC2181 der treffenderweise “Clarifications to the DNS Specification” heisst:
weiterlesen...

Moderne Websites

2016-11-11 @ blog, css, js
Websites sind ja seit Kurzem im Durchschnitt größer als Doom. Furchtbarer Trend. Mich störte schon länger so einiges an meinen Blog. Deswegen gabs jetzt mal Veränderung. Irgendwie bisschen Bloated und ich hab das CSS selbst nicht mehr verstanden. Die Webfonts mussten weichen. Weniger HTML, weniger CSS, weniger JS mit Highlightning-Foo. Hier mal der Vergleich Man kann auch ungenutzte CSS Klassen wunderbar mit uncss ausbauen.
weiterlesen...

Magic ist ein Sammelkartenspiel. Seit mein Cousin mir mit 10 ein paar Karten geschenkt hat geht das so. Ich spiele nie wirklich regelmäßig, noch kenne ich mich besonders gut aus. Ob damals zu Schulzeiten, während der Ausbildung oder auch gerade aktuell wieder. Das Fantasy Spiel irgendwo zwischen Schach und Poker muss man irgendwie mögen. Auch wenn Fähigkeiten und Spielmechanismen in den letzten Editionen etwas ausarten und gefühlt immer verrückter werden.
weiterlesen...

Ich bei meiner Suche nach Antispam Lösungen stolperte ich über http://bgp-spamd.net. Jemand den ich vergessen habe, hatte mir davon schonmal erzählt und eigentlich macht das Sinn. Wie der Zufall so will habe ich überhaupt keine Ahnung von BGP. Leider. Solche Sachen sind aber auch schwer zu lernen, wenn man nicht gerade bei einem ISP arbeitet :( Wenn dafür jemand Tools/Anleitungen hat die lesenswert sind, bitte her damit. Wie auch immer. Ich konfigurierte erstmals einen BGP Daemon.
weiterlesen...

Nachdem ich nun als Mailhoster schon 1&1, Uberspace und neomailbox.net durch habe und sich mein Stack immer und immer wieder verändert kam es nun doch mal dazu, dass ich meinen eigenen Mailserver betreibe. Der Stack (ich sage so oft Stack, weil das so hip ist) besteht aus Dovecot und OpenSMTPD. Daher sah ich mir auch gleich mal die Lösung aus base in OpenBSD an. spamd ist eine wunderbare kleine Lösung zum Blocken von IPs die sehr eng mit pf zusammenarbeitet.
weiterlesen...

Ich hatte längere Zeit einen kleinen Paste Daemon benutzt der pastecat heißt. Er war wunderbar. Hatte ein einfaches Interface mit Commandline Options, in Go geschrieben, globale Speicherplatzbegrenzungen, Max-Age Settings und ein einfaches Webinterface. Was er leider nicht kann (und das mit Absicht) sind MIMETypes. Dafür interessiert sich der Daemon nicht und ist auch nicht im Scope. In Firefox endet das beim Anzeigen eines .png in einfach nur ASCII Kram auf dem Bildschirm des Users.
weiterlesen...

Mit Login Classes lassen sich allerhand Limitierungen für Benutzer und Gruppen in OpenBSD regeln. Wer also bei seinem Webserver auf das OpenFiles Limit läuft oder beim Compilen von Software XY einen OutOfMemory Fehler bekommt sollte sich das mal anschauen. Hier lassen sich auch Authentication Methods und ganz viel anderer Kram definieren. Die Manpage würde ich jedem mal empfehlen. $ doas vim /etc/login.conf staff:\ :umask=022:\ :datasize-max=1024M:\ :datasize-cur=1024M:\ :maxproc-max=1024:\ :maxproc-cur=1024:\ :openfiles-cur=2048:\ :openfiles-max=2048:\ :stacksize-cur=4M:\ :localcipher=blowfish,8:\ :tc=auth-defaults:\ :tc=auth-ftp-defaults: Aber welche Klasse hat mein User eigentlich?
weiterlesen...

Eigentlich wollte ich nur eine neue Tastatur. Das war schon der erste Fehler. Ehe man sich versieht fällt man hinein in den Kaninchenbau mechanischer Tastaturen. Wo fängt man an. Man ließt Begriffe wie TKL, PBT und DSA. Als Otto Normalverbraucher hat man davon noch nie etwas gehört. Zuerst ist einmal wichtig überhaupt das Format zu kennen. Die Größe eines Boards wird von 60% bis 100% definiert. Aber auch 66 Keys was eben dann 65 / 70% heisst.
weiterlesen...

https://organic-entropy.org
weiterlesen...

In der K4CG haben wir seit Längerem ein paar Phillips Hue Lampen die wir auch über ein CLI steuern können. Wir wollen das auch übers Internet steuerbar haben um die Glühbirnen letztendlich mit dem Bot Rezeptionistin zu bedienen. Das Problem dabei: Wir haben nur eine permanente IP die v6 ist und die Hue Bridge kann nur IPv4. Deshalb musste irgendwie eine Weiterleitung von einer v6 Adresse zu einer internen v6 Adresse her.
weiterlesen...

Hadoop Filesystem Informationen können echt ziemlich verwirrend sein. Zuerst, sieht so aus als würden erstmal 3.69 TB benutzt werden. Als Admin ist dann erstmal alles cool. Bis man das Cluster verkleinern will und Daten wegschmeissen muss. $ hdfs dfsadmin -report | head -11 Configured Capacity: 10498624905216 (9.55 TB) Present Capacity: 10496880074752 (9.55 TB) DFS Remaining: 6441878704128 (5.86 TB) DFS Used: 4055001370624 (3.69 TB) DFS Used%: 38.63% Under replicated blocks: 0 Blocks with corrupt replicas: 0 Missing blocks: 0 Missing blocks (with replication factor 1): 0 Irgendwo müssten sich die 3 TB aber jetzt auch finden lassen.
weiterlesen...

Habe ja nun schon oft angedeutet, dass ich an etwas bastle, was langfristig cmddocs ablösen wird. An diesem Stück Software habe ich sehr lange gebastelt. Fast 5 Monate. Es war aber nicht das Coding, viel mehr das Konzept. Im Nachhinein betrachtet hätte ich mir im Vorfeld mehr Gedanken machen sollen und danach mit der Implementierung beginnen. Vor einer Woche hab ich es auf Github geladen. Während cmddocs filebasiert ist, speichere ich bei rvo alles in einer MongoDB Instanz.
weiterlesen...

Wie schon oft erwähnt, nutze ich Taskwarrior zum Verwalten meiner Todos. Bei allen Todo Listen ist immer das Problem - zu viel zu erledigen. Man fühlt sich als würde man gegen eine unendliche Menge an Todos ankämpfen die niemals weniger wird. Vor ein paar Wochen las ich dann diesen Lifehacker Post. Im Grunde steht da nur “Sieh dir an was du geschafft hast”. Deshalb hab ich mir mit ein wenig Python auch soetwas gebaut.
weiterlesen...

entbehrlich.es

2016-04-26 @ projekt, web
Im Moment mache privat ich ziemlich wenig Technik oder Admin Zeug. Das liegt zu großen Teilen an rvo, aber auch an entbehrlich.es. Ein Projekt, dass aus etwas entstanden ist, dass ich mir seit einiger Zeit angewöhnen will. Mehr Wikipedia lesen. May I introduce to you.. https://entbehrlich.es/ Was ich dabei so finde und interessant ist, landet auf entbehrlich.es. Details auch auf der About Page.
weiterlesen...

In der Arbeit komme ich häufiger mit BigData in Berührung. BigData. Ein hartnäckiges Buzzword, das sich seit Jahren in der IT Branche hält. Irgendwie geht es um Hadoop. Der Standardstack ist ziemlich robust. Also Hadoop HDFS und Hadoop MapReduce. Aber es gibt noch 100 andere Software Projekte die sich BigData auf die Fahne schreiben. Ein kleiner Auszug: Hive, Spark, Impala, Tez, HortonWorks, Cloudera, Redshift, Kinesis, ElasticSearch, Tableau, Flume, Storm, Druid, Flink, HBASE, Drill, Kafka, Oozie, Knox, Parquet, Sqoop, Crunch, Lumify, Solr, Samoa, Yarn
weiterlesen...

Wegen rvo und cmddocs musste ich in letzter Zeit ziemlich an meinen Development Kenntnissen arbeiten. Dabei ist eine Menge Zeug heraus gekommen. Das ganze läuft relativ unprofessionell ab. Ich nutze weder PyCharm noch sonst irgendwelche fancy IDEs. Ich entwickle meinen Python Kram unter OpenBSD auf der Commandline mit vim. Der Rest sind kleine Zusatztools. Setuptools Zugegeben, in das Thema pip Packages einzutauchen ist irgendwie unschön. Undurchsichtig, solange man das nicht mal kurz gezeigt bekommt.
weiterlesen...

Ich schreibe schon seit Längerem eine Art Rewrite von cmddocs. Diesmal aber mit MongoDB als Backend. Darin liegen meine Notizen, Wiki, Zitate, Codeschnipsel und Journal. Wie genau das aussieht, wird ein anderer Post beschreiben, wenn ich es mal OpenSource machen sollte…irgendwann™ Auch wenn die MongoDB mit Authentication gesichert und der Transportweg mit TLS verschlüsselt ist (Data-in-Transit), verspürt man wie bei Full-Disk-Encryption den Drang die Daten auch auf der Platte zu verschlüsseln.
weiterlesen...

Twitter Cards sind diese seltsamen kurzen Vorschauen die einem auf Twitter bei geposteten Links angezeigt werden.

Bei den meisten Zeilen werden nur statische Dinge aus dem Hugo Context oder der Konfiguration angezogen. Die einzige interessante Zeile ist wohl der twitter:title. Damit nicht nur einzelne Blogposts sondern auch Seiten wie Archiv oder Home mit dem richtigen Seitentitel bestückt werden ist die if/else Unterscheidung nötig.

weiterlesen...

Man kommt sich wieder vor wie 14. Damals, als man sich in der Schule freute am Internet zu sitzen und nach Lycos und Yahoo nicht mehr wusste, wohin man eigentlich surfen soll. Zumindest hatte ich dieses Gefühl am 32c3, als ich mich mal etwas besser umsah innerhalb der Darkweb^WCyber^WHidden Services mit den (jetzt per RFC gesicherten) .onion Adressen. Wo steht eigentlich Tor? Wer hat davon etwas? Wenn ich nicht gerade als Whistle-Blower irgendwelche Dokumente in einen SecureDrop einwerfen will oder auf einer bestimmten Site Materialien erwerben möchte, ist das richtig schwer zu beantworten.
weiterlesen...

OpenBSD ist eine der am Besten dokumentierten Betriebssysteme überhaupt. Nichts, aber auch garnichts, führt an der offiziellen Upgrade Dokumentation vorbei, da diese jedes mal auch ein wenig anders ist. Trotz allem Pflege ich so meine eigene kleine Anleitung in cmddocs um die vier Kisten unter meiner “Obhut” unfallfrei durch das Upgrade zu führen. Vor allem da nicht alle Aspekte in der offiziellen Anleitung ausgeführt werden. Seit 6 Releases mach ich das jetzt so.
weiterlesen...

Ich begann vor kurzer Zeit, die Wikipedia zu editieren. Der OpenBSD Artikel Ich hab vorher noch nie irgendwas in die Wikipedia eingetragen. Und ich kann auch nicht sagen warum ich das jetzt mal machen wollte. Spieltrieb vielleicht. Es begann mit dem Einfügen der Versionstabelle in den OpenBSD Artikel. Ich klaute mir eine Vorlage zu einer Versionstabelle aus einem Artikel, an den ich mich nicht mehr erinnern kann, editierte ein bisschen und am Ende kam das heraus was jetzt ersichtlich ist.
weiterlesen...

Ich benutze vim für so gut wie alles. Blogposts, Mails, Notizen, Dokumentation, Skripte und Code. Doch egal wie sehr ich diesen wunderbaren Editor auch konfiguriere, es kommen immer wieder Situationen auf, in denen das ein oder andere Setting keinen Sinn ergibt. Spelling, Textwidth und Wrapping sind zum Beispiel solche Settings. Über einen Blogpost über Vim mit Markdown stiess ich dann auf ein Plugin, welches sich um Soft-/Hard-Wrapping kümmert.
weiterlesen...

MUDs sind textbasierte RPGs aus der ganz frühen Zeit der Videospiele. Man verbindet sich ganz altmodisch per telnet auf Port 23 und es kann los gehen. Ich habe das vor Jahren mal ausprobiert, aber gleich wieder verworfen. Vor ein paar Wochen musste ich aber wieder daran denken und angefangen das MorgenGrauen zu spielen. Typischerweise befindet man sich in Räumen bzw Feldern, die mit einem 3-4 Zeilen langem Beschreibungstext die Umgebung spezifizieren.
weiterlesen...

Ja, tatsächlich mal wieder Linux. Der neue Server der K4CG läuft mit NixOS. Habe ich damit vorher schonmal was gemacht? Nö. Aber das Konzept ist vielversprechend. NixOS ist nicht wie jede andere Distro. Sie besteht aus dem Paket-Manager nix und einer einzigen deklarativen Config die mit Modulen benutzt wird. Verschiedene Versionen von Libraries oder andere Software koexistieren auf dem System. So ist es auch möglich das User ihre eigenen Programme installieren ohne das System zu beeinflussen.
weiterlesen...

Seit iPhoto mit “Photos” generalüberholt wurde ist die Kartenübersicht mit GPS Koordinaten sehr schlecht geworden. Informationen werden beim Zoom verschluckt, die Karte ist entweder winzig klein oder nur ein Subset aus allen Bildern. exiftool Die wundervolle Software exiftool lässt Meta Daten aus Bildern lesen und schreiben. Mit folgender Zeile werden für alle Bilder die GPS Längen- und Breitengrade in Dezimalkodierung ausgegeben. exiftool -gpslongitude -gpslatitude -n -T /Users/noqqe/Pictures/Photos\ Library.
weiterlesen...

pssh

pssh war für eine Menge Tätigkeiten lange Tool der Wahl. Deployments, Services restarten, Files verteilen, User löschen, Hotfixes usw.

pssh -h ~/Code/mongoserver.txt -l root -t 350 -i "/etc/init.d/mongodb restart"

Der Nachteil ist aber allerdings, dass bei pssh Listen mit Hostnamen in Form von Files gepflegt werden müssen. Das wird schnell unübersichtlich und aufwändig.

weiterlesen...

Seit einiger Zeit verwende ich tarsnap als Backup auf meinen VMs. Die Crypto, der Preis, das System. Gefällt mir. Nun habe ich vor ein paar Wochen ein Stück Hardware gegen eine kleine VM ausgetauscht. Die Backups auf Tarsnap habe ich vorher noch nicht gelöscht. Da die Maschine nicht mehr existent ist, die Backups aber maschinen-gebunden, muss ich diese noch loswerden um nicht jeden Monat dafür mit zuzahlen.
weiterlesen...

Hatte gerade ordentlich Spass. Spontan eine MongoDB mit KeyFile und Auth aufgesetzt. So ein KeyFile ist eigentlich nur Random Content, der auf jeder Instanz gleich sein muss, um sicherzustellen das sich keine fremde Instanz einfach so in das MongoDB Cluster hineinschummelt.

weiterlesen...

Wenn ich nicht gerade mit IRC-Bot schreiben oder das Wiki für k4cg.org schön/neu mache, bastle ich immer wieder an cmddocs.

weiterlesen...

Ich glaube ich habe mich noch niemals bzgl. meiner privaten Situation mit Technik so wohl gefühlt wie bisher. Das Equipment, das OS. Macht Spaß und funktioniert. Ein bisschen wie bei usesthis.com (wtf, wie langweilig ist bitte das Setup von Bruce Schneier?) beschreibe ich mal was ich so benutze. MacBook Pro 13” Seit Ende 2014 benutze ich ein MacBook. Mein Zweites. Zwischenzeitlich hatte ich ein Lenovo Thinkpad x201 was zwar seitens der Hardware super geil war, mir aber das mit dem Betriebssystem und alles zum Hals raushing.
weiterlesen...

Etwas aus vim mit Tagbar oder mutt mit Sidebarpatch kopieren ist halt immer irgendwie kacke. Bei weechat gibts das gleiche Problem mit dem buffers Plugin und der nicklist. Kreuz und quer Pipes und nicks drin. Nervt. Deshalb hier zwei kleine Aliases, die ich mir gebastelt hab. /alias hidebars /bar hide nicklist ; /bar hide buffers /alias showbars /bar show nicklist ; /bar show buffers So ist’s für mich am Einfachsten irgendwelches Zeugs aus IRC zu kopieren.
weiterlesen...

Ein bisschen Hands-On an meine neue Blogging Engine. Bevor ich den Blog migrieren konnte fehlten noch einige Anpassungen am Theme. Da keines der Themes mir Out-of-the-Box gefallen hat, musste ich das Hyde Theme ziemlich aufbohren. Pagination Pages. Alle Blogposts auf der Startseite laden ist echt ungünstig. Pagination ist allerdings ziemlich gut dokumentiert. <div class="posts"> {{ $paginator := .Paginate (where .Data.Pages "Type" "post") }} {{ range $paginator.
weiterlesen...

Wie bereits auf Twitter gesagt, wer möchte darf gerne meine falschen Kommata reparieren und Rechtschreibfehler korrigieren. Zum Durchsuchen und Wiederverwenden ist der Source auf Github ebenfalls nützlich, schätze ich. <3 Github Repository: github.com/noqqe/noqqe.de
weiterlesen...

Seit 2013 benutze ich Pinboard. Letztens flog auf GitHub allerdings ein Commandline Bookmark Manager vorbei. Den Gedanken fand ich eigentlich total toll. Die Syntax fand ich komisch, Ausgabe sah strange aus. Aber es kam auch noch erschwerend hinzu, dass es nicht mal gebaut werden konnte. Also hab ich weiter gesucht und einen ziemlich schönen gefunden. bm ist in Bash geschrieben, sah schön aus, einfach gestrickt. Eigentlich super.
weiterlesen...

Ich war genervt. Oh mein Gott, wie war ich genervt. Von diesem ständigem Ruby, Octopress, Gem Fuckup, Pygments Fuckup. Octopress 2-3 Minuten Blog-Compiles für poplige 300 Posts. Man kann nie irgendwas updaten, da sonst der ganze Blog bricht. Theming ist scheisse Mit einem Ruby Gem eine Software bedienen die eigentlich Python ist. Abhängigkeiten Kryptische Fehlermeldungen SCSS und Konsorten Hauseigenes, nicht Markdown-konformes Auszeichnen von Images, Quotes, Codeblocks Aber am Meisten von der Struktur.
weiterlesen...

Für devnull-as-a-serivce hoste ich auf Port 9 über den inetd einen Discard Service. Aus historischen Gründen. Backwards compatibility. Letztens hatte ich bereits über ein paar Leute geschrieben, die sehr lange Connections zu Port 9 offen hielten. Über Monate. Aber wie viel Traffic haben diese Connections eigentlich verbraucht. Und überhaupt, welche Services verbrauchen auf meiner Kiste wie viel Traffic? Seit ich Tor Relays auf meinen Maschinen betreibe habe ich darauf nochmal ein extra Augenmerk.
weiterlesen...

Dwarf Fortress unter OSX Yosemite zum Laufen zu bekommen ist garnichtmal so einfach. Bisher hab ich immer direkt die Version von DF von den Entwicklern heruntergeladen. Diesmal die OS X Homebrew Version heruntergeladen. Die Probleme sind aber die gleichen. Installation Viel mehr als die Sources herunterladen und an eine bestimmte Stelle auspacken, wird bei der Brew Version auch nicht gemacht. brew tap homebrew/games brew install dwarf-fortress Da Dwarf Fortress auf viel X11 und deren Libraries aufbaut, Xquartz installieren.
weiterlesen...

Das Projekt OpenBL, dass ursprünglich die OpenSSH Blacklist war, hat auf der ganzen Welt verteilte Honeypots rumstehen und publiziert regelmäßig Blacklisten sortiert nach Zeitraum und Protokoll des Angriffs. Das Resultat daraus kann jeder frei benutzen und zum Beispiel in seine Firewall einbauen. Realisiert hab ich das über einen pf Table. table <blacklist> persist pass in quick from <admins> block quick from <blacklist> Die Regel ist relativ unspektakulär, abgesehen davon, dass die pass-Regel für die Admin IPs vor der Blacklist-Block Regel matchen sollte.
weiterlesen...

In Erinnerung

2015-01-31 @ ronno
weiterlesen...

Kommentar eines Users zum Launch von FreeBSD bei DigitalOcean. Einfach nur w0rd. Should have gone with OpenBSD instead to be honest. Half the requests on your UserVoice are for OpenBSD. All the coolest stuff in FreeBSD comes from OpenBSD. OpenBSD – the world’s simplest and most secure Unix-like OS. Creator of the world’s most used SSH implementation OpenSSH, the world’s most elegant firewall PF, the world’s most elegant mail server OpenSMTPD, the OpenSSL rewrite LibreSSL, and the NTP rewrite OpenNTPD.
weiterlesen...

Die Tage bin ich auf ein über 30 Jahre altes Stück Software gestoßen, dass seinen Ursprung in NetBSD hat. leave ist klein, simpel und nützlich. Tools die aus Jahrzehnten stammen, wo man als Admin noch Multi-User Großrechner administirert hat und CLI Programme um das Arbeitsleben herum programmiert hat. leave waits until the specified time, then reminds you that you have to leave. You are reminded 5 minutes and 1 minute before the actual time, at the time, and every minute thereafter.
weiterlesen...

“Ich habe mein eigenes Wiki programmiert. So einfach ist das.” In letzter Zeit hab ich damit den ein oder anderen seltsamen Blick kassiert. Tatsächlich ist aber alles etwas anders. gitit Ich war lange ein zufriedener User von gitit. Zugegeben, nur wenn es dann wirklich mal kompiliert war. Ich wollte nicht zum 3. mal nach neuem OpenBSD Release 4-5 Stunden verschwenden, das Stück Haskell gebaut zu bekommen.
weiterlesen...

Seit OpenBSD 5.6 hat sich die Konfiguration für IPv6 Router Advertisements geändert. Bisher hat man über sysctl ein globales Flag eingeschaltet, das die automatische Konfiguration von IPv6 Adressen erlaubt. Das Flag enabled die Option aber automatisch für alle Interfaces. Deshalb wurde es entfernt und durch ein Flag in ifconfig ersetzt. $ sysctl net.inet6.ip6.accept_rtadv=1 sysctl: fourth level name accept_rtadv in net.inet6.ip6.accept_rtadv is invalid Die neue Konfiguration wird nun in /etc/hostname.
weiterlesen...

Mein Mailprovider ist mittlerweile ein halbes Jahr neomailbox.net. Seit einiger Zeit hatte ich aber Probleme beim Einliefern von Mails zum SMTP Server. Mutt resettet beim SMTP mit CRAM-MD5 über SSL immer wieder die Verbindung. Kein Einliefern möglich. Eigentlich ist die .muttrc ziemlich straight-forward was das betrifft set smtp_url="smtp://user@neomailbox.net" set smtp_pass="PW" set ssl_starttls = yes set smtp_authenticators = "cram-md5" set ssl_force_tls = yes Debugging Also erstmal openssl angeworfen um damit zu schauen was die Serverseite so erzählt.
weiterlesen...

Ich komme immer mal wieder in die Verlegenheit in der Arbeit solo zu benutzen. Um doppelte Läufe von Cronjobs zu verhindern beispielsweise. Der betroffene Cronjob konnte nun aber schon mehrere Stunden nicht mehr ausgeführt werden. ./solo -port=3005 ./script.sh solo(3005): Address already in use Scheinbar läuft dieser Prozess noch, vermutlich ist er der eigentliche Prozess aber auf irgendeine Weise gestorben. Also machte ich mich auf die Suche nach dem Prozess, der den Port blockiert.
weiterlesen...

Ich habe verloren. Als ich gestern das OpenBSD unter devnull-as-a-service.com upgegraded habe, musste ich die Kiste durchbooten. Nachdem ich das Discard Protokoll über den OpenBSD inetd auf Port 9 aktiviert habe, haben ein paar Leute dort dauerhaft Connections geöffnet. Ich dachte, mal sehen wer längern kann. Client oder Server. Stellte sich heraus: die Clients. Aber da ich ein guter Verlierer sein kann, Respekt und Gratz.
weiterlesen...

Was ich ja schon immer komisch fand ist, dass die Dokumentation oder auch uch How-Tos im Netz was das Thema OpenBSD und IPv6 angeht echt ultra duerftig ist. Da ich meine Debian VM auf der ich weechat, mutt, jabber usw laufen habe vor nem Monat ebenfalls auf OpenBSD umgezogen hab, stellte sich mir das Problem schon wieder. IPv6 mit Router Adverisement (rtadv) Am komfortablesten ist natuerlich einfach das rtadv den Hosting Providers herzunehmen.
weiterlesen...

Reyk Floeter hat zuletzt begonnen seinen relayd zu forken und einen minimalistischen Webserver daraus zu bauen. Langfristig soll httpd in OpenBSD den erst kürzlich in Base gewanderten nginx ersetzen. Die Hintergründe dazu kann man gut im BSDNOW Podcast 053 nach hören. Zuerst denkt man so “Was? Noch ein HTTP Daemon?”. Zusammengefasst soll der neue httpd aber genau das werden (und vor allem bleiben) wie nginx angefangen hat. Plain, Free, minimalistisch, einfach.
weiterlesen...

Nachdem ich die letzte Zeit viele Betriebssysteme auf dem Thinkpad ausprobiert haben (FreeBSD, ArchLinux, ElementaryOS, OpenBSD) und nichts mich wirklich befriedigt hat, bin ich wieder zu Debian zurück. Einige Zeit später bekam ich in der Arbeit in MacBook. Fand wieder gefallen daran. Kaufte MacBook Pro (14. Generation). Dinge, dich ich bei beiden MacBooks als erstes verändert habe: Dock auf die linke Seite konfiguriert (in der Breite hab ich mehr Platz als in der Länge) Key Repeat und Delay until Repeat Rate für das Keyboard bis zum Anschlag verkürzt.
weiterlesen...

Im Rahmen von nichtparasoup ergab es sich, dass wir uns Gedanken über crawling machen mussten. Bei nichtparasoup sollen zufällig Bilder aus dem Netz wiedergegeben werden um wenn möglich den optimalen Unterhaltungswert für den “Zuschauer” darzustellen. Dabei galt es vier Probleme zu lösen: Möglichst aktuelle Bilder (kein alter Schrott) Niemals ohne Content dastehen Keine Duplicates Möglichst effizientes Crawling Wie also diese Kriterien am Besten vereinen?
weiterlesen...

Im Urlaub laß ich ein wunderbares Buch. The Phoenix Project. Das eBook handelt von Bill Parmer der von heute auf morgen zum Leiter der IT des ~4 Milliarden Dollar Unternehmens befördert wird, in dem er arbeitet. Wer ITIL, ISO20000 oder ISO27001 kennt, kennt einige Konzepte die hinter Opetations und Development stecken. Das Buch verpackt all die schönen Best Practices und Vorgehensweisen zur Beherschung moderner IT Abteilungen in einen Roman. Eine nerdige, lustige und teils schockierende Story, in der Bill die völlig marode IT im Trial and Error Verfahren trotz immer neuer Rückschläge wieder auf Kurs bringt.
weiterlesen...

Ab und an passiert es, dass Dinge die einfach funktionieren anfangen mich zu langweilen. So geschehen mit Uberspace. Das CentOS, der Apache2.2, die Sache mit den Domains. Im Grunde habe ich die 3 Dienste, die ich bei Uberspace nutze (Webserver für Blog, Mail, Domains) nun zu anderen Dienstleistern migriert. Blog Webserver Der erste “Dienstleister” bin ich gewissermaßen selbst. Die 1HE Dell Maschine die ich seit einiger Zeit bei meinem alten Arbeitgeber mit OpenBSD betreibe, hostet mit nginx den Blog.
weiterlesen...

MongoDB Cluster wollen nach der Installation wie jede andere DB getestet werden. Performance, Konsistenz bei vielen Writes, usw. Gerade bei Sharding und Indexing über mehrere Knoten verteilt möchte man das schon ausprobieren. Sind die Documents wirklich gleichmässig verteilt? Alle Zeiten der Auswertung und Interpretation der Ergebnisse spar ich mir jetzt. Der Fokus liegt ersteinmal auf dem “wie messen”. Write Der einfachste Weg war das Python Modul pymongo zu benutzen, welches über pip nachinstalliert werden kann.
weiterlesen...

Für die Mailingliste der k4cg zieht demnächst um. Weswegen ich mich mit einem dementsprechenden Setup auseinander setzen wollte. mlmmj Bisher läuft die ML mit mlmmj. Ich kannte das gute Stück vorher garnicht, macht aber einen sehr netten Eindruck. Einfach gestrickt, wenig Overhead, Plaintext Files ohne viel TamTam. Bei der Konfiguration kann man sich ohne Bedenken von mlmmj-make-ml leiten lassen. sudo aptitude install mlmmj mlmmj-make-ml Nachdem die selbsterklärende Installation abgeschlossen ist, noch in /etc/aliases eine Pipe einfügen für den entsprechenden User.
weiterlesen...

Passwörter für Datenbanken beispielsweise sind Optionen die sich als Commandline Argument direkt im Aufruf mitgeben lassen. Bei MySQL oder MongoDB ist das angegebene Passwort aber in der Prozessliste durch xxxx ersetzt. $ mysql -u noqqe -ppassw0rd -h localhost $ ps auxfww sshd: noqqe@pts/0 \_ -bash \_ mysql -u noqqe -px xxxxx -h localhost \_ ps auxfww Irgendwie blieb ich die Woche an dieser Tatsache hängen. Verstand ich nicht. Das OS bekommt doch den Aufruf des Programms und das Binary parst die bereits vorher übergebenen Paramter.
weiterlesen...

Die R Version 3.1.0 “Spring Dance” wurde released. Damit ändern sich auch die Modulpfade, sofern nicht global definiert. Paketmigration einfach und pragmatisch R> x <- list.files("~/R/x86_64-pc-linux-gnu-library/3.0/") R> sapply(x, install.packages) Macht mehr R.
weiterlesen...

In der k4cg laufen auf dem Beamer meistens irgendwelche Bilder von soup.io durch. Bisher mittels dem (fremdgehosteten) soupcache. Da diese in letzter Zeit oft keine Bilder auswirft und wir das Stück Software aufgrund der Codebasis auch nicht selber hosten können/wollen, hab ich letzte Woche etwas eigenes geschrieben. nichtparasoup Ums kurz zu machen, ein kleines Python Skript ersetzen Nodejs, MongoDB, Crawler-Shell-Skripte und viel zu viel JS-Code. Beim JavaScript-Part in der neuen Lösung geht großer Dank an Jan.
weiterlesen...

Admins. In der System Administration treffen Einstellungen aufeinander. Geschmacksrichtungen. Unterschiedliche Wissensstände. Glaubensrichtungen. Interessen. Vorlieben. Wer tut in einem Ops-Team was und warum. Was folgt ist ein Gedankenmodell. Solutions Lösungen. Eigentlich ist es das, worum es im Operations geht. Dem nachkommen von Anforderungen an ein System. Ob neue Komponente, Sicherheitslücke oder Setup-Aufbau, darauf lassen sich all diese Dinge herunterbrechen. Die angewendeten Lösungen (Changes) lassen sich in maximal 2 der nachfolgenden Kategorien einordnen.
weiterlesen...

Man stelle sich folgendes Szenario vor. Eine große CSV Datei enthält Datensätze. Eine weitere Datei enthält ~1,5mio IDs die ein Subset der Datensätze darstellen. Gewünscht ist ein File das alle Datensätze des Subsets enthält. for-loop grep Die gewohnte Pauschallösung für derartige Probleme. Ganz im Bash-Admin-Stil $ time for x in $(cat idsubset.txt) ; do > grep ^$x dataset.csv > done > result.csv Nur leider kommen dabei ganze 1,5 Records pro Sekunde heraus, was alles in allem in über 2 Wochen Rechenzeit endet.
weiterlesen...

“Machste halt mal kurz SSL am Webserver an”. So einfach ists halt leider nicht. Ich habe das so lange nicht in getan, weil weder Logins vorhanden sind noch geheimer Content publiziert wird. Wer möchte kann aber jetzt https://noqqe.de benutzten. Folgende Dinge haben sich geändert: Google Web Fonts now selfhosted (mit Clemens Skript) Hart kodierte Links mit sed auf relative Links umgestellt. Siehe RFC3986 Flattr Button durch statische Variante ersetzt Kein jQuery nachladen von extern mehr Kein Github nachladen mehr Kein Pinboard nachladen mehr ~50MB verwaiste Uploads entfernt Mit wget --spider tote Links entdeckt und korrigiert.
weiterlesen...

Mittlerweile ist mein 2048bit PGP Key mit ein paar Signaturen ca. 4 Jahre alt und auch etwas kurz. State of the Art ist wohl 4096bit. Der Migrationspfad auf einen neuen Key. Sicherung Sichern des alten Key Environments cp -a ~/.gnupg ~/.gnupg-old Neuen Key generieren Wesentlich für einen tollen neuen 4096bit Key ist ausreichend Entropy. Für aus der CPU generierte Entropie, kann havege installiert werden. $ cat /proc/sys/kernel/random/entropy_avail > 153 $ aptitude install havege $ /etc/init.
weiterlesen...

BitCoin. Chefinnen von Trading-Sites werden tot in Wohnungen gefunden. Ein Magic the Gathering Online Exchange geht insolvent. FlexCoin gehackt. Der Kurs zeigt sich trotzdem relativ unbeeindruckt, was mich irgendwie verblüfft. Egal. Es macht momentan Spass BitCoin zu verfolgen. Gerade die “Suche” nach Satoshi Nakamoto. 2011 bastelte ich einen Megabitmeter und als er mir letztens wieder in die Hände fiel, dachte ich mir hey, BitCoins<->Dollar anzeigen lassen!
weiterlesen...

Seit mittlerweile fast 3 Releases setze ich OpenBSD auf meinem Housing-Server ein. Ich mag das OS immernoch sehr gerne. Die WTF-Rate bei Software ist hier denkbar niedrig. Ganz ohne gehts aber leider auch nicht. Unter OpenBSD ist newsyslog für die Logrotation verantwortlich. Das gut abgehangene Stück Software ist wie immer toll dokumentiert und funktioniert. Nur leider ignoriert es Wildcards # logfile_name owner:group mode count size when flags /var/cron/log root:wheel 600 3 10 * Z /var/www/logs/*.
weiterlesen...

Heisenbug Aus der aktuellen Situation heraus suggerierte mir “Heisenbug” eher einen Methamphetamin kochenden Walter White. Bei näherer Betrachtung geht es aber doch um den Wissenschafter Werner Heisenberg. Abgeleitet von der Heisenbergschen Unschärferelation besagt Heisenbug, dass sobald Debugging-Methoden ergriffen werden, der Bug im Programm nicht mehr nachvollziehbar wird. Auch andere Wissenschaftler bekommen ihre Referenzen. Siehe Bohrbug, Mandelbug und Schrödinbug STONITH STONITH hatte ich bereits vertwittert. Shoot The Other Node In The Head
weiterlesen...

Teil 2 der Serie Crypto in Bash implementieren, heute: RSA. Schon vor Längerem hatte ich mal ROT13 in purem Bash geschreiben, einfach um zu sehen wies funktioniert. Auf dem #30c3, den ich letzte Woche besuchen durfte, ging es natürlich auch viel, viel um Crypto. Die Do’s and Dont’s sozusagen. Ein Vortrag war dabei besonders nett, da er als eine Art Leitfaden zu verstehen war, wie man es nicht machen sollte.
weiterlesen...

Eigentlich wollte ich nur Acrylamid ausprobieren. Ich evaluierte neue Software wegen des ständigen Fuckups mit Octopress und RVM. Ich lud also Acrylamid herunter, spielte damit herum, bastelte eine Demo Site mit etwas Layout Änderungen. Content bestand anfangs aus ein paar random Texten und “/dev/null” im Header. Irgendwann formte sich der Inhalt aber zu etwas Rundem und ich dachte, egal jetzt kauf ich mir die Domain zum entstandenen Text.
weiterlesen...

Seit ich auf der Arbeit Windows nutzen muss, störe ich mich am Font der systemweit irgendwie “ausgefranzt” wirkt. Ausgefranzt ist natürlich ein total professionell klingendes Wort, man könnte von irgendwas mit Anti-Aliasing sprechen aber dazu hab ich mich genau nicht schlau gelesen. Das erste Thema, auf das man stößt wenn man nach Font Rendering unter Microsofts Betriebssystem schlauließt heisst ClearType, doch egal wie viel ich damit herumgespielt hatte, kam dabei nicht heraus was ich mir vorstellte.
weiterlesen...

posativ hat neben seinem in Python geschriebenen Static Site Generator acrylamid seit kurzem auch sein eigenes Kommentarsystem wiederbelebt. Isso - Ich schrei sonst. Die Alternative zu Disqus die auch hier im Blog bisher zum Einsatz kam setzt auf Python auf, ist einfach einzubauen und sogar alle alten Disqus Kommentare lassen sich importieren. Für die User bedeutet das konkret kein Traffic mehr zu Gravatar, Disqus und keine lustige Registrierungen nötig.
weiterlesen...

Das Thema Online Banking ist eines bei dem ich regelmäßig mit Bekannten/Verwandten aneinander geraten könnte. Bzw. es mittlerweile einfach sein lasse mich zu Diskussionen hinreissen zu lassen. Um halbwegs sicher zu sein, muss man dabei garnicht so viel beachten. Online-Banking möchte man wohl möglichst nicht auf einer Maschine betreiben, die auch zum Surfen/Arbeiten/Sonstigem benutzt wird, da die Gefahr hoch ist sich auf normalen Seiten etwas einzufangen.
weiterlesen...

devnull-as-a-service.com
weiterlesen...

Als ich das letzte Mal über Spam schrieb wurde mir bogofilter empfohlen. Die Software setzt die Idee Paul Grahams des Better Bayesian Filtering um. Im Endeffekt geht es um statistische Auswertung des Contents. Setup Praktisch wird bogofilter trainiert. Was ist Ham, was Spam. bogofilter -s -B /home/noqqe/Maildir/.Spam/ bogofilter -n -B /home/noqqe/Maildir/INBOX Einmal angelernt ensteht eine wordlist.db im BerkeleyDB Format in der die erlernten Wörter mit Good/Bad Scores abgelegt werden.
weiterlesen...

Eine dieser langen Traditionen unter Unix Usern ist es über useless-use-of-cat zu ragen. Unbegründet finde ich. Auf Twitter erklärt jemand Map-Reduce mithilfe einer Versinnbildlichung unter Unix. Was in den Replies alles auftaucht sollte jetzt keine Überraschung mehr sein. Mich beschleicht das Gefühl, dass mittlerweile mehr aus Gewohnheit drauf los getrollt wird. Dabei gibt es so viele Vorteile. Lesbarkeit Ganz ehrlich, bash-Zeilen die mit cat beginnen sind fucking lesbar.
weiterlesen...

Glaubt man dem git log wars wohl irgendwann 2011 als ich meinte , ich bräuchte jetzt umbedingt eine Möglichkeit Barcharts in meinem Terminal darstellen zu können. Ich bastelte in bash die beiden kleinen Skripte die im GitHub Repository statistical sind. Was damals sehr uncool war, war das ich (abgesehen von einem gif) nichts tun konnte um schön darzustellen wie das Ergebnis aussieht. Abgesehen vom Pasten der Ausgabe in das readme.markdown File, was wie man sieht total hart gescheitert ist.
weiterlesen...

LinuxContainer sind für mich Wegwerfartikel. Benutze sie als Sandboxes um neue Software auszuprobieren, bestimmte Software zu Betreiben und um der Dependency-Hölle zu entkommen. Auch dieser Blogpost wurde in so einer LXC-VM gebaut. Mirroring Natürlich fällt bei (im Schnitt) 20-25 VMs zusätzlicher Verwaltungsaufwand an, was ich bisher sehr gut mit Puppet erschlagen konnte. Ein anderes Problem sind aber die OS Updates der Maschinen. Dazu nutze ich alle Monat clusterssh. Klar, wenn alle Maschinen gleichzeitig Updates ziehen macht das weder meiner Internetanbindung noch dem Mirror-Betreiber Spaß.
weiterlesen...

Eines der Dinge die R wirklich gut kann ist Daten darstellen. Gerade im Interactive Mode. Konkret migriere ich gerade meine Graphen/Statistiken in ein PDF. Um mit R portablen Output zu generieren ist knitr zum DeFacto Standard geworden. Möglich sind zum Beispiel Markdown und TeX. Allerdings funktioniert dort die einfache print() Methode für Daten nicht so gut, dafür gibts das Plugin xtable. Man muss ja zum Glück kein TeX Gott sein um ein kleines Template zu ergoogeln.
weiterlesen...

Im Juli werde ich wohl etwas Sightseeing auf den britischen Inseln betreiben. Es ist anscheinend eine gute Idee etwas lokales Bargeld zu besitzen. Ich fragte Siri ob ich morgen Euro gegen Pfund tauschen solle. Wechselkurse sind Dinge für die ich mich noch nie interessiert hab. Wann geh ich zur Bank. Wann ist es teuer, wann nicht? Eigentlich wollte ich das schon ewig gemacht haben da man munkelte, der Kurs wäre gerade gut.
weiterlesen...

Unter Linux hatte ich meist fail2ban benutzt um die Maschine gegen ssh Bruteforce Attacken zu sichern. Für OpenBSD hatte ich bisher zu sshguard gegriffen, was aber Overkill ist. Ich muss nicht erst Logs parsen um zu wissen wer zu häufig am ssh Port anklopft. Block Wenn ich an pf rumspiele, aktiviere ich einen Cronjob der alle 10 Minuten /sbin/pfctl -d ausführt (denn er weiss nicht, was er da tut!
weiterlesen...

Eingestaubt, Zukunft ungewiss. Weg von MySQL. Zeit sich endlich mal MariaDB anzusehen. Am ehesten hat mich daran die Replikation interessiert. Einzele Bonus-Features habe ich mir dagegen nicht wirklich angesehen. LXC Setup Aufgrund meines lokalen LXC Setups hat sich das Testen echt einfach gestaltet. Ich habe zwei Maschinen nach diesem (empfehlenswerten) How-To aufgesetzt. Die restlichen Maschinen hab ich mit mlxc geklont. $ C=36 $ for x in {3.
weiterlesen...

Zum Thema Application-Server absichern gibts unzählige Posts mit den obskursten Vorschlägen. Hier meiner. HTTP Methods Die meisten Entwickler machen leider nur wenig Gebrauch von der vollen Breite an HTTP Methoden. Das merkt man bei REST-APIs, aber auch anderswo. Überflüssige Methoden können auch bereits vor der Applikation abgefangen werden. Vorher aber mit Software/Kunden eurer Wahl abklären. Per Default ist bei Tomcat nur TRACE deaktiviert. In der webapps/$APP/WEB-INF/web.
weiterlesen...

Wenn ich Urlaub habe spiele ich Dwarf Fortress, bastle an coffeestats.org und schaue mir Protokolle an, die kein Arsch mehr kennt. Port 9: Discard Protocol Erster Kandidat. Wow. Ein Protokoll das deine Message nimmt und wegwirft. Eingeführt wurde es aus Debugging Gründen. In den meisten Cases möchte ich wohl eher feststellen, dass das Netz funktioniert. Nicht umgekehrt. Vielleicht eine Art Null-Hypothese-Protokoll für den TCP/IP Stack. Wie die meisten der nachfolgenden Protokolle ist Discard in (openbsd-)inetd enthalten und können durch einen einfachen Eintrag aktiviert und zum Spielen benutzt werden.
weiterlesen...

Zuerstmal, Bitcoin: Toller denzentraler Shit weil alle Banken böse, harter Crypto-Porn. Versteh ich alles. Total gut. Nachfolgend, Dinge die ich an Bitcoin nicht verstehe. Running out of Coins 11 Millionen Bitcoins von maximal 21 Millionen Bitcoins sind bereits gemined. Mehr sind wohl nicht vorgesehen. Ich liess mich gerade per Twitter aufklären, dass garnicht mehr 50 BTC pro erfolgreichen Block ausgezahlt werden, sondern nur noch 25 BTC. Mit stetiger Verringerung der Mining Rewards sollen die 21M Bitcoins wohl bis ins Jahr 2140 ausreichen.
weiterlesen...

Ich war auf der Suche nach einem neuen Mailclient. Thunderbird wird nur noch mit Security Fixes versorgt. Und außerdem hängt er mir zum Hals raus. Bloated Shitfuck. Probierte viel aus. KMail, Geary, ClawsMail. Wobei letzteres mir noch am Besten gefallen hat. Vollkommen überzeugt war ich aber nicht. Ich musste mir erstmal klar werden was ich will. Nach etwas hin und her habe ich mich auf folgende Punkte festgelegt: Minimalistischer Client GPG/PGP-Fähigkeit Schnelle und bedienbare Suche Das dürfte eigentlich ja nicht so schwer sein.
weiterlesen...

Ehrlich gesagt fühlt man sich als wäre es 1990, wenn man anfängt sich zu Performance Tuning für OpenLDAP schlau zu lesen. Das Default Backend BDB kann eigentlich Out-of-the-Box benutzt werden. Sobald ein paar Objects im DIT sind begegnet einem aber schnell die Cache Size. $ slapindex 51252ecd bdb_db_open: warning - no DB_CONFIG file found in directory /usr/local/var/openldap-data: (2). Expect poor performance for suffix "dc=noqqe,dc=de". Welche Files sind interessant? Um die Files der Berkely DB zu finden und auswerten zu können werden extra Tools benötigt.
weiterlesen...

Ich setzte mich gerade wegen LPIC 301 etwas mit OpenLDAP auseinander. Um Dinge zu testen wie Replikation über syncrepl, Index Aufbau oder Accesslists für Gruppenadmins brauche ich Datensätze. Um diese Daten nicht alle von Hand schreiben zu müssen, hatte ich mir überlegt eine Art Automatismus zu basteln, mit der ich LDIF Files erzeugen kann. Vor kurzem habe ich (als ich auf der Suche nach einem Hostnamen war) mal larisweb.de gefunden. Dort gibt es tolle Generatoren für Fantasy Namen die man mit ein bisschen curl schoen maschinell auslesen kann.
weiterlesen...

gitolite hat einen eingebauten Mechanismus sich selbst zu replizieren. Finde aber unschön dass ich dafür einen zweiten gitolite betreiben und neue Repos auf beiden Systemen anlegen muss. Wie also das Backup realisieren. rsync für git ist in an so vielen Stellen eine Verschwendung von Ressourcen, Zeit und Funktionalität. Macht einfach keinen Sinn. Wer sich schonmal mit ssh git@git.example.com auf seinen Server verbunden hat weiss aber, dass bei vorhandenem Public Key alle für diesen User verfügbaren Repositories ausgespuckt werden.
weiterlesen...

Zugegeben, ein Projekt über das ich im Blog noch nie gesprochen habe ist coffeestats.org. Holger wollte sich mit PHP beschäftigen, ich mit Google Charts. Wir taten uns zusammen. Das ist nun über ein Jahr her. Es geht grundsätzlich nur darum den eigenen Koffeein-Konsum zu tracken und statistisch auszuwerten. Auf der Site haben im Grunde nur Holger, ein paar Kollegen und ich rumgelurked. Vor kurzem empfand Jan es für sinnvoll einen kleinen Blogpost über das Projekt zu schreiben.
weiterlesen...

Vor kurzer Zeit ging ja dieser Tweet im Netz herum. Es ist nicht so das ich mit der Message des Graphs nicht einverstanden wäre :P oder den Spass nicht verstanden hätte, aber da ich mir zur Zeit ein paar Bücher über Statistik reinziehe bin ich was Graphen angeht etwas aufmerksam. Warum also die Zoidberg’sche Headline für diesen Post? Der Nachbau und die Lesbarkeit Zuerstmal hab ich den Graphen mit Google Charts einfach nachgebaut um zu sehen, ob ich die Werte abbilden kann.
weiterlesen...