GIMP-Tipp: Grünen Rand beim Anti-Aliasing loswerden

gimp-logoGIMP verwendet für die Darstellung von Schriften sein eigenes Subpixel-Rendering. Das führt dazu, dass mit den Standardeinstellungen ein hässlicher grüner Rand um die Schriften angezeigt – und auch beim Export mit weitergegeben wird.

Dies lässt sich mit einem einfachen Tipp unterbinden:

  1. Eigene fonts.conf für GIMP erstellen:
     vim .gimp-2.8/fonts.conf
  2. Diese Einstellungen kopieren und einfügen:
    <fontconfig>
      <match target="font">
        <edit name="rgba" mode="assign">
          <const>none</const>
        </edit>
      </match>
    </fontconfig>
  3. Speichern, GIMP neu starten – fertig!

KShutdown manuell kompilieren unter Debian

KShutdown ist ein kleines aber recht bequemes Tool um Rechner zeitgesteuert herunterzufahren, in den Ruhezustand zu setzen oder einzelne Medienplayer zu steuern. Die Paketversion in Debian Jessie und Stretch ist zwar aktuell zur stabilen Upstreamversion, aber es gibt neuere Betaversionen. Falls man KShutdown also unter Debian mit KF5/Plasma 5 direkt aus den Quellen kompilieren möchte sind folgende Schritte nötig:

  1. Entwicklerpakete installieren
    sudo apt install build-essential libkf5config-dev libkf5configwidgets-dev libkf5xmlgui-dev libkf5notifications-dev libkf5notifyconfig-dev libkf5idletime-dev gettext
  2. Quellcode holen
    Entweder das Zipfile herunterladen: http://kshutdown.sourceforge.net/download.html
    Oder über Subversion:

    svn checkout http://svn.code.sf.net/p/kshutdown/code/trunk/kshutdown2 kshutdown-code
  3. Im Quellcode-Verzeichnis:
    ./Setup-kf5.sh
    
    sudo make install

    Das war’s! Mehr Infos zum Kompilieren unter KDE4, generell Qt für Gnome und Xfce oder auch Windows gibt es auf der Seite von KShutdown.

Quicktipp: Systemressourcen sparen

Moderne Browser sind echte Monster wenn es um Systemressourcen geht. Egal ob Firefox, Chromium oder Epiphany Gnome Web – mit etwas Komfortbedarf steigt auch exponentiell die Speicher- und CPU-Last.

Anstatt jetzt das Programm zu beenden und beim nächsten Start ewig zu warten, bis alle zig Tabs wieder geladen sind, greifst du ganz einfach auf folgenden Befehl zurück:

pkill -STOP firefox

Und wenn es weitergehen soll:
pkill -CONT firefox

Fertig!

(Bildquelle CC0)

Quassel IRC und Let’s Encrypt unter Debian

Wer weechat/screen bzw. irssi kennt, dem ist das Prinzip geläufig: ein kleiner Server ist dauerhaft mit dem IRC verbunden, der Nutzer verbindet sich darauf und hat somit die Möglichkeit eines Backlogs um Chats auch später nachlesen zu können. Aus Gründen der Faulheit und weil ich lieber grafische Clients als terminalbasierte habe, verwende ich zu diesem Zweck den Client „Quassel„. Besser gesagt: die Kombination aus Quassel Core und Quassel Client, letzteren sowohl am PC als auch auf mobilen Android-Geräten. Auch unter Windows 7 funktioniert das übrigens einwandfrei!

Die Ausgangssituation

Quassel Core erstellt bei der Installation direkt ein selbst-signiertes Zertifikat für die Transportverschlüsselung über SSL. Das ist okay, mit der – optional einmaligen – Meldung dazu im Client kann ich gut leben. Nun hat der kleine VPS aber für den darauf laufenden Webserver seit kurzem ein gültiges Zertifikat von Let’s Encrypt. Warum also nicht das auch für Quassel nutzen?

So geht’s!

