Archiv der Kategorie: Informatik

Klein aber fein – der MiniGameJam in Dortmund

Am 10.06.2017 fand der erste Game Jam in Dortmund statt – noch ein wenig zaghaft als Mini Game Jam tituliert. An einem sonnigen Samstag fanden sich ca. 20 interessierte Entitäten im Dortmunder Künstlerhaus direkt hinter dem Hauptbahnhof ein, um in nur acht Stunden ein vollständiges Spiel zu programmieren. Nach einer kurzen Kennenlernrunde haben sie Teams gebildet und konnten ein Thema aus den Vorschlägen „Familie“, „Grenzen überwinden“, „old school“ und „Zwei Buttons“ auswählen.

Ich selbst bildete mit Reinhard und Miriam ein Team, das mit keiner konkreten Idee für ein Spiel, aber für dessen Ausgabemedium startete.

Wir wollten ein Oszilloskop als Bildschirm verwenden. Normalerweise werden diese Geräte benutzt, um Wechselspannungen in Kurven zu visualisieren. Wenn man den Elektronenstrahl jedoch geschickt umlenkt und als analoges Signal auf zwei Eingangskanäle sendet, kann im XY-Betrieb faktisch Beliebiges auf dem Geräte dargestellt werden – soweit zumindest die Theorie. Wir haben einen Digtial-Analog-Wandler aus Widerständen erstellt und mit einem RaspberryPi angesteuert. Damit waren wir in der Lage, eine bescheidene Auflösung von 32×64 Bildpunkten auf dem Gerät darzustellen. Bei höheren Auflösungen flackerte das Bild aus Gründen, die wir in der kurzen Zeit nicht ergründen konnten wollten.

Nach ca. drei Stunden konnten wir beliebige Punkte auf dem Gerät positionieren und uns (endlich) um eine Spielidee kümmern. Wenig kreativ und motiviert durch die technischen Einschränkungen entschieden wir uns für eine Abwandlung des bekannten Spiels „flappy bird“, in dem ein Vogel zwischen Röhren hindurch manövriert werden muss. Gesteuert wird der Vogel mit nur einem Taster: beim Drücken fliegt der Vogel hinauf, lässt man den Button wieder los, sinkt er wieder. Diese Steuerung haben wir über eine kleine Platine mit zwei Tastern realisiert – der zweite Taster konnte das Spiel nach einem Game Over neu starten.

Da noch etwas Zeit übrig war, konnten wir uns Gedanken über eine Audioausgabe machen. Diese erfolgte über zwei kleine „Lautsprecher“, die wir ebenfalls über den Raspberry Pi angesteuert haben.

Das Projekt ist inklusive des Quelltextes bei github unter dem Namen osziflap abrufbar.

Am 7.10.2017 geht es (vielleicht?) weiter mit dem nächsten Game Jam – vielleicht nicht mehr Mini, vielleicht wieder in Dortmund, gewiss aber wieder mit mir.

 

FizzBuzz Katas – Programmierübungen für das FizzBuzz-Problem

(Das Video bei archive.org.)

Bei dem FizzBuzz-Spiel werden die Zahlen von 1 bis 100 durchlaufen. Nun können folgende Fälle eintreten:

  • Wenn die Zahl durch 3 teilbar ist, wird „Fizz“ ausgegeben
  • wenn sie durch 5 teilbar ist, wird „Buzz“ ausgegeben und
  • wenn sie durch 3 und 5 teilbar ist, wird „FizzBuzz“ ausgegeben.
  • Tritt keiner dieser Fälle ein, wird die Zahl ausgegeben.

Viele Lösungen gibt es auf meiner Webseite.

Tschüss Suse, Hallo Mint

