instant-thinking.de

just enough to get you started and leave you confused

Gone fishing

| Kommentare

Wir sind dann mal ein bisschen mit dem Zug und dann ein bisschen mehr mit dem Schiff fahren. Damit besuchen wir in den nächsten sieben Tagen auf der Metropolenroute die Städte:

Haltet uns die Daumen, dass auf der Reise alles gut klappt.

Bis dahin, ahoi, be good, take care.

(Headerbild via: kees torn unter CC BY-SA 2.0)

  1. Vielleicht haben wir ja sogar Zeit einen Blick auf den CSD zu werfen…

Oakley - Kundenservice wie er sein sollte

| Kommentare

Das wird hier dann doch langsam eine erfreuliche Reihe mit dem Kundenservice wie er sein sollte…

In mein Gesicht passen Sonnenbrillen meiner Meinung nach oftmals nicht so richtig gut rein. Sonnenbrillen sind aber wichtig, insbesondere wenn der Evil Day Star die Sonne am Himmel steht kann ich es mit Kontaktlinsen und Sonnenbrille immer noch am besten aushalten. Vor vielen Jahren habe ich dann die Oakley Minute 1.0 für mich entdeckt und über die Zeit vier verschiedene Exemplare erworben. Dunkelblau, Schwarz, Hellblau und noch einmal Schwarz weil die erste leider mal verschütt gegangen ist. Die Brillen waren nicht billig1, halten sich aber auch schon alle deutlich über 10 Jahre in meinem Besitz und sind mir wirklich sehr ans Herz Gewachsen.

Und da es diese Brillen heute nicht mehr neu zu kaufen gibt2, muss man halt auch schon mal einen Bügel wieder zusammenkleben, hilft ja alles nichts…

Was aber nach all den Jahren doch zu wünschen übrig lässt, sind die Earsocks genannten Gummiüberzüge der Bügel. Insbesondere die weißen Ohrensocken an der hellblauen Brille waren nicht mehr so richtig schön anzusehen.

Die Teile will man dann aber auch wirklich nicht gebraucht kaufen. Daher habe ich einfach mal den Oakley-Support kontaktiert um nach Ersatzteilen zu fragen. Eben genau die Earsocks und zwei dunkelblaue Ersatzbügel wollte ich nachträglich käuflich erwerben.

Einen Tag später war schon die Antwort da:

Sehr geehrter Herr Wegner,

vielen Dank für Ihre Email.

Wir haben eine neue Bestellung (Bestellnr.: 12345678) für die neuen Ear Socks (Bügelenden) kostenlos aufgegeben.

Sie sollen es mit UPS in ca. 4-5 Werktagen erhalten:

Bezüdlich der ganzen Bügel haben wir es überprüft und leider müssen wir Ihnen mitteilen, dass wir keine mehr auf Lager haben, obwohl wir uns bemühen, Ersatzteile für die Reparatur unserer Auslaufmodelle so lange wie möglich anbieten zu können.

Allerdings freuen wir uns Ihnen mitzuteilen, dass Sie Anspruch auf eine Ermäßigung von 30% bei Ihrem nächsten Einkauf auf
www.oakley.com haben.

Falls Sie interessiert sind, werden wir Ihnen einen Promo-Code zusenden.

Vielen Dank.

Entschuldigen Sie uns die Unannehmlichkeiten

Mit freundlichen Grüßen,

MARCEL
OAKLEY EUROPE CUSTOMER CARE

Irre nett, oder? Dass die Ersatzteile irgendwann nicht mehr verfügbar sind kann ich einsehen. Und den angebotenen Promo-Code werde ich sicher auch in Anspruch nehmen…

Wie angekündigt brachte der UPS-Mann ein paar Tage später dann auch schon die frischen Earsocks vorbei. Kostenlos, gratis und ohne Versandkosten. Nur, weil man vor Jahren mal eine Sonnenbrille gekauft hat.

Das Aufziehen der neuen Socken auf die Bügel war dann3 eine Sache von Minuten. Und seitdem kann ich meine hellblaue Lieblingslaufsonnenbrille wieder mit auf die Piste nehmen. Schaut wieder aus wie neu und macht schnell.

In diesem Sinne gibt es also auch in der Firma Oakley einen Hersteller, der zwar relativ hochpreisige Produkte anbietet dafür aber auch nach Jahren und Jahrzehnten hervorragenden Kundenservice bietet. Color me impressed.

