Werbung auf Ironblogger-Seiten?!

28 05 2013

Ausverkauf, Kommerz, Verrat!!!einsdrölf

Nein, jetzt mal im Ernst. Sonntag gab es einen Tweet von @antischokke, dass andere nachdenken, Werbung auf Ironblogger-Seiten zu schalten.

Mein erster ungefilterter Gedanke war: „Sacht ma, habt ihr noch alle Latten am Zaun!?“
Doch bevor ich mich nicht ganz nett über diese Idee äußere, wollte ich lieber erst mal ne Runde drüber schlafen – einen Tweet habe ich mir dann verkniffen, meinen Senf muss ich aber dazugeben. Da 140 Zeichen dafür aber nicht reichen, hier jetzt ein Beitrag dazu.

Wieso sollte man Werbung auf einer Ironbloggerseite schalten? Klar, damit Kohle in die Kasse kommt.
Wenn zu wenig Geld für Bier zusammenkommt, dann hat die Ironblogger-Aktion ja geschafft, was sie wollte. Es geht beim ironblogging nicht darum, so viel Geld wie möglich zum Saufen zu bekommen. Es soll mehr gebloggt werden. Das ist und bleibt das Hauptziel. Wer dann nicht bloggt, muss halt in die Kasse zahlen. Geld in der Kasse bedeutet dann Bier – aber das ist nur ein (angenehmer) Nebeneffekt.
Wenn ihr nicht genug Geld in die Kasse bekommt, weil alle ihre Blogs fleißig und regelmäßig mit Beiträgen füllen, dann freut euch!

Eine weitere Möglichkeit, wieso man Geld braucht, ist der Unterhalt der Ironblogger-Seite. So eine Seite kostet zwar ein paar Euro, treibt aber niemand in den Ruin. Aktuell werden die Kosten für Ironblogger-Berlin von unsrer Ironmutti getragen. Dafür an dieser Stelle mal mein Dank! Hier könnte ich es verstehen, wenn Nicole sagen würde, sie möchte die Kosten nicht weiter alleine tragen.
Da ließen sich aber auch andere Möglichkeiten finden. Eine Domain, einen Bloganbieter oder etwas Webspace – das sind die Sachen, die gezahlt werden müssten. Für diesen Fall kann man einen Mitgliedsbeitrag einführen. Jeder Ironblogger zahlt 50 Cent oder einen Euro pro Jahr in die „Betriebskostenkasse“ – was dort mehr rein wandert als benötigt, kann dann beim nächsten Treffen mit in die Bierkasse.

Meiner Meinung nach gibt es also keinen Grund, wieso man Werbung auf den Ironbloggerseiten schalten sollte.
Danke.





re:publica 13 – Ironblogger

19 05 2013

Nachdem ich mich von der re:publica erholt habe, komme ich nun auch mal dazu etwas darüber zu schreiben.
Die Session mit dem größten Ansturm (zur Bühne) war zweifelsohne die Ironblogger-Session. Was wohl auch daran lag, dass es Bückware Bananen Bier gab.

Die Session könnt ihr euch hier ansehen:

Berlin, der Pott, Kiel, Hamburg und Stuttgart haben erzählt, was Ironblogger sind, was sie machen und das Bier gut ist.
Die Session scheint auf fruchtbaren Boden in der Blogwelt gestoßen zu sein. Am Ende der Session wurde die Gründung eines neuen Chapters bekannt gegeben und es werden immer mehr. Da wären unter anderem Bodensee und Leipzig.

Ich war zwar nicht der erste Ironblogger in Deutschland, gehöre aber zu den Ironbloggern der ersten Stunde und hab mit meiner Arbeit am Ironblogger Skript auch meinen Teil dazu beigetragen, dass die Entwicklung so laufen konnte wie sie gelaufen ist. Auf händisches Auswerten hat schließlich keiner Bock und auch nicht die Zeit dazu.

In den knapp anderthalb Jahren die ich Ironblogger bin, habe ich wieder mehr gebloggt und größtenteils hab ich meinen Soll auch immer erfüllen können. Die Themen sind immer noch breit gefächert, auch wenn sich ein paar Kernthemen im Laufe all der Jahre heraus gebildet haben.
Natürlich hab ich auch ein paar Bier getrunken und ein paar Euro in die Kasse gezahlt. Man muss halt auch mal Ironslacker sein, sonst gibt’s nix zu trinken.





Anleitung: Iron Blogger Skript (reloaded)

22 07 2012

Nach einigen Änderungen am Skript und dem Aufruf von Mako Hill, dass jemand mal das Iron Blogger Skript dokumentieren soll, wird es Zeit, endlich mal meine Anleitung auf den aktuellsten Stand zu bringen. Die alte Anleitung ist damit hinfällig. Wundert euch nicht, wenn euch einiges bekannt vorkommt – Dinge, die sich nicht geändert haben, habe ich aus der alten Anleitung übernommen.

