Zottels Zeug
 Sat, 11 Oct 2014 01:44:25 +0200 
Gestern hat Mike einige Verbesserungen am Zot-Protokoll vorgenommen, über das die einzelnen Server in der RedMatrix miteinander kommunizieren. Dadurch kann es zu Problemen kommen, wenn Server mit der alten Protokollversion sich mit Servern mit der neuen Protokollversion unterhalten.
Konkret kann es in bestimmten Fällen dazu kommen, dass Kommentare nicht zugestellt werden können.
Das ist nicht so furchtbar schlimm – die RedMatrix hat „Selbstheilungskräfte“, es gibt nicht nur diesen einen Weg, wie ein Kommentar bei allen Adressaten ankommen kann: Zum einen wird nicht nur ein Zustellungsversuch unternommen, ähnlich wie ein Mail-Server versucht ein RedMatrix-Server für längere Zeit immer wieder, seine Nachrichten loszuwerden. Zum anderen fragt jeder RedMatrix-Server periodisch die Kontakte aller seiner User ab und lädt dort die letzten Neuigkeiten herunter – eben für den Fall, dass einmal keine Zustellung möglich war.
Dann kommen auch jetzt noch die Kommentare an, die auf anderen Wegen nicht mehr weitergeleitet werden können. Da das Polling, die Abfrage der Kontakte, aber je Kontakt nur einmal in 24 Stunden erfolgt, kann es im Extremfall bis zu 24 Stunden dauern, bis solche Kommentare letztlich zugestellt werden.
Deshalb: Es ist wichtig, dass alle RedMatrix-Serveradministratoren ihre Server so schnell wie möglich auf den aktuellen Stand bringen! So sind wir schnell wieder zurück bei der gewohnten, nahezu in Echtzeit erfolgenden Nachrichtenzustellung.

#Red-Matrix
Zottels Zeug
 Sat, 09 Aug 2014 03:52:16 +0200 zuletzt bearbeitet: Thu, 14 Aug 2014 21:18:12 +0200  
Je länger man die RedMatrix für Kommunikation im Stile sozialer Netzwerke nutzt, desto mehr Verbindungen sammeln sich an. Nicht alle Kontakte liest man gleich gern, und so beginnt man, sich Gedanken zu machen, wie man bei Zeitknappheit alle Beiträge von wichtigen Kontakten mitbekommt, ohne alles lesen zu müssen, was über all die anderen Kontakte hereinkommt.

Der Affinity-Slider
Jeder Verbindung kann ein „Grad der Freundschaft“ zugerodnet werden. Damit legt man fest, wie gut man denjenigen kennt. Wenn man seine persönliche Matrix betrachtet, kann man dann einstellen, welche Beiträge man sehen möchte: Zum Beispiel nur die von sehr engen Kontakten oder alle von eng bis kaum bekannt.
Der Nachteil dabei ist, dass man immer links und rechts am Regler schieben muss, um bestimmte Ausschnitte der eigenen Kontakte zu sehen.
Grundsätzlich ist das Feature toll: Regler verschieben und direkt sehen, welche Posts verschwinden oder auftauchen. Für den täglichen Einsatz ist das aber eher unpraktisch.