Vielen Dank von einem zufriedenen Kunden an Marcel und das restliche Team des Oakley-Supports.

  1. Und werden auch heute noch gebraucht um die 100 € herum gehandelt…

  2. Die 2.0er Minute ist ja so neumodischer Kram und ich bin mittlerweile in einem Alter, in dem man rasch #krückstockgefuchtel hashtagged…

  3. Mit ein bisschen Spülmittel auf den Bügeln…

QuickLinks vom 02. Juni bis zum 06. Juli

| Kommentare

Meine pinboard.in-Links vom 02. Juni bis zum 06. Juli:

  • KeyCastr - is an open-source keystroke visualizer.
  • bookmark-archiver - saves an archived copy of all websites you star. Outputs browsable html archives of each site, a PDF, a screenshot, and a link to a copy on archive.org, all indexed in a nice html file.
  • Vimmy - is very neato Vim-ness for Safari. Finally.
  • The Tectonic Typesetting System - is a modernized, complete, self-contained TeX/LaTeX engine, powered by XeTeX and TeXLive. For those new to it, TeX is a programming language that you use to create typeset documents rather than computer software. TeX is quite archaic in some ways, but it’s still the tool of choice for documents that require precision typography or ones that involve lots of mathematical equations, which makes it especially important in the sciences. Tectonic converts TeX files into PDF files.
  • Recoll - finds keywords inside documents as well as file names. Recoll will index an MS-Word document stored as an attachment to an e-mail message inside a Thunderbird folder archived in a Zip file (and more…). It will also help you search for it with a friendly and powerful interface, and let you open a copy of a PDF at the right page with two clicks. There is little that will remain hidden on your disk.
  • Alfred-Workflow - is a Python helper library for Alfred 2 and 3 workflow authors. Alfred workflows typically take user input, fetch data from the Web or elsewhere, filter them and display results to the user. Alfred-Workflow takes care of a lot of the details for you, allowing you to concentrate your efforts on your workflow’s functionality.
  • Apparix - allows fast command-line file system navigation by bookmarking directories and jumping to a bookmark directly, supported by tab completion.
  • Headspace - is the cool new 3D mind-mapping and outlining tool from Flat Black Films. It runs on iOS, including iPhone, iPod Touch, and iPad. You use it to construct hierarchical lists in a 3-D space and link between them.  Use it to get perspective on your ideas, game information, random thoughts, etc.  It’s like computer UI from the future, man.
  • hget - is a CLI and an API to convert HTML into plain text. Can be used to fetch a site’s HTML version and convert it into plain text, or to deliver plain text versions of your site dynamically.
  • ttygif - converts a ttyrec file into gif files.

QuickLinks vom 28. Februar bis zum 02. Juni

| Kommentare

Meine pinboard.in-Links vom 28. Februar bis zum 02. Juni:

  • Timetrap - is a simple command line time tracker written in ruby. It provides an easy to use command line interface for tracking what you spend your time on.
  • diff2html - generates pretty HTML diffs from unified and git diff outputs resulting in better diffs and unmatched reviews.
  • TaskJuggler - is a modern and powerful, Free and Open Source Software project management tool. Its new approach to project planning and tracking is more flexible and superior to the commonly used Gantt chart editing tools. TaskJuggler is project management software for serious project managers. It covers the complete spectrum of project management tasks from the first idea to the completion of the project. It assists you during project scoping, resource assignment, cost and revenue planning, risk and communication management.
  • Docutils - is an open-source text processing system for processing plaintext documentation into useful formats, such as HTML, LaTeX, man-pages, open-document or XML. It includes reStructuredText, the easy to read, easy to use, what-you-see-is-what-you-get plaintext markup language.
  • Duplicati - is a free backup software for Windows, macOS and Linux to store encrypted backups online. Duplicati works with standard protocols like FTP, SSH, WebDAV as well as popular cloud services. Backup files and folders with strong AES-256 encryption. Save space with incremental backups and data deduplication. Run backups on any machine through the web-based interface or via command line interface.
  • BorgBackup - (short: Borg) is a deduplicating backup program. Optionally, it supports compression and authenticated encryption. The main goal of Borg is to provide an efficient and secure way to backup data. The data deduplication technique used makes Borg suitable for daily backups since only changes are stored. The authenticated encryption technique makes it suitable for backups to not fully trusted targets.
  • MiniZinc - is a free and open-source constraint modeling language. You can use MiniZinc to model constraint satisfaction and optimization problems in a high-level, solver-independent way, taking advantage of a large library of pre-defined constraints. Your model is then compiled into FlatZinc, a solver input language that is understood by a wide range of solvers.
  • Deft - is an Emacs mode for quickly browsing, filtering, and editing directories of plain text notes, inspired by Notational Velocity. It was designed for increased productivity when writing and taking notes by making it fast and simple to find the right file at the right time and by automating many of the usual tasks such as creating new files and saving files.
  • diff-so-fancy - Good-lookin’ diffs. Actually… nah… The best-lookin’ diffs. 🎉
  • Upspin - is an experimental project to build a framework for naming and sharing files and other data securely, uniformly, and globally: a global name system of sorts.