The English version of this guide will be updated soon. Stay tuned.

In meiner Anleitung gehe ich wieder davon aus, dass ihr Debian nutzt. Solltet ihr ein anderes System verwenden, so müsst ihr die Befehle anpassen und evtl. heißen die Paketnamen dann ein wenig anders.

Was muss alles installiert sein?

  • git
  • python
  • python-yaml
  • python-dateutil
  • python-mako
  • python-lxml
  • python-feedparser
  • ledger
  • mutt

Wie installiere ich die Pakete?

Gebt auf der Konsole folgende Zeile ein – auch wenn hier ein Zeilenumbruch angezeigt werden sollte, es ist eine einzige Zeile!:

sudo apt-get install git python python-yaml python-dateutil python-mako python-lxml python-feedparser ledger mutt

Es werden die benötigten Pakete herunter geladen und installiert. Wenn eines der Pakete schon vorhanden ist, dann wird dieses automatisch übersprungen.

Woher bekomme ich das Iron Blogger Skript?

Wechselt auf der Konsole in das Verzeichnis, in dem ihr das Iron Blogger Skript später haben wollt, und führt folgende Zeile aus:

git clone https://github.com/chaosblog/iron-blogger.git

Es wird automatisch ein Verzeichnis „iron-blogger“ angelegt, dieses beinhaltet das Skript.

Was muss ich bei meinem Blog vorbereiten?

Erstellt eine neue Seite (kein Artikel) für die Teilnehmerliste. Verpasst der Seite eine Überschrift nach belieben.

Macht euch keine Mühe Text auf die Seite zu schreiben – jeglicher
Inhalt der Seite wird bei einer Generierung der Teilnehmerliste überschrieben.

Navigiert in eurem WordPress-Admininterface zu „Seiten“, in der Auflistung der vorhanden Seite taucht die gerade erzeugte Teilnehmerliste auf. Fahrt mit der Maus über den Link und merkt euch die ID-Nummer der Seite, diese wird später gebraucht.

Wenn der Link zur Seite beispielsweise https://chaosblog.wordpress.com/wp-admin/post.php?post=2&action=edit lautet, dann wäre die ID die ihr euch merken müsst die 2.

Was muss ich anpassen?

Die zentrale Konfigurationsdatei.
Nach meinen Änderungen gibt es nun eine zentrale Konfigurationsdatei – es ist nicht mehr nötig, wie bisher, verschiedenste Dateien zu bearbeiten. Eine Beispiel-Konfigurationsdatei wird schon mitgeliefert. Diese heißt „settings.cfg.dist“. Kopiert die Datei und gebt ihr den Namen „settings.cfg“. Die Datei hat folgenden Inhalt:

[general]
mail=addyourmail@here
start_date=YYYY/MM/DD
 
[blogsettings]
username=john_doe
xmlrpc_endpoint=http://blog-URL.tld/xmlrpc.php
blog_id=0
participants_page_id=12

[general]
Im Abschnitt general sind Mailadresse und Startdatum zu definieren.
Tragt bei „mail=“ die Mailadresse ein, die die Auswertungsmails am Ende einer Wertungswoche erhalten soll. Die Variable „start_date“ muss das Datum enthalten, an dem euer Iron Blogger Projekt gestartet ist. Das Datumsformat ist hierbei wie folgt festgelegt: YYYY/MM/DD. Das Jahr also vierstellig, der Monat zweistellig und der Tag ebenfalls zweistellig.

[blogsettings]
Der Abschnitt blogsettings enthält die notwendigen Informationen um mittels des Skriptes auf einen WordPress-Blog zugreifen zu können. Der „username“ muss den Nutzernamen eures WordPress-Zugangs enthalten. Die Variable „xmlrpc_endpoint“ muss die URL eures Blogs gefolgt von „/xmlrpc.php“ (ohne Anführungszeichen) enthalten.
Wenn eure Blog-URL z.B. https://chaosblog.wordpress.com heißt, dann wäre der einzutragende Wert https://chaosblog.wordpress.com/xmlrpc.php.
Sollte das Schema eurer XML-RPC-URL abweichen, dann schaut bitte direkt innerhalb der Administrationsoberfläche vorn WordPress nach, wie die URL lautet.
Die Variable „blog_id“ lasst ihr auf 0 stehen. Theoretisch könnte hier auch ein anderer Wert stehen – dieser Fall ist mir aber bisher noch nie in der Praxis begegnet. Solltet ihr hier etwas anderes eintragen müssen, dann wisst ihr es auch 😉
Als Letztes fehlt noch die participants_page_id. Dies ist die ID der Teilnehmerseite, die wir uns vorhin gemerkt haben.

