Viroblogie

Sticky Notes With Clean URLs and Lighttpd

| Comments

Sticky Notes is a light weight pastebin application written in PHP. I installed it at paste.ohai.su, but unfortunately the clean urls didn’t work with lighttpd. While Lighttpd has a mod_rewrite module, it does not use the .htaccess file, which specifies the rewrite rules. So I had to do a few adjustments to get it to work.

  1. Enable the mod_rewrite module in lighttpd.

    Open your lighttpd config file, that can be found at /etc/lighttpd/lighttpd.conf. The server.modules array should contain a mod_rewrite line. If it does, remove the comment. If it doesn’t exist, simply add it. (Make sure that every entry, except the last one, has a comma behind it). The next time you restart your Lighttpd it is going to load the module.

  2. Add the Sticky Notes rewrite rules

    Lighty needs to know how to rewrite the urls. Apache uses the .htaccess file for this, but Lighttpd gets the rules from it’s config. So you have to take the rules from the .htaccess file and put them into your lighttpd.conf. As it’s kind of annoying to change the syntax to the one used in lighttpd configs, I’ll provide my config.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    
    $HTTP["host"] =~ "paste\.ohai\.su" {
          url.rewrite-once = ("^/doc/([a-z]+)/?$" => "doc.php?cat=$1",
              "^/~([a-z.]+)/doc/([a-z]+)/?$" => "doc.php?project=$1&cat=$2",
    
              # Home page links
              "^/~([a-z.]+)/?$" => "index.php?project=$1",
              "^/~([a-z.]+)/api/([a-z]+)/?$" => "index.php?project=$1&mode=$2",
    
              # Paste list
              "^/all/?$" => "list.php",
              "^/api/([a-z]+)/all/?$" => "list.php?mode=$1",
              "^/~([a-z.]+)/all/?$" => "list.php?project=$1",
              "^/~([a-z.]+)/api/([a-z]+)/all/?$" => "list.php?project=$1&mode=$2",
              "^/rss/?$" => "list.php?rss=1",
              "^/~([a-z.]+)/rss/?$" => "list.php?project=$1&rss=1",
              "^/all/([0-9]+)/?$" => "list.php?page=$1",
              "^/api/([a-z]+)/all/([0-9]+)/?$" => "list.php?mode=$1&page=$2",
              "^/~([a-z.]+)/all/([0-9]+)/?$" => "list.php?project=$1&page=$2",
              "^/~([a-z.]+)/api/([a-z]+)/all/([0-9]+)/?$" => "list.php?project=$1&mode=$2&page=$3",
    
              # General links
              "^/([0-9]+)/?$" => "show.php?id=$1",
              "^/~([a-z.]+)/([0-9]+)/?$" => "show.php?project=$1&id=$2",
              "^/([0-9]+)/([a-z|A-Z]+)/?$" => "show.php?id=$1&mode=$2",
              "^/~([a-z.]+)/([0-9]+)/([a-z|A-Z]+)/?$" => "show.php?project=$1&id=$2&mode=$3",
              "^/api/([a-z|A-Z]+)/([0-9]+)/?$" => "show.php?mode=$1&id=$2",
              "^/~([a-z.]+)/api/([a-z|A-Z]+)/([0-9]+)/?$" => "show.php?project=$1&mode=$2&id=$3",
              "^/([0-9]+)/([0-9]+)/?$" => "show.php?id=$1&hash=$2",
              "^/~([a-z.]+)/([0-9]+)/([0-9]+)/?$" => "show.php?project=$1&id=$2&hash=$3",
              "^/([0-9]+)/([0-9]+)/([a-z|A-Z]+)/?$" => "show.php?id=$1&hash=$2&mode=$3",
              "^/~([a-z.]+)/([0-9]+)/([0-9]+)/([a-z|A-Z]+)/?$" => "show.php?project=$1&id=$2&hash=$3&mode=$4",
              "^/api/([a-z|A-Z]+)/([0-9]+)/([0-9]+)/?$" => "show.php?mode=$1&id=$2&hash=$3",
              "^/~([a-z.]+)/api/([a-z|A-Z]+)/([0-9]+)/([0-9]+)/?$" => "show.php?project=$1&mode=$2&id=$3&hash=$4",
              "^/api/([a-z|A-Z]+)/([0-9]+)/([0-9]+)/(.*)$" => "show.php?mode=$1&id=$2&hash=$3&password=$4",
              "^/~([a-z.]+)/api/([a-z|A-Z]+)/([0-9]+)/([0-9]+)/(.*)$" => "show.php?project=$1&mode=$2&id=$3&hash=$4&password=$5"
          )
          }

    If you don’t have subdomains or something like that, you don’t need the _$HTTP[“host”]_ part. Then just paste the part with _url.rewrite-once_. After you’ve done this, restart your lighttpd (probably *sudo /etc/init.d/lighttpd restart*)

  3. Edit the Sticky Notes navigation

    I’m not entirely sure if this step really is necessary, but I needed to do it. It’s probably the best if you just open your Stick Notes and check if the urls are correct. (/1000/ instead of show.php?id=1000) In case they are correct already, you are finished and don’t need this last step.

    If they aren’t correct, you have to open the classes/class_nav.php file located in your Sticky Notes installation. Replace the check_rewrite() function with this.

    1
    2
    3
    4
    
    function check_rewrite()
        {
          return true;
        }
    

    This simply tells Sticky Notes that the rewrite module is active, without actually checking, as the check would return false. When this is false, the urls link to the unclean versions.