Nach mehreren Jahren steht wieder mal ein Wechsel an. Bisher hatte ich immer gut mit OpenSuse gelebt, habe im Alltag jedoch viel mit Debian-basierten Systemen zu tun. Also habe ich eine neue Platte in den Rechner gesteckt und darauf ein Linux-Mint installiert. Die bisherige Suse wird als externes Laufwerk eingebunden und die Daten darauf weiter genutzt. Der Wechsel verlief erstaunlich problemlos. Nach der Installation der wichtigsten Programme musste ich ein paar Pfade hier und da anpassen und kann nun weiterarbeiten wie gewohnt. Die alte Suse kann ich auch noch starten, weil Mint die Installation erkannt und im Boot-Manager berücksichtigt hat. Ein altes Windows 7 liegt auf einer weiteren Platte und wurde ebenfalls erkannt.

Computer sind spannend, Technik macht Spaß – bis man ein Schulfach daraus macht

Motivation

Computer sind spannend, Technik macht Spaß.“

So denken viele Schülerinnen und Schüler, wenn sie die Ausbildung zum Informationstechnischen Assistenten (ITA) beginnen. Den Computer kennen sie von zu Hause und unterwegs – man verbindet viele schöne Stunden mit ihm.

Computer sind spannend, Technik macht Spaß“ – bis man ein Schulfach daraus macht.

Ernüchterung tritt ein, wenn man nach den ersten Monaten der Ausbildung feststellt, dass neben dem Spaß auch viel Theorie und abstraktes Denkvermögen nötig sind, um die Ausbildung zum ITA zu bestehen. Schnell verbreiten sich Frust und Unlust unter den Schülern.

Diese traurige Feststellung machten nicht nur die Schüler, sondern auch wir als Lehrer. Wir wollten gegensteuern, um den Spaß und die Neugier zurück in den Schulalltag zu holen.

Hinzu kommt, dass die Schülerinnen und Schüler ihre Ausbildung in Vollzeit und ohne betrieblichen Hintergrund absolvieren, welcher sich deutlich vom schulischen Alltag unterscheidet:

  1. Angestellte lösen ein relevantes Problem.

  2. Sie haben Kernarbeitszeiten innerhalb derer sie ihre Pausen frei einteilen.

  3. Sie arbeiten über mehrere Stunden an einer Aufgabe und sind keinem Stundenraster unterworfen, das Kontextwechsel erzwingt, wie er beim Übergang zwischen Schulstunden entsteht.

All dies hat uns bewogen, die bisher nicht ausreichend von der schulischen Ausbildung abgedeckten inhaltlichen Aspekte in den Schulalltag zu integrieren und die Freude am Umgang mit Technik wiederzubeleben.

Hierbei ist der Projekttag entstanden.

projekttag-diagramm

Teamarbeit

Der Projekttag wird auf Schüler- und Lehrerseite als Teamarbeit gelebt und durchgeführt. Mehrere Lehrerkräfte mit unterschiedlichen fachlichen Schwerpunkten betreuen und unterstützen die Auszubildenden während ihrer Arbeit. Dabei decken wir derzeit die Kerngebiete Programmieren, Datenbanken, Betriebssysteme, Netzwerke und Elektrotechnik mit drei Lehrkräften ab.

Aufbau und Ablauf

Ein Projekttag ist ein fester Tag im Stundenplan der Schülerinnen und Schüler, der ca. 5 Zeitstunden umfasst, die nicht von anderen Fächern unterbrochen werden. Die Schülerinnen und Schüler können sich selbst ihre Arbeits- und Pausenzeiten einteilen – es gibt kein festes Pausenraster. Hierdurch können die Arbeitsphasen ausgedehnt werden und die Auszubildenden erhalten die Möglichkeit, sich vertiefend oder wiederholend mit Inhalten auseinanderzusetzen, die ihren Vorlieben, Neigungen und Bedürfnissen entsprechen.

Die Ergebnisse und Leistungen werden nicht benotet. Arbeitsergebnisse können jedoch in anderen Fächern durch Workshops oder Referate „zweit verwertet“ werden. Zudem werden die Projekte am Ende eines Schuljahres auf einem Zertifikat als Nachweis ausgewiesen, welches sie einer Bewerbung beifügen können. Eine Messe am Schuljahresende bietet eine weitere Möglichkeit, die Ergebnisse zu präsentieren.

Informationen zu Beginn