Die Liste der Blogger
Die Datei bloggers.yml enthält die Blogger, die an eurer Iron Blogger Aktion teilnehmen.

username:
links:
- [Blogname 01,'http://blog-URL.tld/']
- [Blogname 02,'http://blog-URL02.tld/']
name: Jon Doe
start: YYYY/MM/DD

Der username entspricht dem Nick des Bloggers auf Twitter. Solltet ihr auch Blogger ohne Twitteraccount haben, so schreibt hier einen Nutzernamen hin, den ihr euch ausdenkt und fügt den optionalen Eintrag twitter:no zu dem Nutzer hinzu.

Im Abschnitt links tragt ihr den oder die Blogs ein, die ein einzelner Blogger betreibt. Hier werden nur ein Name und ein Link eingetragen – eine Feed-URL wird später automatisch ermittelt und eingetragen.
Das Feld name erhält den Klarnamen, bzw. dass was als Klarname angezeigt werden soll.
Damit auch nach dem Start der Aktion neue Teilnehmer hinzustoßen können, gibt es das Feld start. Dort wird eingetragen, ab wann ein Nutzer in die Wertung einfließt.
Achtung:Wenn ihr einen Wert in der Vergangenheit eintragt, heißt es nicht, dass für den User auch rückwirkend die Gebühren berechnet werden!
Zum besseren Verständnis hier ein Beispiel:
chaosblog:
links:
-[Chaosblog, 'https://chaosblog.wordpress.com/']
name: Marcus S.
start: 2012/01/01
twitter: no

Wie führe ich das Skript aus?

In Wirklichkeit ist es nicht ein einzelnes Skript, sondern mehrere Skripte, die zusammenarbeiten. Daher gibt es eine bestimmte Reihenfolge, die ihr einhalten müsst.

      1. Tragt alle Teilnehmer wie oben beschrieben in die Datei bloggers.yml ein.
      2. Führt das Skript import-feeds.py durch Eingabe von
        ./import-feeds.py
        aus. Die Datei bloggers.yml wird gelesen und zu allen Blog die noch keine Feed-URL eingetragen haben, wird die Feed-URL erzeugt.
      3. Nun könnt ihr die Teilnehmerliste auf eurem Blog aktualisieren lassen. Dies geschieht wieder auf der Konsole, diesmal ist der Befehl:
        ./update-participants.py
        Ihr werdet nun aufgefordert, euer Passwort einzugeben – dies ist das Passwort mit dem ihr euch auch im WordPress einloggt.
        Nach einigen Sekunden erscheint wieder der Eingabeprompt und die Teilnehmerliste eures Blogs wurde aktualisiert.
      4. Die Ermittlung der neuen Beiträge der einzelnen Teilnehmer übernimmt scan-feeds.py. Dieses Skript lädt nacheinander alle Feeds der Blogs und speichert die Titel und die Adressen der neuen Beiträge. Dies geschieht via:
        ./scan-feeds.py
      5. Nun könnt ihr einen Probelauf des Auswertungsskripts weekly-update.py starten. Der Parameter -n sorgt für einen Probelauf – es wird keine Mail verschickt und kein Blogartikel erzeugt. Allerdings wird der Text, der Mail, die generiert wird, auf der Konsole ausgegeben. Als zweiten Parameter beim Probelauf erwartet das Skript ein Datum im Format YYYY-MM-DD (z.B. 2012-01-19)
        ./weekly-update.py -n 2012-01-19
        Das Datum definiert die Woche für die die Auswertung erzeugt wird. Basierend auf dem Parameter und dem weiter oben konfigurierten Start-Datum wird die Woche berechnet. Für das Skript muss eine Woche nicht zwingend mit Sonntag oder Montag beginnen.
        Wenn ihr den Parameter -n durch -q ersetzt, bekommt ihr noch eine kompaktere Ansicht des Probelaufs.
      6. Jetzt wird es ernst. Wir lassen nun den Blogbeitrag mit der Auswertung und die E-Mail dazu erzeugen. Wieder wird das Skript weekly-update.py ausgeführt, diesmal wird allerdings nur ein Parameter, das Datum, übergeben.
        ./weekly-update.py 2012-01-15
        Wie bei der Aktualisierung der Teilnehmerliste werdet ihr auch hier nach eurem WordPress-Passwort gefragt.
        Nach einigen Sekunden ist der Blogpost erstellt und ihr solltet eine neue E-Mail in eurem Postfach vorfinden.

Fertig. War doch auch diesmal gar nicht schwer und sogar leichter als bei der ersten Version, oder? 😉