Hochzeitstag

| Kommentare

Heute vor sieben1 Jahren haben Kathi und ich geheiratet.

Ich wünsche der besten Ehefrau der Welt und mir eine wundervolle Kupferhochzeit2 und freue mich auf das nächste Jahr im aufregenden Hafen der Ehe.

  1. SIEBEN!

  2. Es gibt wirklich wunderliche Listen im Internet…

3

| Kommentare

Heute vor drei Jahren kam Nina auf die Welt. Und da so ein zweites Kind unfassbarerweise immer noch schneller groß wird als das erste, kann ich auch gar nicht so recht sagen, wo die Zeit geblieben ist.

Tochterkind, du hast deinen eigenen Kopf mit deinen eigenen Vorstellungen und das ist auch ganz genau richtig so. Dazu hast du im letzten Jahr auch deine eigene Brille bekommen. Für noch mehr Durchblick in den kommenden Zeiten. Mit drei Jahren wird das alles sicher noch mal interessanter mit dir werden.

Allesalles Liebe zu deinem dritten Geburtstag, rock on.

Octopress und Piwik

| Kommentare

Nachdem ich im letzten Post berichtet hatte, wie man ein Piwik auf Uberspace installiert1 geht es nun darum, eine Website2 mit dem notwendigen Piwik-Tracking-Code auszustatten.

Websites tracken mit Piwik

Diesen kann man manuell in der Piwik-Administration zusammenklicken und dann manuell auf allen zu trackenden Seiten einfügen aber das kann ja niemand wollen.

Daher sammelt die Piwik-Integrations-Site Links zu Plugins für mehr als 65 verschiedene Systeme, die dann automatisch dafür sorgen dass der Tracking-Code auf allen Seiten erscheint. Da sind sehr große und bekannte Systeme dabei wie Wordpress, Typo3 und Drupal. Auch etwas exotischere Kandidaten wie Hudson/Jenkins und GetSimple sind verfügbar.

Da werden also viele Leute sehr schnell glücklich werden.

Nun geht es hier in erster Linie eben um meine Seite und die wird immer noch mit einem antiken Octopress betrieben und das ist auf der Integrations-Site von Piwik nicht verzeichnet.

octopress-piwik auf GitHub

Der erste Google-Treffer für “piwik octopress” liefert dann auch einen guten Startpunkt: Das GitHub-Repo octpress-piwik von jcbedier. Der letzte Commit stammt aus dem Jahr 2014 aber grundsätzlich ist hier schon alles notwendige drin.

Über die Ansicht des Netzwerks des Repos habe ich dann den Fork des Users paskal gefunden, der den allgemeinen Teil des Tracking-Codes Ende November auf den aktuellen Stand gebracht hat.

OpenSource at work… Man muss es einfach lieben.

Installation und Konfiguration von octopress-piwik

Genau diesen Stand der Dinge habe ich dann auch wie folgt für instant-thinking.de verwendet.

Piwik-Variablen in _config.yml einfügen

Als erstes werden die erforderlichen Werte für die Site in der zentralen Octopress-Konfigurationsdatei _config.yml eingesetzt.

_config.yml
1
2
3
# Piwik
piwik_url: piwik.instant-thinking.de
piwik_siteid: 1