Zu Beginn eines Schuljahres werden die Schülerinnen und Schüler in einer Kick-Off-Veranstaltung informiert. Hier werden die Rahmenbedingungen erläutert sowie Möglichkeiten und Pflichten dargestellt. Zudem können Unklarheiten beseitigt und Fragen beantwortet werden. Ein wichtiges Ziel dieser Veranstaltung ist, ein gegenseitiges Vertrauensverhältnis zu konsolidieren und an die Reife der Auszubildenden zu appellieren.

Im weiteren Verlauf beginnt jeder Projekttag einmal pro Woche mit einer kurzen Informationsphase. Die Schülerinnen und Schüler kommen mit den Fachlehrern zusammen, um organisatorische oder inhaltliche Aspekte zu besprechen. Es können aktuelle Veranstaltungen oder interessante Projekte in den Fokus genommen werden.

Anschließend gehen alle selbständig in die Projektarbeit.

Die Schülerinnen und Schüler wählen ein Projekt aus einem Archiv aus oder überlegen und formulieren eigene Ideen. Insbesondere der letzte Punkt überrascht uns immer wieder. Bei der Formulierung eigener Ideen sind wir immer erstaunt, ob der kreativen und spannenden Ideen, die die Schülerinnen und Schüler entwickeln. Sei es ein selbst gebauter fahrender Roboter, eine Retro-Spielekonsole oder ein DVBT-Stick zur Ortung von Flugzeugen.

Für uns als Lehrkräfte ist es wichtig, dass das gewählte Projekt Neues vermittelt, Bestehendes festigt oder Altes wiederholt. Ferner sollen eine fachliche Tiefe und ein praktischer Bezug erkennbar sein.

Wiki

In einer Wiki-Installation werden die Beschreibungen der Projekte inklusive einer Aufwands- und Schwierigkeitsabschätzung hinterlegt. Die Fachlehrer können dort ihre Projekte vorstellen, ablegen und mit anderen Projekten verzahnen. Zudem findet dort auch die Organisation einer Abschlussmesse statt. Es ist öffentlich einsehbar.

Räumliche Entfaltung

Neben zeitlichen und inhaltlichen Aspekten haben wir auch die räumliche Situation berücksichtigt und Räume mit unterschiedlichen Anforderungen eingeplant. Es gibt einem vernetzten Computerraum für Programmier- und Netzwerkprojekte, einen Werkstattraum für praktische und elektrotechnische Arbeiten und einen ruhigen Arbeitsraum für konzentriertes Arbeiten. Der Flur vor den Räumen wird bei Projekten genutzt, die mehr Platz benötigen (wie ein selbst-fahrender Roboter) oder, bei denen es lauter werden kann (Starten eines Servers, Saugen eines Computers).

Keine Noten – keine Angst

Die Schülerinnen und Schüler erhalten für ihre Projektarbeit bewusst keine Zeugnisnoten. Die Arbeitsatmosphäre ist dadurch von der Entdeckungslust und Experimentierfreude bestimmt. Eine Rückmeldung erhalten sie dennoch durch Gespräche und eine Messe am Ende des Schuljahres.

Anwesenheitsliste – ein Eigengewächs

Die Pausenzeiten werden während der Projektphase von den Auszubildenden selbständig organisiert. Einige der Auszubildenden sind so sehr in die Arbeit vertieft, dass sie gar keine Pausen machen. Die Stundenklingel hat für uns daher eine geringe Bedeutung.

Die Schülerinnen und Schüler halten Pausengänge in einer Anwesenheitsliste fest. Diese Liste wurde sogar selbst Bestandteil verschiedener Projekte.

Zunächst wurde sie mit Papier und Stift geführt. Ein umständliches Unding für einen technikbegeisterten Schüler. Kurzerhand entschloss er sich, eine Desktop-Anwendung zu entwickeln, in der die Zeiten auf einem zentralen Rechner eingetragen werden konnten – ganz ohne Stift. Die nächste Generation der Software entstand ein Jahr später. Nun fußte sie auf einer Webanwendung, die auf einem Raspberry Pi läuft, auf den alle aus dem Raumnetz zugreifen können – mit detaillierten Statistiken und einer Backupfunktion. Durch die Statistikfunktion entwickelte sich schnell eine Diskussion um das Thema Datenschutz, der gewahrt bleiben musste.