Noch ein Tipp: Legt euch bei WordPress.com einfach einen neuen bzw. einen weiteren Blog an, den ihr auf privat schaltet. Diesen könnt ihr dann als Spielwiese zum Testen nutzen.





review: republica – ironblogger bierup

5 05 2012

Donnerstag, 3. Mai 2012, war es soweit. Die Ironblogger Berlin haben sich getroffen. Es waren eine Menge Euro in der Kasse die auf ihren Einsatz warteten.

Nun gab es aber in der re:fill bar auf der #rp12 Freibier. Freibier ist an sich immer zu bevorzugen – nur kann man damit keine Kasse leeren. Somit wurde in Drinks investiert. Hiermit mein Dank an alle, die nicht gebloggt haben 😉

Ein kleines Fazit des Abends:

  • Frau @antischokke sofort erkannt.
  • Festgestellt, dass @saumselig aus Leipzig kommt.
  • Herrn @horax kennen gelernt, @moellus krankheitsbedingt leider nicht
  • Von @pausanias das wohl beste Foto des Abends geschossen – da ich vergessen habe, nach den Persönlichkeitsrechten zu fragen gibt es hier keine Veröffentlichung
  • Regel 7 besprochen und eine Idee im Hirn inkl. passenden Codeanpassungen zusammen gebastelt – einen ersten Entwurf werde ich nächste Woche implementieren.
  • @thelarsen bequatscht, Ironblogger Leipzig zu gründen – Anfang des Jahres wollte ja keiner mit machen.
  • Unzählige neue Gesichter kennen gelernt. Dummerweise kann ich mir die Namen dazu schlecht merken
  • Ein paar Mal für das Ironblogger-Skript gelobt worden, einmal gesagt bekommen, dass ich Adam Sandler ähnlich sehen soll (wtf???)
  • Currywurst mit @nerotunes und @thelarsen bei Curry 36

Meinen Dank auch nochmal an @maxheadroom, @mina777 und @derbobmeister für die Versorgung mit Koffein, Strom und Essen im Vorfeld





Twitter-Quartett

24 02 2012

Quartett – wer hat es nicht gespielt? In jungen Jahren ist doch sicher jeder mal mit den Karten in Berührung gekommen – auch heute ist der Reiz ungebrochen. Vielleicht liegt es auch am allgemeinen Trend, dass alles irgendwann einmal wieder kommt. Ich persönlich habe zum Jahreswechsel das letzte Mal Quartett gespielt – mit dem @Unruheherd. Wir haben uns nix geschenkt und um jede Karte gekämpft 🙂

Der Herr @saumselig, seines Zeichens #ironblogger, hat angekündigt auf einem Podcaster-Quartett zu vertreten sein.

Da schiebe ich doch gleich mal eine Ankündigung hinter her. Stefan / @teamlambchop hat auch ein Quartett gebastelt und es frei zur Verfügung gestellt – diesmal allerdings ein Twitter-Quartett. Auch ich bin verewigt – erstaunlicherweise doch nicht so chancenlos wie ich anfangs dachte 🙂

Schaut es euch an, ladet es runter, druckt es, spielt es, habt Spaß.





@moellus wills wissen

13 02 2012

Der Herr @moellus hat gefragt – ich antworte …

Also habe ich mir mal die Statistiken angeschaut, was sich so getan hat auf meinem Blog.
Als #ironblogger Zusatztraffic sehe ich mal alle Leute an, die über Ironblogger Berlin, die Teilnehmer oder einen entsprechenden Suchbegriff zu mir gekommen sind.

Es sind in den letzten sechs Wochen sagenhafte 41 Besucher mehr gekommen 😉

Wobei mehr Besucher ja nicht mein Grund waren, ein Ironblogger zu werden, ich wollte einfach wieder regelmäßig Content in den Blog gießen. Es wäre Irrsinn zu glauben, ich könnte mit dem kleinen Chaosblog die breite Masse erreichen.





Hasenstöckchen.

6 02 2012

Da sitze ich nun, vor mir ein Stöckchen welches mir @Hasi_Nerotunes zugeworfen hat. Jetzt muss ich mir mal etwas Geistreiches dazu aus den Fingern saugen 😉
Also Ärmel hoch gekrempelt, Bleistifte frisch gespitzt der Größe nach sortiert und ab geht’s an den Artikel.
Auch wenn Frau Hasi mir fünf neue Fragen gestellt hat, so nehme ich mir doch eine Frage, die sie schon beantwortet hat, auch noch dazu – quasi als nullte Frage.

0. Welche Person/en hatte in deinem Leben bis heute einen großen Einfluss und warum?