Ich gehe davon aus, dass du Debian auf deinem System nutzt. Bei anderen Distributionen sollte das aber ähnlich bis identisch funktionieren.

  1. Als erstes überprüfst du, ob dein Quassel Core normal gestartet wurde oder als Systemdienst läuft. Wenn dein init System dir folgende Ausgabe liefert,
    # service quasselcore status
     quasselcore.service - LSB: distributed IRC client using a central core component
     Loaded: loaded (/etc/init.d/quasselcore)
     Active: active (running)...
  2. Je nachdem, wie du Quassel serverseitig betreibst, liegt das bestehende Zertifikat unter:
    • ~/.config/quassel-irc.org/ (Nutzer)
    • /var/lib/quassel/ (Systemdienst)
  3. Das existierende Zertifikat sichern wir lieber mal, man weiß ja nie:
    # cp /var/lib/quassel/quasselCert.pem /var/lib/quassel/quasselCert.bkup
  4. Jetzt brauchst du ein PEM Bundle aus dem private key und den fullchain. Dazu fügst du beide Dateien zusammen. In meinem Fall lagen die Dateien im Unterordner für die entsprechende Domain.
    # cd /etc/letsencrypt/live/name.der.seite/
    # cat privkey.pem fullchain.pem >> /var/lib/quasselCert.pem
  5. Abschließend startest du den Quassel Dienst neu – ein einfacher reload genügt nicht!
    # service quassel restart

Das war’s schon. Ab sofort läuft alles wie bisher – nur eben mit gültigem SSL-Zertifikat.
Ach ja: wer lieber Weechat mag, der legt das PEM Bundle einfach unter ~/.weechat/ssl ab und lädt mit /relay sslcertkey das neu Zertifikat.

Mozilla Sync, die OwnCloud und ein großes Fragezeichen

Dank Mozilla Sync lassen sich Browserdaten über die eigene OwnCloud synchronisieren. Meine Passwörter vertraue ich denen aber doch nicht an und somit kommt meine OwnCloud in’s Spiel: Die Installation der entsprechenden App ist denkbar einfach und auch die Einrichtung im Desktop-Firefox geht mit dieser Anleitung ganz fix. Störrisch hingegen sind Android und der Firefox 44…

Dank Mozilla Sync lassen sich Browserdaten (Lesezeichen, Verlauf, Formulardaten, Passwörter etc.) über die eigene OwnCloud synchronisieren. Doch bei aller Liebe zu Mozilla, meine Passwörter vertraue ich denen dann doch nicht an und somit kommt an dieser Stelle meine OwnCloud in’s Spiel. Ich bin dann doch lieber selbst Schuld, wenn mir alles um die Ohren fliegt.

Die Installation der OwnCloud App ist denkbar einfach und auch die Einrichtung im Desktop-Firefox geht mit dieser Anleitung ganz fix:

Teil 1: Desktop

  1. Zip-Datei von apps.owncloud.com herunterladen, entpacken und in das Unterzeichnis /apps/ deiner OwnCloud schieben.
  2. Als Admin die App aktivieren und als User eine Email-Adresse hinterlegen, falls nicht eh schon geschehen.
  3. In der Adresszeile des Firefox öffnest du mit about:config die erweiterten Einstellungen und legst dort folgende zwei Strings an: services.sync.tokenServerURI mit https://deine-owncloud.url/remote.php/mozilla_sync/ sowie services.sync.username mit einem beliebigen Wert.
  4. Nach einem Neustart von Firefox legst du unter Einstellungen > Sync > Konto anlegen ein „neues“ Konto an, wählst „Eigenen Server“ und trägst dann deine OwnCloud-URL, deine Email-Adresse sowie das Passwort deines OC-Kontos ein.

Das war’s auf dem Desktop!
Aber wir wollen ja noch mit unseren mobilen Geräten synchronisieren:

Teil 2: Android

Bis Version 43 brauchte Firefox auf Android-Geräten wohl ein Add-On um mit benutzerdefinierten Sync-Servern zu sprechen. Seit v44 ist dies angeblich nicht mehr nötig. Und so geht’s – zumindest fast!