Sammlungen
Red bietet die Möglichkeit, einzelne Kontakte Sammlungen oder Gruppen zuzuordnen. Wenn man eine Verbindung editiert (oder auch akzeptiert), findet sich links die Übersicht über die Sammlungen, die bereits vorhanden sind. Per Klick in die Checkbox neben den Sammlungen kann dieser Kontakt zu einer oder mehreren Sammlungen hinzugefügt oder entfernt werden – das gilt auch sofort, ohne dass man den „Senden“-Button klicken muss. Hier kann man auch via Link eine neue Sammlung erzeugen.
Auf diese Weise kann man alle Kontakte eigenen Gruppen zuordnen. Zum Beispiel „Familie“, „Gute Freunde“, „Mag ich“, „Unbekannt“.
Wenn man in den Einstellungen unter „Zusätzliche Funktionen“ „Filter für Sammlung“ aktiviert hat, kann man die Matrix dann auch anhand dieser Gruppen lesen. Links erscheinen dann die definierten Sammlungen, und ein Klick darauf zeigt nur noch Threads, die von Mitgliedern dieser Sammlung gestartet wurden.
So kann man jederzeit die wichtigen Nachrichten zuerst lesen, und weniger wichtige später wenn Zeit ist.
Gerade wenn man viele Kontakte hat kann dieses Werkzeug es ermöglichen, dass man die Nachrichten wichtiger Kontakte nie verpasst, auch zu Zeiten, wo man am Tag nur wenige Minuten für die RedMatrix aufbringen kann.
Und: Man kann diese Sammlungen auch als Empfänger für private Posts nutzen.
Das werde ich in einem späteren Beitrag behandeln.
Zottels Zeug
 Fri, 10 Jan 2014 23:51:44 +0100 zuletzt bearbeitet: Fri, 10 Jan 2014 23:55:55 +0100  
As this post might be of interest for an international audience who might find it using a search engine, I'll post it in English.