Viele werden wahrscheinlich ihre Eltern oder ihren Partner wählen – einfach „weil es so ist“. Den größten Einfluss auf mich hatte mein Paps. Auch wenn er schon 2 Jahre verstorben ist, er hat mich zu dem gemacht, was ich heute bin.
Hat mir seine Sichtweisen auf das Leben nah gebracht, seine Werte und Tugenden vermittelt. Er hat mir gezeigt, was es bedeutet, zu kämpfen. Er hat mir die Kraft gegeben, von der ich nie gedacht hätte, dass sie in mir schlummert. Er war immer für mich und für alle da. Noch heute habe ich schwer mit dem Verlust zu kämpfen – doch ich weiß, mein alter Herr ist immer da.

In dem Zusammenhang lege ich euch meinen Artikel „Vatertag. Zeit zum Danke sagen“  ans Herz. Wenn ihr diesen Artikel noch nicht kennt, tut mir bitte den Gefallen und lest ihn nach.

Hier nun die eigentlichen Fragen, die ich beantworten soll:

1. Wenn du etwas in deinem Leben ändern könntest, was wäre das?

Ich hätte gern viel mehr Zeit mit meinem Vater verbracht – inzwischen möchte ich eigentlich nichts ändern außer meinen Wohn- und Arbeitsort.
Alles andere habe ich für mich schon geändert – das Leben ist zu kostbar um es zu vergeuden

2. Was bringt dich auf die Palme und was bringt dich wieder runter?

Leute, die absolut begriffsstutzig sind und denen man alles 1000 Mal erklären muss und sie sich trotzdem anstellen wie die ersten Menschen. Da kann ich etwas ungeduldig werden.
Noch schlimmer ist es allerdings, wenn mich jemand anlügt, ich es auch genau weiß, die Person es dann aber abstreitet.

Am schnellsten beruhige ich mich wieder, wenn man mir einfach ein wenig Zeit lässt, dann baut sich das von ganz allein wieder ab.

3. Was sind deine 3 schlechtesten Eigenschaften?

Das ist schnell gesagt, ich bin ein absoluter Chaot, ein schrecklich zerstreuter Professor und teilweise ein übertriebener Perfektionist.

4. Was denkst du über den Hasen, der dir das geschickt hat?

Bisher kenn ich den Hasen noch nicht im echten Leben, dass müssen wir aber unbedingt nachholen!Dass was ich bisher gelesen und gehört habe, möchte ich mit einem tierischen Zitat der Schildkröte Racker zusammenfassen: „Du rockst, dude!“

5. Was würdest du tun, wenn morgen die Welt untergehen würde?

Nicht zur Arbeit gehen, mir ne Kiste Whisky untern einen Arm klemmen, nach Leipzig fahren, den @dbaezol unter den anderen Arm klemmen und mit Whisky und Daniel ab zu @nerotunes den Weltuntergang gebührend feiern.

Ich verteile mein Stöckchen einfach mal an alle #ironbloggerberlin und übernehme die Fragen direkt ohne Änderung.





Howto: Iron Blogger Script (English Version)

20 01 2012

Please excuse my really bad English. I did my best to write this post reasonably understandable.
Perhaps there is someone who helps me and corrects my mistakes.

This howto is available in German too.

As mentioned in my last post, there is the Iron Blogger script running on my server the with some adjustments.

Here is a brief guide on how to install and use this script. I created a new fork on Github and uploaded my changes uploaded there.

In my post I am assuming that you use Debian. Should you use a different system, please adjust the commands and then the package names.

What needs to be installed?

  • git
  • python
  • python-yaml
  • python-dateutil
  • python-mako
  • python-lxml
  • python-feedparser
  • mutt

How do I install the packages?

Run the following command (even if there appears a line break it’s only a single line):

sudo apt-get install git python python-yaml python-dateutil python-mako python-lxml python-feedparser mutt

Your system will load the required packages and install them. If one of the packages already exist, then it is skipped automatically.

How do I get the Iron Blogger script?

Changes into the directory where you want to have the Iron Blogger script later run the following line:

git clone https://github.com/chaosblog/iron-blogger.git

This command creates a directory „iron-blogger“ and downloads the script from Github.

What do I need to prepare?

Create a new page for the list of participants, the title you can choose at will.

Don’t write any text at this page – Any content of this will be overwritten by a generation of participant list.

Navigate in your WordPress admin interface to „Pages“. In the list of available pages appears the newly created one. Ride with the mouse over the link and you remember the ID number of the page, it will be used later.

If the link to the page, for example is https://chaosblog.wordpress.com/wp-admin/post.php?post=2&action=edit, then the ID which you have to remember is 2.

What do I need to adjust?