Die piwik_url ist einfach die Website, auf der euer Piwik läuft und die piwik_siteid ist die durch Piwik vergebene Nummer der Website.

Piwik-Code inkludieren

Als nächstes wird die Stelle für den Einbau des Tracking-Codes bestimmt. Das geschieht hier in der after_footer.html, die durch Octopress in allen Posts inkludiert wird. Direkt nach dem Disqus-Plugin folgt hier nun das Piwik-Plugin in der Zeile 2:

source/_includes/after_footer.html
1
2
3
{% include disqus.html %}
{% include piwik_analytics.html %}
{% include custom/after_footer.html %}

Was jetzt noch fehlt ist die Datei mit dem Tracking-Code an sich. Daher muss nun die piwik_analytics.html aus dem Repo auch im Verzeichnis source/_includes/ zum liegen kommen.

Und das war es dann auch schon. Ein rake generate weiter wird der Tracking-Code an der passenden Stelle eingebaut. Im Safari-Web-Inspector schaut das dann so aus:

Fortan wird der Code also mit jedem Seitenaufruf auf instant-thinking.de ausgeführt und zählt den Besuch. Klasse!

Production vs. Development

Immer wenn ich gerade einen Post schreibe, diesen aber noch nicht veröffentlich habe, benutze ich die Octopress Vorschau-Funktion um mir den aktuellen Stand direkt neben meinem Editor im Browser anzuschauen. Im Moment schaut das genau so aus:

Das ist super, ich mag das sehr so zu schreiben.

Das Problem ist, dass jeder Aufruf der Vorschau nun auch den Piwik-Code aufruft und dieser die Statistiken für instant-thinking.de mit Einträgen füttert die zu einem Post gehören, den es noch gar nicht wirklich gibt. Dass ich damit außerdem den uninteressantesten Besucher der Welt3 überproportional häufig in die Zahlen bekomme ist natürlich auch nicht gut.

Was also her muss ist eine Differenzierung zwischen der produktiven Website im Internet und dem lokalen Vorschaumodus.

Ich nahm eigentlich an, dass das ein gelöstes Problem sein müsste aber es scheint doch nicht ganz einfach zu sein

Also dachte ich mir, bevor ich mit Piwik-Plugins und der entsprechenden Config rumhantiere wäre es doch eigentlich eine gute Idee, das Problem direkter anzugehen.

Octopress ist ja im Prinzip Jekyll und Jekyll kann ein Jekyll environment spezifizieren, welches dann in Liquid-Tags abgefragt werden kann.

So weit so gut, nur ist mein Jekyll halt antik4 und kennt diese Option nicht. Unter der Auflistung von jekyll --help habe ich aber die Option --url [URL] Set custom site.url gefunden. Die ist weniger elegant, lässt sich aber in Kombination mit rake für den hier vorliegenden Zweck im Prinzip genauso verwenden wie das fancy environment.

Den Aufruf von jekyll in dem preview-Task in meinem Rakefile habe ich daher um die Option --url 'http://localhost:4000' ergänzt. Der diff des Tasks schaut so aus:

Preview Task aus Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
desc "preview the site in a web browser"
task :preview do
  raise "### You haven't set anything up yet. First run `rake install` to set up an Octopress theme." unless File.directory?(source_dir)
  puts "Starting to watch source with Jekyll and Compass. Starting Rack on port #{server_port}"
  system "compass compile --css-dir #{source_dir}/stylesheets" unless File.exist?("#{source_dir}/stylesheets/screen.css")
-  jekyllPid = Process.spawn({"OCTOPRESS_ENV"=>"preview"}, "jekyll --auto")
+  jekyllPid = Process.spawn({"OCTOPRESS_ENV"=>"preview"}, "jekyll --auto --url 'http://localhost:4000'")
  compassPid = Process.spawn("compass watch")
  rackupPid = Process.spawn("rackup --port #{server_port}")

  trap("INT") {
    [jekyllPid, compassPid, rackupPid].each { |pid| Process.kill(9, pid) rescue Errno::ESRCH }
    exit 0
  }

  [jekyllPid, compassPid, rackupPid].each { |pid| Process.wait(pid) }
end

Den Piwik-Code in der piwik_analytics.html habe ich dann in eine weitere if-Bedingung5 gewickelt die ihn nur dann inkludiert, wenn die site.url nicht http://localhost:4000 ist:

source/_includes/piwik_analytics.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{% if site.piwik_url %}
{% if site.url != "http://localhost:4000" %}
<!-- Piwik -->
<script type="text/javascript">
  var _paq = _paq || [];
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="//{{ site.piwik_url }}/";
    _paq.push(['setTrackerUrl', u+'piwik.php']);
    _paq.push(['setSiteId', '{{ site.piwik_siteid }}']);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
  })();
</script>
<noscript><p><img src="//{{ site.piwik_url }}/piwik.php?idsite={{ site.piwik_siteid }}" style="border:0;" alt="" /></p></noscript>
<!-- End Piwik Code -->
{% endif %}
{% endif %}

Das ganze klappte so verblüffend gut, dass ich das Plugin-Repo auf Github forkte und die beiden Vorgänger mit Pull requests bedachte.

Das führte nach dem Merge zu einem interessanten Network-Graph und außerdem dazu, dass im octpress-piwik Haupt-Repo von jcbedier nun der aktuelle Piwik-Code enthalten ist und meine kleine Erweiterung für alle geneigten Octopress-User nutzbar ist.

  1. Durchaus lesenswert, ohne ein fertig installiertes Piwik macht dieser Post hier auch keinen sonderlich großen Sinn, macht er nicht?

  2. Diese Website hier um genau zu sein…

  3. nämlich mich…

  4. Die Version hier ist 0.11.0, aktuell ist 3.4.2. Räusper

  5. Ein if and if-Konstrukt scheint es in Liquid nicht zu geben…

Piwik auf Uberspace installieren - Edition Early 2017

| Kommentare

Piwik ist eine Open Source Lösung um Zugriffe auf Websites zu loggen und zu analysieren. Dabei setzt Piwik sehr auf Datenschutz und anonymisiert schon im Auslieferungszustand die IP-Adressen der Besucher. Ebenfalls out-of-the-box unterstützt1 Piwik Do-not-Track Einstellungen. Und natürlich bleiben die Daten in der eigenen Datenbank. Bereits 2011 wurde Piwik vom Unabhängigen Landeszentrum für Datenschutz Schleswig-Holstein empfohlen. Das ULD hat damals auch Hinweise und Empfehlungen zu Piwik erstellt, die auch heute noch gut und richtig sind. Da lohnt sich der ein oder andere Blick, da wird man nicht dümmer von.

Das Webinterface ist außerdem richtig gut gelungen und lässt sich gut und flüssig bedienen.

Piwik ist mithin ein Neugiertool für Websitebetreiber, welches auch die datenschutzrechtlichen Aspekte der Besucher berücksichtigt. Gute Sache.

Ich hatte vor sehr viel Zeit Google Analytics eingesetzt und dann damals bei der Migration auf Octopress damit aufgehört und einen Eintrag names Piwik für instant-thinking.de auf meine ToDo-Liste gesetzt. Fast genau fünf Jahre später ist das jetzt auch schon fertig…

Die Anforderungen von Piwik passten nicht so ganz genau zu den aktuell standardmäßig vorhandenen Bedingungen bei Uberspace und daher schreibe ich im folgenden auf, wie ich Piwik im Februar 2017 auf Uberspace eingerichtet habe.

Piwik herunterladen

Als allererstes habe ich Piwik heruntergeladen. Ob man das letztlich in einer Subdomain2 oder in einem Unterordner haben möchte ist eigentlich recht egal.

Der Download funktioniert am leichtesten per wget https://builds.piwik.org/piwik.zip im gewünschten Verzeichnis. Im Anschluss noch entpacken und die Datei How to install piwik.html löschen.

Nach dem Aufruf der Piwik-URL hatte Piwik dann aber über die PHP-Version gemeckert…

PHP-Version anpassen

So wie im Uberspace-Wiki beschrieben lässt sich die PHP-Version über die Datei ~/etc/phpversion einstellen. Nimmt man hier jedoch die von Piwik empfohlene 7er Version, wirft Piwik mit 500er Fehlern um sich. Daher stellt man am besten wie folgt die 5.6er Version ein:

~/etc/phpversion
1
2
3
$ cat ~/etc/phpversion
## 2013-11-18 /usr/local/sbin/uberspace-account-create.sh
PHPVERSION=5.6