Your Sticky Notes should now use clean urls and work like a charm :)

Ja, Diese App Ist Kostenlos.

| Comments

Seit einiger Zeit arbeite ich nun an einer Android App, namens Omnomagon. Während des Entstehungsprozesses wurde ich mehrmals gefragt, ob die App denn etwas kosten wird. Die Antwort war und ist, »Nein«. Und genau genommen verlange ich nicht nur kein Geld dafür, sondern ich gebe auch jedem die Möglichkeit, sich selbst den Quellcode anzusehen, zu verändern und weiter zu verbreiten, da er unter einer freien Lizenz steht. Angesichts der aktuell beinahe allgegenwärtigen Diskussion über die Kostenloskultur im Internet scheint die Idee wohl beinahe absurd.

Bei der Überlegung, ob ich für diese App Geld verlangen soll oder nicht, spielten viele Faktoren eine Rolle. Einer der wohl Entscheidensten ist die Tatsache, dass mein Überleben nicht davon abhängt. Ob ich nun mit diesem Produkt meines kreativen Kopfes Geld verdiene oder nicht, könnte meine Lebenssituation zwar vielleicht finanziell aufbessern, aber es entscheidet nicht darüber, ob ich Morgen etwas zu Essen auf dem Tisch habe. Insofern unterscheidet sich meine Denkweise und meine Argumente vermutlich von z.B. einem Drehbuchautor oder einem Schriftsteller, der tatsächlich darauf angewiesen ist, Geld mit seinem Schriftstück zu verdienen, darin, dass ich freier und ungezwungener damit umgehen und auch die Möglichkeit habe, einen komplett anderen Fokus zu setzen.

Als Informatikstudent und Mensch, der gerne programmiert und an solchen Dingen lernt, habe ich bereits einen Anreiz, etwas Kreatives zu erschaffen, auch wenn sich für mich kein weiterer Mehrwert daraus ergibt. Interessanterweise stellt Katharina Kress in ihrem Zitat im verlinkten Handelsblatt Artikel die Frage, was es für einen Grund gebe, Geschichten zu schreiben, wenn man weder davon leben könne, noch sie als geistiges Eigentum behalten könne. Denn gerade wenn es darum geht, etwas Kreatives zu erschaffen, sollte ein Grund der Spaß am Erschaffen selbst sein. Denn sonst bleibt die Kreativität wohl auf der Strecke.

In Zeiten des Play Store für Android und dem iTunes/Appstore für IOS/OSX ist es für Einzelpersonen wohl so einfach wie noch nie, ihre Programme zu verbreiten und damit auch Geld zu verdienen. So zumindest in der Theorie. Denn im Android Store zeigt sich hier eine Schwäche. Vermutlich eine Kombination aus der Sturheit von Google, ein anderes Zahlungsmittel als Kreditkarte zuzulassen und der Nutzerbasis, die zu einem nicht geringen Teil aus Menschen besteht, die es gewohnt sind, Freie Software zu nutzen und eben nicht dafür zu zahlen, sorgt dafür, dass sich Apps im Android Play Store, verglichen mit denen im iTunes Store, schlecht verkaufen. Man könnte auch sagen, dass man sich als Hobbyentwickler zwischen Geld verdienen und viele Menschen erreichen entscheiden muss. Beides zusammen scheint leider utopisch. ich möchte jedoch den Nutzen, den ich aus meinem Werk ziehe, nicht nur für mich selbst haben, sondern möglichst vielen Menschen zur Verfügung stellen. Und bei Android fällt die »Kosten-Nutzen-Rechnung« zugunste einer kostenlosen App, da die paar Euro, die ich verdienen würde, eine meiner Meinung nach viel zu stark sinkende Benutzerzahl mit sich bringen würde.

Auch wenn ich inzwischen Informatik studiere, kommt das Wissen, dass ich brauche, um programmieren zu können, aus dem Internet. Und das war nur möglich, weil Menschen ihr Wissen und ihre Ideen anderen frei zur Verfügung stellen. Jetzt etwas zurück zu geben, an dem wiederum - hoffentlich - Menschen lernen und mitarbeiten können, ist also nur logisch. Und solange Ich die möglichkeit habe, das problemlos zu tun, will ich weiterhin meine Ideen und Werke anderen zur Verfügung stellen.