Currently there is no central configuration file.

  1. render.py
    Edit the File render.py. There you configure the start-date of your Iron Blogger Event.
    At Row 13:
    START = datetime.datetime(2011, 12, 25, 2)
    The dateformat is: yyyy, mm, dd, h
    The year (four digits), the month (two digits), the day (two digits), the hour (24 hour format).
  2. update-participants.py
    Edit file update-participants.py, adjust Rows 10-13 angepasst werden.
    XMLRPC_ENDPOINT = 'http://blog-URL.tld/xmlrpc.php'
    USER = 'username'
    BLOG_ID = 0
    PAGE_ID = 12
    The XMLRPC_ENDPOINT is your blog URL followed by „/xmlrpc.php“ (without quotation marks).
    When your blog URL  is https://chaosblog.wordpress.com so the needed value is https://chaosblog.wordpress.com/xmlrpc.php
    USER your username, used at the blog login page.
    Normally the BLOG_ID is 0 (zero) sein
    PAGE_ID is the remembered ID form your participants page.
  3. weekly-update.py
    Edit weekly-update.py similar to update-participants.py – Rows 11-13 need to be adjusted.
    XMLRPC_ENDPOINT = 'http://blog-URL.tld/xmlrpc.php'
    USER = 'username'
    BLOG_ID = 0
  4. bloggers.yml
    The file bloggers.yml contains the participants.
    username:
    links:
    - [Blogname 01,'http://blog-URL.tld/']
    - [Blogname 02,'http://blog-URL02.tld/']
    name: Jon Doe
    start: YYYY/MM/DD
    username corresponds with the bloggers twitter name. You could write any name – but if you don’t use twitter names, you have to edit the templates which generate the overview and the participants list. Both generate username based links for twitter.
    At the section links you have to enter the blog an user is running.
    Don’t add a feed-URL – they will generated later.
    The field name contains the bloggers realname.
    For blogger which will join the project later, there is the „start“ field.
    Caution:The fees are not calculated backdatedHere’s an example to illustrate:
    chaosblog:
    links:
    - [Chaosblog, 'https://chaosblog.wordpress.com/']
    name: Marcus S.
    start: 2012/01/01
  5. email.txt
    Only a short adjustment – replace at row 3 in the file email.txt the string „addyourmail@here“ with your e-Mail-adress.

How do I run the script?

It is not a single script, but several scripts that work together. Therefore, there is a specific order, you must follow.

  1. Add all participants to bloggers.yml.
  2. Run the script import-feeds.py via console:
    ./import-feeds.py

    The file bloggers.yml will be read and the missing feed-URLs will be added.
  3. Now you update the participants list by running:
    ./update-participants.py
    You will be aked to enter your WordPress password.
    After a few seconds the prompt will return and your participants list was updated.
  4. The determination of new contributions of each participant is done by scan-feeds.py. This script loads one after another feed and stores the titles and addresses of the new posts.
    Run this command:
    ./scan-feeds.py
  5. Go on with a dry run of the weekly results. weekly-update.py  with the parameter -n starts the dry run. No blog post will be done and no email will be send. The second parameter at the dry run is a date, formated YYYY-MM-DD (e.g. 2012-01-19)
    ./weekly-update.py -n 2012-01-19
    The date defines the week for the results. Based on the configured start and the parameter the week will be calculated. It is not necessary to start a week on sunday or monday.
  6. Now it gets seriously.
    Let’s generate a blog post and an email. Run the weekly-update.py script only with the date parameter:
    ./weekly-update.py -n 2012-01-15
    You will be asked once more to enter your WordPress-Password.
    After a few seconds your blog post is created and you will receive an e-mail

Finished. That is quite easy. Isn’t it? 😉

To-do:

  • one configuration file
  • store the wordpress password for automation

I’m going to implement both and when finished I will upload it to github again.

Tip: Created just a new WordPress.com blog and turn into private. This you can use as a playground to test everything.

Another tip: when you created just one new WordPress.com blog or another to whom you turn to private. These you can then use as a playground.





Anleitung: Iron Blogger Skript

20 01 2012

Wie bereits in meinem letzten Beitrag erwähnt, läuft auf meinem Server das Iron Blogger Skript mit einigen Anpassungen.

Hier eine kleine Anleitung, wie ihr das Skript bei euch installieren könnt.

Diese Anleitung gibt es auch in (miesem) Englisch.

Damit niemand meine Änderungen erneut machen muss, habe ich einen Fork auf Github erstellt und meine Änderungen dort wieder hochgeladen.

In meiner Anleitung gehe ich davon aus, dass ihr Debian nutzt. Solltet ihr ein anderes System verwenden, so müsst ihr die Befehle anpassen und evtl. heißen die Paketnamen dann ein wenig anders.

Was muss alles installiert sein?

  • git
  • python
  • python-yaml
  • python-dateutil
  • python-mako
  • python-lxml
  • python-feedparser
  • ledger
  • mutt