Dieses Beispiel zeigt gut, wie aus eigenen Problemlagen heraus kreative Lösungen geplant und umgesetzt wurden, die nicht von uns Fachlehrern motiviert waren. Dies evozierte eine starke intrinsische Motivation sowie Verbundenheit mit der eigenen Arbeit und führte zu großem Stolz gegenüber dem eigenen Werk.

Die ITA-Messe

2015_ita-messe

Die Projektergebnisse werden einmal im Jahr auf einer schulinternen Messe vorgestellt. Hierbei planen die Auszubildenden selbständig die Lage der Stände, den zeitlichen Ablauf, erstellen einen Flyer für die Besucher und machen Fotos während der Veranstaltung. Die Messe bildet den Höhepunkt und Abschluss für die erstellten Projekte.

Als Gäste werden die Schülerinnen und Schüler der Eingangsklassen und andere Fachlehrer eingeladen. Gerade für die Eingangsklassen zeigen die Projektergebnisse eine Perspektive ihrer Ausbildung, mit der Konsequenz, dass sich viele Schüler auf den Projekttag freuen.

Reflexion

Bisher funktioniert unser Projekttag auf vielen Ebenen sehr gut. Wir wollen ihn aber stetig verbessern. Daher bitten wir am Ende eines Schuljahres alle um eine Rückmeldung. Wir wollen Schwachstellen und blinde Flecke aufdecken und das Potenzial für die kontinuierliche Fortentwicklung der Veranstaltung aufzeigen.

Die Reflexion fand im ersten Jahr mit einem Papier-Fragebogen statt. Er wurde mittlerweile durch eine Online-Befragung ersetzt, die eine direkte Auswertung in derselben Stunde in einem geführten Klassengespräch ermöglicht.

Die Veranstaltungen der letzten Jahre wurden von den Schülerinnen und Schülern auf der fachlichen, sozialen und emotionalen Ebene überwiegend positiv beurteilt. Die Ergebnisse sind auch in unserem Wiki veröffentlicht.

Zusätzlich gibt es ein Treffen aller beteiligten Fachlehrer, in dem das aktuelle Jahr reflektiert und das nächste Jahr geplant wird.

Fazit

Immer mehr Hackerspaces sprießen aus dem Boden, Repair-Cafes entstehen und der Bastelcomputer Raspberry Pi wird zur erfolgreichsten prototypischen Experimentierplattform. All dies zeigt, dass es ein großes technisches Interesse bei Jugendlichen an Technik-Themen gibt. Allein die Umsetzung im Schulalltag führt häufig zu falschen Motivationslagen und Frustration. Mit dem Projekttag versuchen wir eine Gratwanderung zwischen Anspruch, Spaß, Freiheit, Kreativität und Selbstbestimmung.

Computer sind spannend, Technik macht Spaß“

Wenn man den Leistungsdruck herausnimmt und die Schülerinnen und Schüler eigene Wege gehen lässt, entstehen erstaunliche Ergebnisse und der Satz stimmt wieder – selbst in der Schule.


Dieser Artikel erschien zuerst in der Juniausgabe 2016 der Zeitschrift bbw – Beruflicher Bildungsweg.

Micropython auf einem ESP8266

esp8266

Hinter Micropython verbirgt sich eine Variante von Python, die auf Mikrocontroller zugeschnitten ist. Der ESP8266 ist ein recht günstiger (~4$) Baustein mit WLAN-Funktionen, für den jetzt eine Micropython-Firmware erschienen ist. Über das Development-Kit, das auf dem Bild zu sehen ist, verfügt der Baustein über einen USB-Anschluss, über den man mit dem Chip kommunizieren kann. Die PINs sind herausgeführt und lassen sich in Schaltungen verwenden.