Die Idee, mit den Dingen, die ich erschaffen habe, Geld zu verdienen ist für mich nicht das wichtigste. Zwar habe ich keinesfalls etwas dagegen, Geld für Dinge zu bekommen, die ich gemacht habe, allerdings haben die genannten Punkte für mich eine höhere Priorität und ich möchte sie nur ungerne einschränken, um etwas Geld daraus zu machen. Deswegen finde ich den Ansatz, die App frei zur Verfügung zu stellen und gegebenenfalls durch z.B. Flattr den Leuten die Möglichkeit geben, mir Geld zu spenden, wenn sie das möchten.

Einige der Gründe, warum ich mich dafür entschieden habe, meine App kostenlos unter BSD-Lizenz veröffentlicht habe, sind natürlich so nicht auf Menschen anwendbar, die Ihr Geld mit ihren Werken verdienen müssen. Trotzdem sollten vielleicht einige Kreative mal darüber nachenken, dass es doch Gründe dafür gibt, Dinge zu erschaffen, ohne dafür direkt vergütet zu werden und warum sie ihren Beruf ursprünglich mal ergriffen haben.

Post-Privacy Ist Nicht Post-Intim

| Comments

Dieser Blogpost ist zwar nicht ganz aktuell, aber das Thema taucht doch immer wieder auf. Auslöser für den nachfolgenden Gedankengang war eine Antwort auf diesen Soup post, der den Ponies Post-Privacy unterstellte. Wer die Debatten um Postprivacy verfolgt, für den wird das nichts neues sein. Mitglieder der Spackeria wurden schon häufiger gebeten Nacktbilder von sich zu veröffentlichen, da sie ja so Post-Privacy seien. Oder es wird eine Zentrale Forderung an die Spackeria in einem Vortrag daraus gemacht.

Hier wird also von Nacktheit im Zusammenhang mit einer Privatsphärendiskussion gesprochen. Nun würden die meisten Menschen wohl die eigene Nacktheit eher der Intim- als der Privatsphäre zuordnen (Nachfolgend spreche Ich auch “nur” über die Menschen, für die Nacktheit und ähnliches tatsächlich zur Intimsphäre gehört). Die Intimsphäre befindet sich zwar auch innerhalb der Privatsphäre, ist aber, wenn überhaupt, nur einem deutlich kleineren Personenkreis zugänglich. Allein von der Zugänglichkeit her ist das ganze dadurch auf komplett unterschiedlichen Leveln. Bei Post-Privacy geht es um den Umgang und den Kontrollverlust von Daten, die an einen Kreis Dritter weitergegeben wurden. Dieser Kreis Dritte ist in dieser Form bei der Intimsphäre nicht gegeben.

Die Gründe der Geheimhaltung der Informationen unterscheiden sich auch stark voneinander. Bei Daten, die der Privatsphäre zugeordnet sind, sind es meist rationalere Gründe, wie Jobverlust, Missbrauch der Daten durch Firmen oder Staaten, etc. Der Schutz der Intimsphäre hingegen ist deutlich irrationaler durch z.B. Schamgefühl begründet (was den Schutz nicht minder richtig macht). Eine Vermischung der beiden Dinge vermischt demnach auch die dahinterliegende Angst und verkompliziert die Debatte nur unnötig. Denn über irrationale Ängste sachlich zu Diskutieren ist deutlich schwieriger als über rationale. Öffentlichkeitswirksame Aktionen mit Nacktbildern bekannter Post-Privacy Spackos würde also vermutlich eher zu einer negativen Entwicklung in der Debatte führen, da zwar mehr Leute daran teilnehmen, aber die Ängste vor dem Verlust der Intimsphäre mit hineingetragen werden.

Eine Forderung von Nacktbildern ist ausserdem nicht gerade die feine englische Art der Argumentation. Je nach Formulierung objektifiziert es das Gegenüber oder zieht Es auf eine sehr persönliche Ebene. Beides macht das sachliche Weiterargumentieren schwierig. Dadurch kommt die Diskussion dann mit hoher Wahrscheinlichkeit für beide Beteiligten auf eine Schiene, die man nicht mehr als konstruktiv bezeichnen kann.

Die Vermischung von Intim- und Privatsphäre ist zwar ein interessantes Mittel zur Polarisierung, für den Verlauf der Post-Privacy Debatte aber für keine der beiden Seiten förderlich. Um sie konstruktiv zu halten, müssen Privat- und Intimsphäre voneinander getrennt werden. Hört also bitte auf Nacktbilder als Argument oder Mittel zu nutzen und diskutiert sinnvoll.