1. Wichtig ist, dass kein Sync-Konto verbunden ist. Falls doch, bitte zuerst über Einstellungen > Sync > Abmelden entfernen.

2. Die Konfiguration öffnest du – wie vom Desktop bekannt – mit about:config in der Adresszeile. Dort suchst du nach dem Wert „identity.sync.tokenserver.uri“, änderst den hinterlegten URI von http://sync.example.com/token/1.0/sync/1.5 auf https://deine-owncloud.url/remote.php/mozilla_sync/ und schließt das Tab danach.

3. Jetzt kannst du dich mit der Email-Adresse und dem Passwort deines OwnCloud-Kontos ganz normal am Sync-Service einloggen. Das Ganze sieht aus wie bisher, mit dem Unterschied dass deine OwnCloud jetzt als Syncserver fungiert.

Doch hier kommt das Problem: Alles sieht ok aus, keine Fehlermeldungen, nichts. Aber wenn man den Sync manuell anstößt, passiert nichts.
Hier wäre ich für Hinweise dankbar, sieht es doch momentan nicht danach aus als gäbe es eine Lösung für das Problem.

(Quelle 1, 2)

Einige Fragen zu GNU Social

Für einen Blogpost von Alex habe ich von ihm einige Fragen zu GNU Social bekommen, die ich natürlich gerne beantwortet habe. Er möchte dazu eine Übersicht über verschiedene Nodes ausarbeiten. Meine Antworten stelle ich hier schon mal vorab zum Lesen bereit.

Für einen Blogpost von Alex habe ich von ihm einige Fragen zu GNU Social bekommen, die ich natürlich gerne beantwortet habe. Er möchte dazu eine Übersicht über verschiedene Nodes ausarbeiten. Meine Antworten stelle ich hier schon mal vorab zum Lesen bereit. Das ganze ist plain text aus der Antwortmail kopiert, daher ohne irgendwelche schönen Formatierungen. Falls ihr auch Fragen habt, beantworte ich die gerne auch unten in den Kommentaren.

(Alles auf Englisch, da der Blogpost wohl auch englischsprachige Admins einschließen wird.)

> Gnusocial configuration
> =======================
>
> – How many characters per queet are possible on your instance?
1024 chars.

> – Which plugins are installed on your instance?
Activity, Autocomplete, ClientSideShorten, ChooseTheme, EmailReminder, ExtendedProfile, FeedPoller, GroupPrivateMessage, LRDD, ModPlus, OStatus, OpenExternalLinkTarget, Qvitter, StaleAccounts, Statistics, StoreRemoteMedia, TabFocus, TwitterBridge (posting only, no import due to ressource overusage), WebFinger

> – Do you keep up with the most recent version or are you testing new
> versions for a while before using them?
I’m quite close to current nightly status. All code comes from Git so if anything goes wrong I’m moving back some commits.

>
> Users, Stability & Money
> ========================
>
> Users would like a service, which lasts forever and runs fast and
> reliable. Can you tell something about how your service tries to achieve
> this?
I recently got a similar question and told the people asking that I have no intention to close the node. But I can’t (and don’t want to) promise things I can’t do with a good conscience. There’s no guarantee – not for gnusocial.de as well as for any service around. The only thing I can promise is that in case of closing gnusocial.de I will do my very best to get a successing admin and/or to help people migrate to another node.

To make financial issues more transparent I have a page on the wiki:
http://wiki.gnusocial.de/gnusocialde:finanzierung

>
> – How many users does your service have?
Registered accounts currently: 917
Actively posting users (can only be estimated): ~20-30

> – For how long does it exist?
The domain was registered in February 2014, the complete instance launched on July 22nd, 2014.

> – How do you pay for the service? Do you get enough donations, do you
> have sponsors or do you pay for it yourself?
I mostly pay the monthly fees and annualy domain fees myself. From time to time someone donates a few bucks.