Nun soll die Firmware für Micropython installiert werden. Diese lässt sich von der Webseite herunterladen. Für die Installation gibt es das Tool esptool.py, das sich ebenso einfach installieren lässt.

$ sudo pip2 install esptool

Leider funktioniert esptool derzeit nur mit Python2.

Anschließend kann die vorhandene Firmware auf den ESP8266 zunächst gelöscht und mit dem zweiten Befehl die neue Firmware übertragen werden.

$ esptool.py --port /dev/ttyUSB0 erase_flash
$ esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_size=8m 0 esp8266-20160825-v1.8.3-49-ga589fa3.bin

Bei mir kam es bei Geschwindigkeiten über 115200 Baud zu Probleme, weshalb ich die Geschwindigkeit reduziert habe. Die Befehle habe ich der Anleitung von mircopython entnommen.

Nun kann mit einem Terminalprogramm auf den Microcontroller zugegriffen werden. Das geht mit Putty, minicom oder auch miniterm.py.

$ miniterm.py /dev/ttyUSB0 115200

Sollte miniterm.py noch nicht installiert sein, so kann es mit „pip install pyserial“ nachinstalliert werden.

Im Anschluss erhält man eine Python-Konsole, die man für eigene Projekte verwenden kann. Beim Start steht der ESP als Access Point zur Verfügung, auf den sich Clients mit dem Standardpasswort ‚micropythoN‘ verbinden können. Für den Dateitransfer kann dann das Kommandozeilentool webrepl_cli.py verwendet werden.

Anlagen

Eine öffentliche und verteilte Bibliothek

book_2Der Vortrag Public Library/Memory of the World – Access to knowledge for every member of society, der Ende letzten Jahres auf dem 32C3 gehalten wurde, lenkte mein Interesse auf das Bibliotheksverwaltungsprogramm Calibre. Dieses Programm erlaubt die Verwaltung von Ebooks und auch physischen Büchern über eine einfache Oberfläche. Zudem kann es als Server genutzt werden und die eigene Bibliothek veröffentlichen. In dem Blogpost End-to-end catalog wird eine Vision entworfen, die eine verteilte Bibliothek beschreibt, in der jeder Nutzer zum Bibliothekar und die eigenen Wissens- bzw. Buchsammlung zum Bestandteil eines verteilten und vernetzen Archivs wird.

Ein zentraler Bestandteil dieser Vision ist das Plugin bzw. Skript [let’s share books], welches die Veröffentlichung der eigenen Buchsammlung ermöglicht. Auch, wenn man die eigene Sammlung nicht veröffentlichen möchte, hilft das Programm bei der Erfassung des eigenen Bestandes weiter.

Das Usenet, NNTP-Server und Kommunikationsprotokolle

Das Usenet ist eine alte doch immer noch interessante und lebendige Institution des Internet – aus technischer, kultureller und auch historischer Sicht. Ich möchte mit euch eintauchen in diese Welt und sie als Nutzer und technisch Interessierter erkunden.

ic_chat_black_48dpMeine digitale Emanzipation schreitet voran: Nachdem ich meinen Server in die heimischen vier Wände geholt und einen eigenen Jabber-Server aufgesetzt habe, soll nun ein Newsserver als neues Projekt das heimische Netzwerk erweitern. Doch zunächst ein paar erklärende Worte.

Usenet: Was es ist und wie man es bedient

Das Usenet ist die große alte Dame des Internet. Sie – also es – wurde 1979 geboren und ist damit älter als das World Wide Web – also die bunte Welt, die man durch das Browserfenster betrachtet. Da das Usenet älter als das WWW ist, benötigt man ein eigenes Programm um darauf zugreifen zu können: einen Newsreader. Damals wie heute wird das Usenet mit seinen zahlreichen Diskussionsgruppen für den Wissensaustausch genutzt und für den Dateiaustausch missbraucht. Es ist der Geburtsort der Merkbefreiung und Wirkenskreis von Hürbine von Pleuselspink.