Wie installiere ich die Pakete?

Gebt auf der Konsole folgende Zeile ein – auch wenn hier ein Zeilenumbruch angezeigt wird, es ist eine einzige Zeile!:

sudo apt-get install git python python-yaml python-dateutil python-mako python-lxml python-feedparser ledger mutt

Es werden die benötigten Pakete herunter geladen und installiert. Wenn eines der Pakete schon vorhanden ist, dann wird dieses automatisch übersprungen.

Woher bekomme ich das Iron Blogger Skript?

Wechselt auf der Konsole in das Verzeichnis, in dem ihr das Iron Blogger Skript später haben wollt, und führt folgende Zeile aus:

git clone https://github.com/chaosblog/iron-blogger.git

Es wird automatisch ein Verzeichnis „iron-blogger“ angelegt, dieses beinhaltet das Skript.

Was muss ich bei meinem Blog vorbereiten?

Erstellt eine neue Seite (kein Artikel) für die Teilnehmerliste. Verpasst der Seite eine Überschrift nach belieben.

Macht euch keine Mühe Text auf die Seite zu schreiben – jeglicher Inhalt der Seite wird bei einer Generierung der Teilnehmerliste überschrieben.

Navigiert in eurem WordPress-Admininterface zu „Seiten“, in der Auflistung der vorhanden Seite taucht die gerade erzeugte Teilnehmerliste auf. Fahrt mit der Maus über den Link und merkt euch die ID-Nummer der Seite, diese wird später gebraucht.

Wenn der Link zur Seite beispielsweise https://chaosblog.wordpress.com/wp-admin/post.php?post=2&action=edit lautet, dann wäre die ID die ihr euch merken müsst die 2.

Was muss ich anpassen?

Aktuell gibt es noch keine zentrale Konfigurationsdatei, dies werde ich bei Gelegenheit noch ändern. Sobald das geschehen ist, werde ich die Änderungen wieder zu Github hochladen.

  1. render.py
    In der Datei render.py muss der Start eures Iron Blogger Events angepasst werden. Dies ist in Zeile 13 definiert:START = datetime.datetime(2011, 12, 25, 2)Das Datumsformat ist wie folgt: yyyy, mm, dd, h
    Das Jahr (vierstellig), der Monat (zweistellig), der Tag (zweistellig), die Stunde (im 24-Stundenformat).
  2. update-participants.py
    In der Datei update-participants.py müssen die Zeilen 10-13 angepasst werden.XMLRPC_ENDPOINT = 'http://blog-URL.tld/xmlrpc.php'
    USER = 'username'
    BLOG_ID = 0
    PAGE_ID = 12
    Der XMLRPC_ENDPOINT ist die URL eures Blogs gefolgt von „/xmlrpc.php“ (ohne Anführungszeichen).
    Wenn eure Blog-URL z.B. https://chaosblog.wordpress.com heißt, dann wäre der einzutragende Wert https://chaosblog.wordpress.com/xmlrpc.php
    USER ist euer Nutzername, den ihr beim Login eures Blogs nutzt.
    Die BLOG_ID dürfte in den meisten Fällen 0 sein, in Ausnahmefällen muss dies geändert werden.
    PAGE_ID ist die ID der Teilnehmerseite, die wir uns vorhin gemerkt haben.
  3. weekly-update.py
    In der Datei weekly-update.py müssen analog zur Datei update-participants.py die Zeilen 11-13 angepasst. werden.XMLRPC_ENDPOINT = 'http://blog-URL.tld/xmlrpc.php'
    USER = 'username'
    BLOG_ID = 0
    Diesmal muss allerdings keine PAGE_ID angegeben werden, da die wöchentlich geposteten Beiträge Artikel und keine Seiten sind.
  4. bloggers.yml
    Die Datei bloggers.yml enthält die Blogger die an eurer Iron Blogger Aktion teilnehmen.username:
    links:
    - [Blogname 01,'http://blog-URL.tld/']
    - [Blogname 02,'http://blog-URL02.tld/']
    name: Jon Doe
    start: YYYY/MM/DD
    Der username entspricht dem Nick des Bloggers auf Twitter. Solltet ihr auch Blogger ohne Twitteraccount haben, so schreibt hier einen Nutzernamen hin, den ihr euch ausdenkt – allerdings müsst ihr dann auch die Templates anpassen, die die Auswertung und die Teilnehmerliste generieren – hier wird basierend auf dem Usernamen ein Link zu Twitter generiert.
    Im Abschnitt links tragt ihr den oder die Blogs ein, die ein einzelner Blogger betreibt. Hier werden nur ein Name und ein Link eingetragen – eine Feed-URL wird später automatisch ermittelt und eingetragen.
    Das Feld name erhält den Klarnamen, bzw. dass was als Klarname angezeigt werden soll.
    Damit auch nach dem Start der Aktion neue Teilnehmer hinzustoßen können, gibt es das Feld start. Dort wird eingetragen, ab wann ein Nutzer in die Wertung einfließt.
    Achtung:Wenn ihr einen Wert in der Vergangenheit eintragt, heißt es nicht, dass für den User auch rückwirkend die Gebühren berechnet werden!Zum besseren Verständnis hier ein Beispiel:chaosblog:
    links:
    - [Chaosblog, 'https://chaosblog.wordpress.com/']
    name: Marcus S.
    start: 2012/01/01
  5. email.txt
    Nun eine kleine Änderung. In der Datei email.txt müsst ihr in Zeile 3 die Zeichenkette „addyourmail@here“ durch eure E-Mail-Adresse ersetzen.