Ever wondered how to write a script to post arbitrary stuff to the Red Matrix, like the output of any script or, in my case, RSS/Atom feeds? (feed2red.pl is already working, but not ready yet, I'll cover it here when it is.)

Here's how to do it in Perl. Kudos to Tazman Devil, his bash script (using curl) taught me what I had to do.

We can use the Red API for posting. That means we have to go to <server>/api/statuses/update?channel=<channel> and provide what we want to post via POST there.

So we need some kind of http client. That would be LWP::UserAgent, which I think is automatically installed with most Perl distributions, but you might have to install using your package management system first.

So, let's go:
use LWP::UserAgent;

my $red = LWP::UserAgent->new();

LWP::UserAgent has method called post to POST something at a web address. In the way I use it, it takes the URL to post to as a string and the keys and values to set as a hash reference. We need to set the key "status".

The post method will return a HTTP::Response object. We can use its methods is_error and message to handle errors.

During the following examples, I'll use red.zottel.net as the Red server and zottelszeug as the channel address—please replace that with your own values.

Ok, so let's post:
my $response = $red->post("https://red.zottel.net/api/statuses/update?channel=zottelszeug",
    [ status => "A wonderful post!" ]);
if ($response->is_error)
    {
    print STDERR "Error posting to Red: " . $response->message . "\n";
    exit(1);
    }

But wait—we have to be authenticated first! We could use OAuth here, which is complicated, or we can just provide our username and password using basic auth.

To do that, we must set the corresponding HTTP headers. We can set our default headers used by LWP::UserAgent by using its default_headers method. We give it an HTTP::Headers object, where we can conveniently set the auth headers:
my $hed = HTTP::Headers->new();
$hed->authorization_basic('<email address of Red account>', '<password>');
$red->default_headers($hed);

That's it. We're ready to post.

Here's the whole script with some variables to allow for easy adaptation:
#!/usr/bin/perl

use LWP::UserAgent;

my $redServer = 'https://yourserver.domain';
my $user = 'your@red.user'; # email address you use at Red login
my $password = 'yOuRrEdPaSsWoRd';
my $channel = 'channeltopostto'; # channel nickname as in https://yourserver.domain/channel/channeltopostto

my $status = 'I will post this message.';

my $red = LWP::UserAgent->new();
my $hed = HTTP::Headers->new();
$hed->authorization_basic($user, $password);
$red->default_headers($hed);

my $response = $red->post("$redServer/api/statuses/update?channel=$channel",
    [ status => $status ]);
if ($response->is_error)
    {
    print STDERR "Error posting to Red: " . $response->message . "\n";
    exit(1);
    }

#Red-Matrix #Perl
Zottels Zeug
 Wed, 08 Jan 2014 16:52:19 +0100 zuletzt bearbeitet: Wed, 08 Jan 2014 17:02:35 +0100  
Mit @-Tags in Posts und Kommentaren kann man Leute oder Kanäle direkt ansprechen oder „erwähnen“. Der angesprochene erhält dann eine Benachrichtigung, dass er erwähnt wurde – zumindest, falls er den Beitrag überhaupt erhält, d.h. wenn man jemanden in einem Kommentar zu einem Post erwähnt, den er gar nicht erhalten hat, weil er ihn nicht sehen darf, kann er diesen Kommentar auch nicht sehen und erhält somit natürlich auch keine Benachrichtigung.
Einen Sonderstatus haben dabei Foren, also Kanäle, bei denen das Recht „Kann an alle meine Kontakte via @-Erwähnung Nachrichten weiterleiten“ gesetzt ist. Erwähnt man so einen Kanal mit @ in einem Post (nicht in einem Kommentar!), erhalten alle Kontakte des Kanals die Nachricht, auch dann, wenn die Nachricht ansonsten einen eingeschränkten Empfängerkreis hat, also nicht öffentlich ist. (Was auch bedeutet, dass die Nachricht trotzdem öffentlich im Internet sichtbar sein kann, falls die Inhalte des erwähnten Kanals allgemein öffentlich sind.)
Das war bisher schon so. Neu:

@!-Erwähnungen
Nutzt man in einem Post (nicht in einem Kommentar) @! statt @ beim erwähnen, wird der Empfängerkreis automatisch auf den so erwähnten Kanal eingeschränkt. Es passiert also das gleiche, wie wenn man eine @-Erwähnung genutzt hätte und außerdem auf das Schloss neben dem Teilen-Button geklickt hätte und den erwähnten Kanal als einzigen Empfänger ausgewählt hätte.
Das ist für zwei Anwendungsfälle sehr praktisch:
Erstens: Nur in ein Forum posten. Ich möchte einen Beitrag nur in ein Forum schreiben, nicht gleichzeitig auch an alle meine sonstigen Kontakte, die evtl. nicht Teilnehmer dieses Forums sind. Mit einer @!-Erwähnung des Forums passiert genau das, ohne dass ich dafür, wie bisher, extra auf die Seite des Kanals wechseln muss, um dort zu posten.
Zweitens: Persönliche Nachrichten. Ich möchte eine Nachricht an einen Kontakt senden, die nur er sehen kann, die aber in seiner Matrix auftauchen soll, nicht als Persönliche Mail im entsprechenden Bereich von Red. Durch die automatische Einschränkung des Empfängerkreises passiert genau das, wenn ich jemanden @!-erwähne.
Das funktioniert auch mit mehreren Empfängern und kann diesen dann auch anzeigen, wer außer ihnen selbst diese Nachricht lesen kann.

QR-Codes
Es gibt ein neues bbCode-Element: [qr]Inhalt[/qr]
Damit wird ein QR-Code erzeugt, der „Inhalt“ enthält.
Beispiel: [qr]Das ist ein wirklich toller Beispieltext![/qr] wird zu
QR-Code
#Red-Matrix
Zottels Zeug
 Mon, 16 Dec 2013 14:41:53 +0100 zuletzt bearbeitet: Mon, 16 Dec 2013 15:11:17 +0100  
Mit dem neuesten Code wird jetzt auch die Projekt-Homepage (bisher nur auf https://redmatrix.me/) auf jeden Server ausgeliefert.
Wenn man für Besucher, die direkt auf die Homepage des Servers zugreifen (hier bei mir zum Beispiel https://red.zottel.net), die Projekt-Homepage anzeigen möchte, muss man eine Shell auf dem eigenen Red-Server aufmachen, dort in das Wurzelverzeichnis der Red-Installation wechseln und folgendes eintippen:
util/config system projecthome 1
Unabhängig davon ist es übrigens möglich, ins Wurzelverzeichnis eine selbst erstellte Datei namens home.html zu legen, die solchen Besuchern angezeigt wird. Durch obigen Befehl wird dieser Mechanismus ausgeschaltet und statt dessen die Projekt-Homepage angezeigt, die sich im Verzeichnis assets befindet.
Edit: Es ist auch möglich, einen der eigenen Kanäle als Seiten-Kanal zu definieren (auf den Admin-Seiten unter Seite). Wenn man in diesem Kanal eine Web-Seite namens home anlegt, wird diese angezeigt. (Danke Tobias!)

Und noch eine Neuigkeit: Es gibt jetzt den Channel Matrixian, in dem offizielle News aus der Red-Matrix-Welt veröffentlicht werden.

#Red-Matrix
Zottels Zeug
 Tue, 10 Dec 2013 15:35:45 +0100 zuletzt bearbeitet: Wed, 11 Dec 2013 10:52:14 +0100  
Eine neue Rubrik in diesem Blog: Neues aus der Red-Matrix. Darin werde ich in unregelmäßigen Abständen darüber berichten, was es an interessanten neuen Dingen und Features in der Red-Matrix gibt.
Hier der erste entsrechende Post mit einigen Entwicklungen aus den letzten Monaten.

Kanal-Quellen
Es ist jetzt möglich, Posts aus anderen Kanälen zu importieren, sofern diese das erlauben. Dabei kann auch nach Stichwörten gefiltert werden.
Diese Feature macht vor allem dann Sinn, wenn man einen zentralen Kanal anbieten möchte, der alle Posts enthält, die man in verschiedenen eigenen Kanälen veröffentlicht. Außerdem kann man dadurch die Reichweite guter Quellen erhöhen, indem man sie selbst weiterverteilt – wobei man natürlich darauf achten sollte, die eigenen Kontakte nicht mit zu vielen Posts zu nerven, die aus zig verschiedenen Quellen zusammengeklaubt sind.
In Zukunft wird es evtl. auch möglich sein, Atom- und RSS-Feeds als Quellen zu benutzen. Natürlich muss man dabei darauf achten, ob man das auch darf. Mike Macgirvin, der Hauptentwickler, war zuletzt noch nicht ganz sicher, ob er das implementieren soll, und von den anderen Entwicklern hat sich noch niemand gemeldet.
Edit: Weil eben schon eine entsprechende Nachfrage kam, hier noch folgende Ergänzung:
Wie nutze ich dieses Feature?
1. Voraussetzung: Damit du einen Kanal als Quelle nutzen kannst, muss er dir das Recht „Kann meine "öffentlichen" Beiträge als Quellen von Kanälen verwenden“ gegeben haben.
2. Du musst unter „Zusätzliche Funktionen“ die „Kanal-Quellen“ aktiviert haben.
3. Dann gibt es eine neue Sektion in den Einstellungen namens „Kanal-Quellen“, wo du die Quellen einstellen kannst.

Darstellung der Channel-Seite ohne Javascript
Wegen des allgmeinen Aufbaus von Red war es bisher nicht möglich, die Seiten, auf denen sich Posts befinden, ohne Javascript zu betrachten. Somit konnten sie auch von Suchmaschinen nicht indiziert werden, was natürlich vor allem für Blogs wie diesen hier keine guten Voraussetzungen waren.
Das wurde jetzt gefixt – die channel/xxx-Seite kann jetzt ohne Javascript betrachtet werden, und mehr ist für Suchmaschinen ja auch nicht relevant.
Eine Nutzung von Red ganz ohne Javascript ist bisher nicht möglich. Wirklich nötig wäre das meiner Ansicht nach nur für Leute, die allgemein kein Javascript nutzen wollen. Das ist für mich (der ich die JS-freie Version der Channel-Seite gebaut habe) kein ausreichender Grund, um mir die Mühe zu machen, und trvial wäre das nicht.

Die Matrix in Comanche
Comanche ist ein Teil des Unterbaus von Red, den Mike jetzt nach und nach realisiert. Ziel ist, eine Art Seitenbeschreibungssprache für Red-Seiten zu bekommen, die sehr mächtig ist und die individuelle Gestaltung beliebiger Seiten auf einem Red-Server ermöglicht. Dass Comanche schon jetzt sehr mächtig ist, hat Mike jetzt bewiesen: Die Matrix (die network/-Seite) ist jetzt schon in Comanche programmiert. Solche Möglichkeiten stehen in Zukunft jedem zur Verfügung, der Seiten in Red gestalten will.

#Red-Matrix