Die Nutzerzahl ist seit dem Aufkommen sozialer Netzwerke wie Facebook und Webforen rückläufig. Aber das muss nichts über die Qualität der Inhalte aussagen. Vielfach findet man dort technisch versierte und inhaltlich kompetente Nutzer, die ausführlich und mit viel Erfahrung antworten. Außerdem kann es mit vielen unterschiedlichen Clients benutzt werden, was die Möglichkeiten von Filterung, Darstellung und Bedienung deutlich erweitert. Ein Beispiel für die Qualität ist die intensive Diskussion um das Rätsel „Prinzessin im See“ in der Gruppe de.rec.denksport. Ich habe in den letzten Tagen ca. 100 Beiträge pro Tag in den von mir abonnierten Gruppen erhalten und denke, dass dies ausreichend für eine lebendige Gruppenstruktur ist. Das Usenet ist also nicht tot, es hat sich nach einem Hype am Ende der 90er Jahre in einem stabilen Nutzungsverhalten eingependelt.

Ein detaillierte Darstellung des Usenet gibt das schon ältere, dafür kostenlos erhältliche Buch Newsgroups – weltweit diskutieren, das viele verschiedene Aspekte beschreibt: die Technik, Kommunikationsmodelle sowie gesellschaftliche und historische Dimensionen. Das Archiv der Beiträge seit Beginn der 80er Jahre kann z.B. mit der Suchmaschine The Usenet Archive oder Google Groups durchsucht werden.

Der deutsche Teil des Usenet organisiert sich in den de.*-Gruppen. Gruppen in dieser Hierarchie werden von der dana (de.admin.news.announce) koordiniert: also angelegt, gelöscht, zusammengefasst oder aufgesplittet.

Neugierig geworden? Es ist erstaunlich einfach, einen Account bei einem Newsserver zu bekommen, der Usenet-Nachrichten verteilt. Das Open News Network hat sich vorgenommen, freie Zugänge für Text-Gruppen bereit zu stellen. Ich habe mir einen kostenlosen Account beim schweizerischen Anbieter albsani.net erstellt. Daneben gibt es noch individual.de. Dies ist ein Anbieter der Freien Universität Berlin. Er möchte 10 € pro Jahr für seine Dienste haben und gilt als Urgestein der Usenetszene.

Nun benötige ich noch ein Programm, um auf die Gruppen zugreifen zu können. Gott sei dank werden viele E-Mail-Programme heutzutage schon mit einer Unterstützung für Newsgroups ab Werk ausgeliefert. So auch Thunderbird (eine Anleitung ist hier und hier) und Windows Mail. Viele weitere Anleitungen für unterschiedliche Betriebssysteme und Programme gibt es bei individual.de. Für Android hat mir das Programm Usenet Newsreader gut gefallen.

Nach der Einrichtung kann man eine umfangreiche Gruppenliste (über 25.000 Gruppen!) herunterladen und ein wenig darin stöbern. Mir haben die Gruppen unter de.* und ger.* auf den ersten Blick ganz gut gefallen. Du musst aber selbst ein wenig suchen und nach deinen eigenen Interessen schauen.

Eigener Server

Aber die reine Verwendung eines Newsservers hat mir natürlich nicht gereicht. Schließlich möchte ich meine Infrastruktur selbst gestalten und aufbauen. Also musste ein eigener Newsserver her. Hier ist INN der de-facto Standard – in Version 2 heißt das Paket auch häufig inn2 in den Distributionen. Die Freifunker haben eine schöne Anleitung für die Einrichtung geschrieben. Dass die Konfiguration so ihre Tücken aufweist zeigt ein Beitrag aus dem FreeBSD-Diary. Er stellt die üblichen Stolperstellen vor und gibt Hinweise darauf, wie man sie umgehen kann.

Es geht aber auch einfacher – und zwar mit dem Server WendzelNNTPd. Der Server lässt sich einfach installieren und hat wenig Ansprüche. Außerdem reagierte der Autor Steffen Wendzel bei meinen Recherche extrem schnell auf Anfragen und Probleme. Innerhalb von Stunden war mir geholfen. Eine Installationsanleitung hat Steffen Wendzel selbst in dem Kapitel zu NNTP-Servern des Buches „Linux – das umfassende Handbuch“ (Rheinwerk Verlag) geschrieben.