Wie führe ich das Skript aus?

In Wirklichkeit ist es nicht ein einzelnes Skript, sondern mehrere Skripte, die zusammenarbeiten. Daher gibt es eine bestimmte Reihenfolge, die ihr einhalten müsst.

  1. Tragt alle Teilnehmer wie oben beschrieben in die Datei bloggers.yml ein.
  2. Führt das Skript import-feeds.py durch Eingabe von
    ./import-feeds.py
    aus. Die Datei bloggers.yml wird gelesen und zu allen Blog die noch keine Feed-URL eingetragen haben, wird die Feed-URL erzeugt.
  3. Nun könnt ihr die Teilnehmerliste auf eurem Blog aktualisieren lassen. Dies geschieht wieder auf der Konsole, diesmal ist der Befehl:
    ./update-participants.py
    Ihr werdet nun aufgefordert, euer Passwort einzugeben – dies ist das Passwort mit dem ihr euch auch im WordPress einloggt.
    Nach einigen Sekunden erscheint wieder der Eingabeprompt und die Teilnehmerliste eures Blogs wurde aktualisiert.
  4. Die Ermittlung der neuen Beiträge der einzelnen Teilnehmer übernimmt scan-feeds.py. Dieses Skript lädt nacheinander alle Feeds der Blogs und speichert die Titel und die Adressen der neuen Beiträge. Dies geschieht via:
    ./scan-feeds.py
  5. Nun könnt ihr einen Probelauf des Auswertungsskripts weekly-update.py starten. Der Parameter -n sorgt für einen Probelauf – es wird keine Mail verschickt und kein Blogartikel erzeugt. Allerdings wird der Text, der Mail, die generiert wird, auf der Konsole ausgegeben. Als zweiten Parameter beim Probelauf erwartet das Skript ein Datum im Format YYYY-MM-DD (z.B. 2012-01-19)
    ./weekly-update.py -n 2012-01-19
    Das Datum definiert die Woche für die die Auswertung erzeugt wird. Basierend auf dem Parameter und dem weiter oben konfigurierten Start-Datum wird die Woche berechnet. Für das Skript muss eine Woche nicht zwingend mit Sonntag oder Montag beginnen.
  6. Jetzt wird es ernst. Wir lassen nun den Blogbeitrag mit der Auswertung und die E-Mail dazu erzeugen. Wieder wird das Skript weekly-update.py ausgeführt, diesmal wird allerdings nur ein Parameter, das Datum, übergeben.
    ./weekly-update.py -n 2012-01-15
    Wie bei der Aktualisierung der Teilnehmerliste werdet ihr auch hier nach eurem WordPress-Passwort gefragt.
    Nach einigen Sekunden ist der Blogpost erstellt und ihr solltet eine neue E-Mail in eurem Postfach vorfinden.

Fertig. War doch gar nicht schwer, oder? 😉

Was jetzt noch fehlt, ist eine zentrale Konfigurationsdatei, in der man alle nötigen Änderungen zentral vornehmen kann.
Des Weiteren sollte es noch möglich sein, das WordPress-Passwort zu hinterlegen, damit das Skript auch voll automatisiert ausgeführt werden kann.
Eine Verbesserung wäre auch das Auswertungsskript quasi „lautlos“ laufen zu lassen – es wird keine Mail verschickt und kein Blogpost erstellt – aber die Finanzen werden aktualisiert. Damit könnte man das Skript auch ohne Weiteres bei bestehenden Iron Blogger Projekten einsetzen.

Beides werde ich im Laufe der Zeit noch implementieren und auf Github hochladen.

Noch ein Tipp: Legt euch bei WordPress.com einfach einen neuen bzw. einen weiteren Blog an, den ihr auf privat schaltet. Diesen könnt ihr dann als Spielwiese nutzen.