> – What do you need to pay for hardware / hosting?
Monthly fees 18,99€ plus .de Domain plus SSL cert (both annually paid).

> – Are there costs for moderating / maintaining the site?
There are no costs in money but of course maintaining „costs“ spare time.

> – How do you want to ensure, the service will last (That it can be payed
> for and there are enough people, who keep it running)?

> – How can your users support you? Do you accept donations? Are there
> other ways to say thank you, like a amazon wishlist or flattr?
Yes, after some people asking I added donation information at the wiki.
But there’s no Amazon wishlist or special Flattr thing. The local community is not too big and I keep in touch with most users. So if someone wants do give me a present, he or she just can drop me a line.

>
>
> Abuse Handling
> ==============
>
> The larger the site, the more abusive users will come. How do you handle
> the moderation on your site?
>
> – How can users report abusive Queets / private Messages?
Just @-mention me.

> – How fast can the moderation handle such requests?
As soon as I see the @-mention I will look into the issue.
Furthermore they can simply send me an email: https://gnusocial.de/doc/contact

> – Are you actively moderating the site or just handling reports?
Until now I never had a really severe problem so active moderation wasn’t necessary. During the rush within the past 2-3 weeks there registered some companies. I wrote to them in advance pointing to the terms of service, not because they did anything wrong but to avoid disappointment.

>
> – Do you have specific policies how to react on which type of incident?
No. As long as there’s no need I try to talk to people and explain problems.
Nevertheless there’s the terms of service page and a quick round up during the registration process. A copy of this text is available on the wiki:
https://gnusocial.de/doc/tos
http://wiki.gnusocial.de/gnusocialde:tos

> – Is there a page with the rules for your instance or do you rely on
> common sense and notify users, when they are going too far?
Both. See previous question.

>
> – Can you tell something about the possible consequences for breaking
> the rules?
It’s quite simple: Three steps. First, the user gets advice. Second, he get’s a serious warning. Third, I will delete (yes, *delete*) the account.

> – Do you notify authorities for serious incidents or do you just ban the
> users and let the victim report it to the police themself?
Luckily I never got into such a situation so I can only guess, that it would depend. For sure I would support the victim but at first I would talk to a lawyer what to do.

>
>
> Moderation
> ==========
>
> Moderation to prevent abuse is important, but too much moderation can
> hurt a site. Moderating legal but possibly offensive posts may create
> chilling effects, where people censor themself to avoid being moderated
> or even banned for unpopular opinions.
>
>
> – When do you delete possibly offensive tweets?
Never. But I’m under German jurisdiction so I have to I try to talk to the people that something (e.g. porn) ain’t welcome on this node. There are other nodes specialised on such topics. So users don’t have to leave

> – When do you warn users?
If they:
– post commercial advertisments.
– post content forbidden by German law

> – When do you temporarily ban users?
Never.

> – When do you permanently ban users?
Never.

>
> – Do your moderators discuss decisions among themselfes or are they
> acting on their own?
I’m the only moderator but for things I’m unsure I try to contact admins of other nodes and long-term users of my node to get a well-based decision.

> – Do you discuss the moderation with the users?
See previous question.

> – How do you avoid, that moderators are biased to their own opinion in
> the discussion, which they are moderating?
If things are getting too hot I guess I would change communication from public to private emails, chats or whatever.

>
> – Do you think your users need to think about being moderated before
> writing a queet?
No, absolutely not. As said before I will *always* contact users if they post things which are a problem. I strongly believe in solving problems by talking at first.

> – Do you have any rules, which require the users to think beyond common
> sense before posting, like avoiding tv spoilers?
No. If users post things others don’t want to read they will be told so by the people affected.

>
> – Where does inacceptable behaviour start on your instance? (bad
> opinions expressed in a serious manner / flame wars / trolling / insults
> / haressment / serious threats)
The inacceptable behaviour for me is when someone tells you about your misbehaviour and still you don’t stop. On gnusocial.de you can say anything sticking to the terms of service, as long as nobody has a problem with that.