Das Programm wird nicht als Paket ausgeliefert, sondern muss mit einem C-Compiler kompiliert werden. Das ist einfacher als es sich anhört, da vieles automatisch abläuft. Zunächst laden wir den Quelltext aus dem git-repo  herunter und entpacken das Archiv.

Es werden noch ein paar Bibliotheken benötigt, die wir leicht installieren können.

$ sudo apt-get install gcc flex bison libsqlite3-dev make

Als Backend für die Daten kommen eine SQLite- oder MySQL-Datenbank in Frage. Die Nachrichten selbst werden als Textdateien abgespeichert. In der Datenbank werden nur Zugangsdaten sowie die Verlinkungsstruktur der Nachrichten untereinander und die Zuordnung zu den Diskussionsgruppen realisiert. Ich entscheide mich für eine leichtgewichtige Variante mit SQLite und werfe das Konfigurationsskript an.

$ MYSQL=NO ./configure

Sollten nun immer noch Bibliotheken fehlen, meldet sich das Skript und sagt genau, was es noch benötigt. Danach kann ich die Software kompilieren und nach /usr/local installieren lassen.

$ make
$ sudo make install

Im Sourcenpaket ist noch ein init-skript, das ich an die richtige Stelle kopiere.

$ sudo cp ~/src/WendzelNNTPd-2.0.5/WendzelNNTPd-OSE/scripts/startup/init.d_script /etc/init.d/wendzelnntpd

Nun kann ich den Dämon ein erstes mal starten.

$ sudo /etc/init.d/wendzelnntpd start

Damit der Dienst auch nach einem Reboot läuft, starte ich ihn für runlevel 2. Dazu lege ich einen symbolischen Link auf das Init-Skript an.

/etc/rc2.d$ ln -s ../init.d/wendzelnntpd S92wendzelnttpd

Damit der Dienst auch bei einem Shutdown (runlevel 0) und einem reboot (runlevel 6) sorgfältig heruntergefahren wird, sorge ich für Links an den korrekten Stellen in den rc-Verzeichnissen.

/etc/rc0.d$ sudo ln -s ../init.d/wendzelnntpd K20wendzelnntpd
/etc/rc6.d$ sudo ln -s ../init.d/wendzelnntpd K20wendzelnntpd

Nun können wir die Konfigurationsdatei in /usr/local/etc/wendzelnntpd.conf anpassen. Wir müssen zunächst mit listen dafür sorgen, dass der Newsserver von außen erreichbar ist. Damit er nicht sofort Ziel von ungebetenen Nutzern wird, aktiviere ich zudem die Benutzerauthentifikation.

listen 192.168.178.60
use-authentication

Wir starten den Dämon nach unseren Änderungen neu.

$ sudo /etc/init.d/wendzelnntpd restart

Nun können wir einen ersten Nutzer und eine erste Gruppe anlegen. Hierbei hilft das Administrationstool wendzelnntpadm weiter.

$ sudo wendzelnntpadm adduser marco PASSWORT
$ sudo wendzelnntpadm addgroup de.bakera.test y

Das ‚y‘ hinter der Gruppe besagt, dass in diese Gruppe geschrieben werden darf. Da schon zu Beginn ein paar Gruppen vorhanden sind, lösche ich diese noch.

$ sudo wendzelnntpadm delgroup alt.wendzelnntpd.test

Damit der Server auch hinter meiner Fritz-Box erreichbar ist, habe ich im DNS noch den Eintrag news.bakera.de ergänzt und eine Portweiterleitung auf Port 119 im Router eingerichtet. Nun kann einer Nutzung des Servers nichts mehr im Wege stehen.