Damit ist Piwik aber noch nicht grundsätzlich zufrieden. Zusätzlich muss eine eigene php.ini in ~/etc/ angelegt werden3:

php.ini kopieren
1
test -f ~/etc/php.ini || cp -a /package/host/localhost/php-$PHPVERSION/lib/php.ini ~/etc/

Und dort dann die folgende Option raussuchen und durch das entfernen des Semikolons aktivieren:

raw_post_data Option
1
always_populate_raw_post_data = -1

Zum Schluss den PHP-Interpreter mit killall php-cgi neu starten. Damit ist PHP fertig konfiguriert. Die Systemprüfung sollte nun zufrieden sein:

MariaDB Datenbank erstellen

Piwik benötigt außerdem eine Datenbank. Entweder MySQL ab Version 5.5 oder den Nachfolger MariaDB. Auf Uberspace wird MySQL nur in der Version 5.1 angeboten. Glücklicherweise gibt es bis zum nächsten OS-Update eine4 Übergangslösung mit der MariaDB 10.0.

Die Benutzung dieser Übergangslösung hat zur Folge, dass es keinen direkten Zugriff auf die Backups der Datenbank gibt und dass die DB im Frühjahr 2017 noch mal auf die dann offizielle Lösung migriert werden muss.

Wenn das keine Showstopper sind feuert man einfach den Befehl uberspace-setup-mariadb ab und schon wird eine neue MariaDB aufgesetzt. Die Verbindungsdaten werden in ~/.my.mariadb.cnf abgelegt.

Um eine neue Datenbank für Piwik anzulegen wird nun die MySQL-Shell mit mysql --defaults-file=~/.my.mariadb.cnf gestartet. Die anzulegende Datenbank muss mit eurem Uberspace-Accountnamen gefolgt von einem Unterstrich beginnen. Ein passendes Beispiel für den Accountnamen hugo wäre etwa mysql> CREATE DATABASE hugo_piwik;.

Außerdem zu beachten ist, dass die Übergangslösung mit der loopback-IP und dem Port 33075 arbeitet. Damit Piwik den Port mitbekommt muss man ihn direkt nach dem Hostnamen, getrennt mit einem Doppelpunkt angeben. User und Passwort könnt ihr einfach aus eurer ~/.my.mariadb.cnf abschreiben. Das ganze sollte dann ungefähr so aussehen:

Und das war es auch schon mit der grundsätzlichen Einrichtung, die restliche Basis-Installation geht ziemlich geradeaus vonstatten.

Previous Work

Als Grundlage für die erfolgreiche Installation von Piwik dienten mir vor allem die herausragend guten Dokumentationsseiten von Piwik und Uberspace. Die sind beide wirklich großartig gemacht. Außerdem halfen mir die Posts von Rob Tranquillo6 und intux7 sehr bei dem Einstieg in die Materie.


Ich hoffe, dass mein Post in dieser Tradition hilfreich sein kann. Wenn mein Piwik dann von der Übergangslösung weitergezogen werden muss werde ich dann auch wieder berichten.

Im nächsten Post wird außerdem die zweckmäßige Einbindung einer auf Octopress basierenden Website in Piwik erklärt.

  1. Und beachtet…

  2. So habe ich das gemacht…

  3. So noch nicht vorhanden…

  4. Wie immer hervorragend dokumentierte…

  5. anstelle des Standards 3306…

  6. Aus 2015…

  7. Aus 2016…

QuickLinks vom 12. Januar bis zum 27. Februar

| Kommentare