> – What are your moderators doing with reports for queets in heated
> discussions, which are strictly speaking not breaking a rule, but
> offending other users in the discussion?
I don’t have any moderators, so: see previous question.

>
> – How are you moderating queets from other gnusocial instances?
I am not yet. Currently I’m waiting for this feature to be implemented in GNU Social so I can filter out adult-only content from other instances to appear on public timelines. To avoid misunderstandings: users following accounts from these instances will still get the contents. I’m not a nanny judging on anyone for being naughty.

>
>
> Backup & Privacy
> ================
>
> Some instances have plugins for backup, others don’t have this option.
> What options do you provide for your users? How do you handle the
> privacy of your users?
In terms of microblogging I think there is no privacy at all. It counteracts the idea of posting things public online. Microblogging ain’t made for private communications. Nevertheless, posting anon- and pseudonymously on gnusocial.de is of course possible:
– users can register whatever username they like
– there is no clear name policy and there will never be
– webserver logfiles are anonymized: all users‘ IP adress is 127.0.0.1
– a working email address is *needed* only for signup and password resets
– access via TOR is welcome, no Cloudflare or similar captcha crap

>
> – Can your users export their data (queets, private messages)?
Yes, sort of. The data migration feature is broken in GNU Social generally, not only on my node. So exporting the data will need an admin’s hand. I’m absolutely willing to do my very best to let users get their data.

> – Is there a way to import this data or data from other gnusocial instances?
See question above and: I never had this case yet so I can’t tell how good it works.

> – Do you have backups for your server, i.e. in case of hardware failure?
Of course. The server is a VPS so hardware failure is not on my watch but on the provider’s. Nevertheless I keep backups of both the database and the uploaded files for a short time to avoid problems e.g. due to update on GNU Social’s software.

> – Can your users delete their account?
Of course. Every user profile has a delete button. But beware: this button unlike e.g. Facebook *really* deletes the account and any related date. So better be sure what you’re doing! :)

> – How long does it take for the data to be deleted completely (i.e.
> disappear from any backups)?
Depending on the amount of data 1-10 minutes.

> – Do you retain any data after deletion, i.e. to as proof for abusive
> behaviour, to enable recovery of the deleted account or to prevent
> others from reregistering the account name?
Both: No. And to be honest I’m not willing to pull back accidentily deleted accounts from a recent backup.

> – Do you ever read private messages? Under which circumstances would you
> do so and would you inform the users afterwards?
No. I wouldn’t under any circumstances. Even if I was forced to hand over the server’s data I would not read private messages.

>
>
> Security
> ========
>
> – How are you protecting the data (i.e. is the server hard disk encrypted)?
No. The server is secured by a strong SSH password, no root login in via SSH and fail2ban. Security updates are installed very quickly (normally within 1-2 hours from being available)

> – Does your site use HTTPS?
Yes. HTTP requests are forwarded to HTTPS.

> – Did you configure more security options like a HSTS header?
Yes. HSTS and HTKP is enabled.

>
>
> Legal Issues
> ============
>
> It is pretty common that people post copyrighted images on social media,
> which can get them into trouble*. A smaller site may have problems to
> get accused of the vialogation itself instead of the user.
> How do you handle copyrighted content and law enforcement requests?

Posting copyrighted content is prohibited by the terms of service. But I’m not monitoring what people post so I can’t act proactively on such things. Though if it comes to my knowledge I have to act and would try to contact the user to take content down.

>
> – Do you inform your users about rules for posting copyrighted images /
> texts?
Yes, it’s in the terms of service.

> – Do you try to actively moderate copyright violations or do you take
> down content only on request?
Only on request.

> – What would you do, when you receive a DMCA notice or a similiar
> request in your country?
I would try to contact the user to inform him and ask to delete the content. If he doesn’t do or ain’t responding I would comply to the DMCA notice.

>
> – What do you do about images violating personality rights of people in
> the image?
If I get a request: see question above. Otherwise I’m not monitoring what people post so I can’t act on such things.