Die Nachrichten werden im Verzeichnis /var/spool/news/wendzelnntpd abgelegt. Für jede Nachricht existiert dort eine Datei mit einer eindeutigen Message-ID. Weitere Informationen über den Ort der Nachricht oder deren Headerdaten  werden bei einer sqlite-Installation in der Datei usenet.db abgelegt. Die Tabelle kann man sich mit einem sqlite-Client leicht anschauen. Man entdeckt folgende Tabellen mit den entsprechenden Attributen.

newsgroups (id, name, pflag, high)
ngposts (msgid, ng, postnum)              PRIMARY KEY(msgid, ng)
postings (msgid, date, author, newsgroups, subject, lines, header)
users (name, password)
roles (role)
users2roles (username, role) PRIMARY KEY(username, role)
acl_users (username, ng)                 PRIMARY KEY(username, ng)
acl_roles (role, ng)                     PRIMARY KEY(role, ng)

Kommunikationsprotokoll

Da das Protokoll NTTP, das der Newsserver spricht, sehr einfach aufgebaut ist, können wir sogar direkt über Telnet mit dem Server kommunizieren. Unten sehen wir eine Beispielsitzung. Meine eigenen Eingaben habe ich fett hervorgehoben. Der Rest sind Antworten des Servers. Eine ausführliche Kommunikation findet ihr auch auf Seite 95 des oben erwähnten Usenet-Buches.

telnet news.bakera.de 119
Trying 79.226.231.205...
Connected to news.bakera.de.
Escape character is '^]'.
200 WendzelNNTPd-OSE (Open Source Edition) 2.0.5 'Auckland' - (Sep 26 2015 06:42:09 #2517) ready (posting ok).
AUTHINFO USER marco
381 More authentication information required.
AUTHINFO PASS *****
281 Authentication accepted.
HELP
100 help text follows
--
 article [number|<message-id>]
 authinfo <user|pass> <username|password>
 body [number|<message-id>]
 date
 group <group>
 head [number|<message-id>]
 help
 list [overview.fmt|newsgroups [wildmat*]]
 listgroup [group]
 mode reader (always returns 200)
 post
 quit
 stat [number|<message-id>]
 xhdr <from|date|newsgroups|subject|lines> <number[-[endnum]]|msgid>
 xover <from[-[to]]>
 xgtitle [wildmat*] (equals LIST NEWSGROUPS but return code differs)
--
Send questions and problems to <swendzel [at] ploetner-it [dot] de>
Website: http://www.wendzel.de/software/wendzelnntpd.html
Notes:
* Wildmat format is based on the used regex library and is not 100%
 wildmat format compatible (XGTITLE *x -> XGTITLE .*x)!
.
DATE
111 20150927185030 
LIST 
215 list of newsgroups follows 
de.bakera.test 2 1 y 
. 
POST
340 send article to be posted. End with <CR-LF>.<CR-LF>
From: marco@bakera.de
Newsgroups: de.bakera.test
Subject: Ein Test

Ein Testartikel.
.
240 article posted
 
 

Mediawiki unter docker

Mit docker lassen sich schnell und einfach virtuelle Maschine betreiben, die Serverdienste wie ein Wiki bereitstellen. An einer Beispielinstallation eines Mediawikis zeige ich, wie das funktionieren kann.

Hier sind die im Video eingesetzten Befehle:

docker run –name=mw -i -t -p 8080:80 32bit/debian:jessie bash

apt-get update
apt-get install mediawiki
a2enconf mediawiki
cd etc/mediawiki
vi apache.conf
service apache2 reload

Auf den RaspberryPi mit der seriellen Schnittstelle verbinden

Man kann sich über die serielle Schnittstelle mit dem Raspberry Pi verbinden. Dazu nutzt man bestimmte Pins der GPIO-Schnittstelle, einen Konverter USB-nach-RS232 und drei Kabel.

Die Details erkläre ich in dem Video.

Nachtrag: Ein Arduino lässt sich auch als Wandler zwischen USB und serieller Schnittstelle verwenden. Dazu müssen GND und RST (bzw. Reset) miteinander verbunden werden. Dies deaktiviert den Chip auf dem Arduino. Nun werden TX und RX direkt an USB weitergegeben und können ebenso genutzt werden.