Meine pinboard.in-Links vom 12. Januar bis zum 27. Februar:

  • Macmoji - Slack/GitHub/Trello emoji for your mac! 😁 💥 💻
  • Vico - is an evolving programmers’ editor with vi key bindings and support for TextMate bundles.
  • Find Safari Tabs with AppleScript - If you sometimes find yourself with so many tabs in Safari that you can’t find things and end up opening them again in a new tab, this script can help.
  • fritz-speed - The fritz-speed scripts query the TR-064 interface of a Fritz!Box using the fritzconnection package and then uses RRDtool to collect, aggregate and graph the data.
  • Fluor - is a tool that allows you to automatically change the behavior of the keyboard’s fn keys depending on the active application.
  • PaceCoach - optimizes your songs to match your running cadence and keep you on pace. Create a customized playlist of any songs you want, set your desired tempo, and PaceCoach will automatically adjust the tempo of your music to match your pace. Import your Spotify playlists or simply use your own local music. PaceCoach can change the tempo without changing the pitch, so the song is exactly as the artist record it, only now at a tempo that you can run to comfortably!
  • Miniflux - is a minimalist open source RSS reader and compatible with the Fever API. It features a responsive design and works with your smartphone, tablet or desktop.
  • Hyper - is a JS/HTML/CSS Terminal for Linux, Windows and macOS. The goal of the project is to create a beautiful and extensible experience for command-line interface users, built on open web standards.
  • iCepa - is an iOS system-wide VPN Tor client. It uses Tor.framework to manage its Tor instance, and tun2tor to bridge VPN traffic to Tor. The project is in progress, and currently alpha-quality.
  • tapiriik - synchronizes your fitness activities between Garmin Connect, Runkeeper, Strava, TrainingPeaks, SportTracks.mobi, Endomondo, RideWithGPS, TrainerRoad, Motivato, Velo Hero, Epson RUNSENSE, Dropbox, and Smashrun (your heart rate, cadence, power, and temperature data syncs too).

Klacker-Header in Gedenken an Terry Pratchett

| Kommentare

Auf der Scheibenwelt gibt es ein Semaphorennetzwerk. Ein mechanisches System aus Türmen zur scheibenweiten Nachrichtenübertragung. Durch Klappen werden die Nachrichten kodiert und von Turm zu Turm weitergereicht1. Erfunden wurde es von Robert Liebherz.

Aufgrund des Geräuschs, das beim auf- und zuklappen der Klappen entsteht, werden die Türme Klacker genannt.

Aus dem ursprünglichen Klackersystem entwickelte Klaus Liebherz, der Sohn des ursprünglichen Erfinders, den Großen Strang, kam aber dann durch einen rätselhaften Unfall ums Leben.

Sein Vater fügte daraufhin seinen Namen in den Overhead der Klacker ein und kodierte ihn mit GNU. Was bedeutet:

  • G: Leite die Nachricht weiter
  • N: Logge die Nachricht nicht
  • U: Wenn das Ende der Verbindung erreicht ist, sende die Nachricht wieder zurück

Das ganze findet nur im Overhead der Nachrichten statt, alle regulären Nachrichteninhalte bleiben unverändert. Eine tolle Idee.

Ein Mann ist nicht tot, solange sein Name gesprochen wird.

Ab die Post Prolog Kapitel 4 - Seite 96

Und weil Terry Pratchett traurigerweise 2015 verstarb aber das Internet tollerweise voller Fans der Scheibenwelt ist, wurde aus einem r/discworld Reddit-Thread heraus die Website GNU Terry Pratchett erstellt. Dort kann man beliebigen Text in Klacker-Nachrichten kodieren.

Es wird aber auch und vor allem erklärt, wie man für die verschiedensten Serversysteme2 einen X-Clacks-Overhead konfiguriert.

Wenn man der Anleitung für einen Apache-Webserver folgt und die .htaccess um die folgenden Zeilen erweitert:

.htaccess mit Klacker Overhead
1
2
3
<IfModule headers_module>
  header set X-Clacks-Overhead "GNU Terry Pratchett"
</IfModule>

Dann liefert der Webserver fortan in jeder Antwort nicht nur die angefrage Website aus, sondern auch den Inhalt des X-Clacks-Overhead. Wenn man dann genau hinschaut, kann man das auch sehen:

Um das genaue Hinschauen etwas einfacher zu machen, wurde sogar eine Chrome Browser Extension und ein Firefox Add-on entwickelt. Da passiert aber erst einmal genau nichts, nur ein dunkles Klacker-Icon wird angezeigt.

Landet man aber auf einer Website, die den Klacker-Overhead ausliefert, wird der Text und der Klacker-Code angezeigt:

Ich bin da ja vielleicht etwas merkwürdig, aber ich finde das wirklich wundertoll. Danke Internet, danke Sir Terry.

(via: Arno Welzel)

  1. Wer sich an das allseits bekannte und beliebte Internet auf diesem Planeten erinnert fühlt denkt genau in die richtige Richtung…

  2. Die natürlich auch auf diesem Planeten einiges an Overhead für die Nachrichten benötigen…