> – How would you handle requests for the EU „right to be forgotten“ law?
To be honest: I think this law is ridiculous and useless. I never thought about what to do when I recieve such a request. I guess I would contact a lawyer before doing anything.

> – Did you think about getting a national security letter?
Yes, but as I’m not under U.S. juristdiction I hardly care. Nevertheless getting a warant canary is on my to do list.

>
> Technical Information
> =====================
>
> Can you tell something about how you run the website?
>
> – What hardware are you using?
The server is VPS at Netcup Hosting (https://www.netcup.de) with 12 GB RAM and 4 vCPUs

> – What software (i.e. operation system, etc.) are you using?
Debian stable.

> – Does the server just run gnusocial or are you using it for other
> things as well?
The server hosts GNU social, a small wiki (Dokuwiki) and some scripts for automated posts to GNU Social.

> – Is your server very busy with the instance?
No. 8 out of 12 GB RAM are used, the 4 vCPUs are at about 10% load.

>
>
> Final thoughts
> ==============
>
> – Why should users choose your instance?
I don’t care.
If users choose my instance I’m happy. If they choose another one I’m happy as well. The good thing with GNU Social is that no matter where users are everyone can communicate with everyone.
Aside that it would be good if users choose smaller instances in favor to the big ones (e.g. quitter.se) to spread the ressource load over all nodes and to avoid single points of failure.

> – Do you want to tell anything else?
If any information is missing within all these questions I’m very happy to give answers, either via GNU Social or directly via email.

>
>
> *
> https://www.washingtonpost.com/news/the-intersect/wp/2015/09/08/how-copyrigh
> t-is-killing-your-favorite-memes/

Howto: APT mit bash-completion

Im Zuge der Veröffentlichung von APT 1.1 hatte ich mir vorgenommen, nicht mehr das doch recht umständliche apt-get (mit Kosorten wie apt-cache) zu nutzen sondern stattdessen komplett auf die neue, deutlich einfacher Syntax umzustellen. Der Versuch lief bis dato auch recht gut, wobei ich aber von Anfang an die automatische Vervollständigung von Befehlen und Optionen vermisst habe. Oder kurz gesagt: bash-completion ging nicht.

Die Suche im Netz nach „apt“ und „bash-completion“ in verschiedenen Kombinationen war zwar ergiebig, aber nicht gerade hilfreich. Einzig auf askubuntu.com bin ich über ein kurzes Script gestolpert, das sowie dessen Einrichtung ich euch nicht vorenthalten möchte:

  1. Datei mit root Rechten anlegen/öffnen:
    # vim /usr/share/bash-completion/completions/apt
  2. Folgenden bash code kopieren und dort einfügen:
    # Debian apt(8) completion                             -*- shell-script -*-
    
    _apt()
    {
        local cur prev words cword
        _init_completion || return
    
        local special i
        for (( i=0; i < ${#words[@]}-1; i++ )); do if [[ ${words[i]} == @(list|search|show|update|install|remove|upgrade|full-upgrade|edit-sources|dist-upgrade|purge) ]]; then special=${words[i]} fi done if [[ -n $special ]]; then case $special in remove|purge) if [[ -f /etc/debian_version ]]; then # Debian system COMPREPLY=( $( \ _xfunc dpkg _comp_dpkg_installed_packages $cur ) ) else # assume RPM based _xfunc rpm _rpm_installed_packages fi return 0 ;; *) COMPREPLY=( $( apt-cache --no-generate pkgnames "$cur" \ 2> /dev/null ) )
                    return 0
                    ;;
            esac
        fi
    
        case $prev in
            -c|--config-file)
                 _filedir
                 return 0
                 ;;
            -t|--target-release|--default-release)
                 COMPREPLY=( $( apt-cache policy | \
                     command grep "release.o=Debian,a=$cur" | \
                     sed -e "s/.*a=\(\w*\).*/\1/" | uniq 2> /dev/null) )
                 return 0
                 ;;
        esac
    
        if [[ "$cur" == -* ]]; then
            COMPREPLY=( $( compgen -W '-d -f -h -v -m -q -s -y -u -t -b -c -o
                --download-only --fix-broken --help --version --ignore-missing
                --fix-missing --no-download --quiet --simulate --just-print
                --dry-run --recon --no-act --yes --assume-yes --show-upgraded
                --only-source --compile --build --ignore-hold --target-release
                --no-upgrade --force-yes --print-uris --purge --reinstall
                --list-cleanup --default-release --trivial-only --no-remove
                --diff-only --no-install-recommends --tar-only --config-file
                --option --auto-remove' -- "$cur" ) )
        else
            COMPREPLY=( $( compgen -W 'list search show update install 
                remove upgrade full-upgrade edit-sources dist-upgrade 
                purge' -- "$cur" ) )
        fi
    
        return 0
    } &&
    complete -F _apt apt
    
    # ex: ts=4 sw=4 et filetype=sh
  3. Speichern und abschließend als normaler Nutzer die .bashrc neu einlesen:
    $ source .bashrc

Fertig! Jetzt habt ihr die Vervollständigung für folgende APT Optionen: list search show update install remove upgrade full-upgrade edit-sources dist-upgrade purge

(Quelle, Code lizenziert unter GPL)

Spotify unter Linux: Zwei Kurztipps

Mit Debian & Derivaten Spotify zu nutzen ist ja kein Hexenwerk, hierfür gibt es zum Glück eine recht einfache Anleitung. Zwei Dinge funktionierten bei mir aber nicht bzw. haben mich gestört.

1. Fehlende libgcrypt.so.11

Sollte nach der Installation beim ersten Start nichts passieren und beim Aufruf über das Terminal eine fehlende „libgcrypt.so.11“ bemängelt werden, reicht es das Paket libgcrypt11 aus den Wheezy-Repositories zu installieren. Dies gilt natürlich nur für Jessie oder – wie in meinem Fall – für Stretch. Die Datei gibt es hier zum Download für die jeweilige Architektur, im Normalfall amd64.

$ sudo dpkg -i libgcrypt11_1.5.0-5+deb7u1_amd64.deb

2. Nervige Benachrichtigungen

screenshot-spotify-notification
Beim jedem Songwechsel meint Spotify mir das mitteilen zu müssen. Ich bin nicht doof, ich merke wenn ein Lied zu Ende ist und das nächste beginnt. Leider gibt es in den Einstellungen keine Möglichkeit diese Funktion zu deaktivieren. Also hilft nur die Brechstange über das config file:

$ vim ~/.config/spotify/Users/[Spotify Nutzername]-user/prefs

Dort folgende Zeile einfügen und danach Spotify neu starten:

ui.track_notifications_enabled=false

Das war’s, schon ist Ruhe!

 

Wirmser muss weinen

Man möchte wirklich dreimal auf den Boden spucken, wenn man zusehen muss, wie der zutiefst humanistische Gegenentwurf eines aufrechten, mutigen deutschen Demokraten wie Josef Wirmer von den rechten Populisten rund um Lutz Bachmann durch Dresdens Straßen getragen wird.

Von Mut, Idealen und einer Flagge, die nicht Pegida gehört.

Wer nicht arbeitet, soll auch nicht essen?

Paulus hat aber etwas anderes gemeint. Er richtet den Satz nicht an die “Faulen”, sondern an die Reichen, die gewohnt waren, andere für sich arbeiten zu lassen. Aber in der christlichen Gemeinschaft sollten genau diese Hierarchien nicht mehr gelten, und zwar ganz konkret bei gemeinsamem Essen: Da sollten nicht die einen arbeiten und die anderen sich an den gedeckten Tisch setzen, sondern, “Da ist nicht Arm und Reich” und eben auch: “Wer nicht arbeitet, soll auch nicht (mit)essen)”.

Wer nicht arbeitet soll auch nicht essen?