Skip to content

Kein Linkdump 34/2017 wegen Swiss Perl Workshop 2017 ...

perl

Für heute muss ich Euch leider enttäuschen, ich habe keinen Linkdump vorbereiten können.

Gerade jetzt bin ich in Villars-sur-Ollons und freue mich darauf, dass der Swiss Perl Workshop 2017 in einigen Stunden startet.

Lee, Roman und ich haben in den letzten Wochen und Monaten diesen Workshop vorbereitet und Sponsoren gesucht (und glücklicherweise auch gefunden). Wir freuen uns sehr, dass Damian Conway bei uns ist und einige Vorträge hält.

Die Location - Hotel du Golf - ist super und mit sehr viel Ausblick :-)

Interessanterweise bin ich das erste Mal in der Welschschweiz, obwohl ich jetzt schon fast zehn Jahre in der Eidgenossenschaft lebe.

Perl 6 rechnet anders ...

perl

Die Kommentare des Artikels Rechnen mit Python kann man vermutlich nur mit einer gehörigen Ladung Popcorn ertragen, vor allem der Teil, dass der Computer bestimmt, was mathematisch korrekt ist, hat Unterhaltungswert.

Damals habe ich schon angemerkt, dass Computer auch mit geschickteren Algorithmen rechnen könnten, um möglichst genau zu sein. Die Variante, die Perl 6 umsetzt, ist allerdings so einfach wie brillant. Werte mit Nachkommastellen werden einfach intern als Brüche (rationale Zahlen) gespeichert und so ist 90% des Rechnens einfache Bruchrechnung und damit genauer (und sogar korrekt) als das Rechnen mit Fliesskommazahlen. Allerdings ist das natürlich langsamer, daher kann man auch explizit festlegen, dass man Fliesskommaarithmetik möchte.

Das Beispiel aus dem verlinkten Artikel:

> 1100-1036.04
63.96

Gucken wir uns einmal die Datentypen an:

> say 1100.WHAT
(Int)
> say 1036.04.WHAT
(Rat)
> say (1100-1036.04).WHAT
(Rat)

Brüche haben einen Zähler und einen Nenner (Perl 6 kürzt automatisch):

> say 63.96.numerator
1599
> say 63.96.denominator
25
> say 63.96.nude
(1599 25)

Das ist alles nicht so wahnsinnig spannend. Wer allerdings programmiert, weiss, dass so etwas normalerweise als ungleich ausgegeben wird.

> my $a=1/6
0.166667
> my $b=1/3
0.333333
> if (4 * $a + $b == 1) {say "Ist gleich"} else {say "Ist ungleich"}
Ist gleich

Fliesskomma geht auch, aber hier wird für die Darstellung gerundet.

> say 1100e0-1036.04e0
63.96
> say (1100e0-1036.04e0).WHAT
(Num)

Perl 6 installieren ...

perl

Da es noch kein Release von Perl 6 gibt, ist eine Installation via GitHub mit den Skripten von Tadeusz Sośnierz die schnellste Variante.

Tadeusz schlägt vor die Installation ins Verzeichnis ~/.rakudobrew zu packen, das gefällt mir nicht so gut.

mkdir ~/workspace
cd workspace
git clone https://github.com/tadzik/rakudobrew.git rakudobrew.git
cd rakudobrew.git
export PATH=~/workspace/rakudobrew.git/bin:${PATH}

Das export PATH=... würde ich auch gleich in die ~/.bashrc packen.

Mit dem folgenden Kommando wird ein Perl 6 gebaut, das dauert ein paar Minuten funktioniert aber zuverlässig.

rakudobrew build moar

Der neue Paketmanager von Perl 6 heisst Panda, diesen würde ich im nächsten Schritt gleich mitinstallieren.

rakudobrew build-panda

Da Perl 6 einen interaktiven Interpreter enthält, der aber noch nicht in der Historie "blättern" kann, kommt noch linenoise dazu. Ich möchte Euch bitten vor dem Schritt einmal perl6 aufzurufen, um zu sehen, wie schnell der Interpreter startet.

Nach der Installation von linenoise braucht der Interpreter deutlich länger, da muss sich noch etwas tun.

panda install linenoise

Und jetzt: Viel Spass mit Perl 6.

Swiss Perl Workshop Reprise ...

perl

Zeit für eine kleine Zusammenfassung des Swiss Perl Workshops dieses Jahr.

Der Workshop ist jetzt schon über vier Wochen vorbei und er wirkt für mich immer noch nach. Ich habe viele nette Leute neu kennengelernt und alte Bekannte wieder getroffen. Interessant war es, einmal die Berühmtheiten aus der Perl-Szene zu sehen und mit Ihnen reden zu können.

Allen voran ist natürlich die "Legende" Larry Wall zu nennen - ja, es gibt ihn wirklich, aber auch die Core-Developer von Perl 6 wie Jonathan Worthington (DER Core-Entwickler und Macher von hervorragenden Tutorials), Will "Coke" Coleda (hat Larry Eure Fragen gestellt), Paul Cochrane (promovierter Physiker, Erfinder des Warp-Drives), Stefan Seifert, Vende Thiel, Sue Spence, Carl Mäsak, Elizabeth Mattijsen, Tadeusz Sośnierz (Installskript für Perl 6 aus den Quellen), Tobias Leich, Timo Paulssen, Wendy van Dijk und viele andere mehr, die man über die Suche finden kann (Suchfelder leer lassen, um alle zu finden).

Dank der vielen Sponsoren konnten wir die Reise- und Hotelkosten einiger Core-Entwickler übernehmen. DANKE!

Matthias (der leider nächstes Jahr nicht mehr dabei ist), Roman und ich haben den Workshop organisiert, wobei Matthias den Löwenanteil an IRC-Kommunikation getragen hat, da er tagsüber die Möglichkeit hatte, mitzulesen und zu schreiben.

Das Programm war sehr vielfältig und interessant, allerdings habe ich leider nur zwei Teile wirklich komplett wahrnehmen können, zum Einen das Interview von Larry Wall mit Will Coleda und zum Anderen den ersten Teil des Perl 6 Workshops von Jonathan Worthington.

Dass die ganze Veranstaltung ein so grosser Erfolg war, liegt ganz besonders auch daran, dass wir mit Daniela, Anja mit Ronja und Christoph ein hervorragend gutes und motiviertes Küchenteam hatten, die für uns gekocht (und gespült) haben. Danke!

Perl ...

perl

In den kommenden Tagen werde ich ein paar Artikel zu Perl und insbesondere auch zu Perl 6 veröffentlichen. Um aufkommenden Diskussionen vorzubeugen, muss ich hier einmal betonen, dass Perl aufgrund von schlechtem Marketing und einer viel zu frühen Ankündigung von Perl 6 sehr viel an Boden verloren hat und meiner Meinung nach diesen auch nicht mehr aufholen wird.

Die Rolle der Programmiersprache bzw. Skriptsprache, die überall installiert ist, hat zum Einen die immer stärker werdende Bash und zum Anderen Python übernommen. Tatsächlich finde ich auch, dass Python eine sehr "schöne" Programmiersprache ist (an dieser Stelle sei erwähnt, dass ich eher Skripter als Programmierer bin).

Ja, Ruby spielt auch noch eine Rolle, aber meiner Meinung nach eher oder stärker bei Webanwendungen als in der Systemadministration (meinem Arbeitsfeld). Ausnahmen wie Puppet bestätigen die Regel.

Bei grösseren Anwendungen könnte Perl 6 tatsächlich auch wieder eine Rolle spielen. Warum ich das vermute, werde ich vielleicht in den folgenden Artikeln darlegen können.

Ein grosses und nicht zu unterschätzendes Plus von Perl ist allerdings die internationale Perl-Community, die einfach nur grossartig ist und die uns Events wie den Swiss Perl Workshop 2015 mit Perl 6 Hackathon durchführen lässt und Gäste aus der ganzen Welt anzieht. Die Community bewegt mich auch dazu, mich weiter für Perl einzusetzen und eine Rolle im Perl-Verein Schweiz zu übernehmen.

Durch die grossartigen Sponsoren, die auch zu einer gut funktionierenden Community gehören, konnten wir die Reisekosten der Perl 6 Core Entwickler übernehmen und hatten so unter anderem auch Larry Wall zu Gast. Zum diesjährigen Swiss Perl Workshop wird es auch einen Artikel geben.

Ich muss gestehen, dass mir andere Communities neben denen von Fedora, Ubuntu und Perl gar nicht auffallen, was aber auch an meinem begrenzten Blickfeld liegt. Wenn Ihr das anders sehr, bin ich für Kommentare hier sehr dankbar.

Was eine Community braucht ...

perl

Als Nachschlag zu diesem Artikel kamen in der gleichen Keynote noch ein paar Bemerkungen, zu dem, was eine (Perl-)Community braucht.

Das lässt sich eins-zu-eins auch auf andere Communities beziehen, deswegen schreibe ich das hier im Blog.

Eine Community braucht:

  • producers
  • consumers
  • critics
  • curators

Ich würde lieber "creators" statt "producers" schreiben, dann fängt alles wenigstens mit "c" an.

Jede Community braucht also Erzeuger (oder Gestalter oder Produzenten) von Inhalten und Programmen und was die Community auch immer ausmacht. Es werden Konsumenten benötigt, die die Erzeugnisse auch benutzen. Konstruktive (!) Kritik ist wichtig, nicht nur "Verneiner" oder Menschen, die das Schild "Dagegen" hochhalten. Und zusätzlich werden Menschen gebraucht, die die Inhalte verwalten, weiterpflegen und auch Werbung dafür machen.

Wenn man sich das anschaut, so gilt das für jede Community und auch jeden Verein.

Brian d foy fasst das drumherum in einem weiteren Blog-Artikel bezogen auf die Perl-Community zusammen:

[...]

The Perl projects that survive and do well are the ones that have constant human input and have someone who pays attention to them everyday. It's not enough to have a webpage or a Twitter account, or to upload some code.

[...]

It's not something that we can optimize or automate away. We've seen what happens when we do that: no one sticks around. If you want to build community, you need dedicated organizers and agitators who personally interact with people to find out what they think and want. You can't get that from surveys. Someone needs their finger on the zeitgeist.

[...]

Also übersetzt und kurz zusammengefasst. Es überleben nur die Projekte, die aktiv sind und regelmässig (täglich) gepflegt werden. Definitiv nicht ausreichend ist es, nur eine Webseite oder einen Twitteraccount zu erstellen und etwas Inhalt hinzuzufügen. Das kann nicht automatisiert werden, es muss Leute geben, die persönlich mit Menschen interagieren, um herauszufinden, was gewünscht wird. Das bekommt man nicht durch Umfragen heraus, jemand muss den Zeitgeist spüren.

Vielleicht ist das auch der Grund, weshalb wir mit DeimHart einen solchen Erfolg haben oder weshalb die deutsch sprachige Ubuntu-Community in Summe ein Erfolgsmodell ist.

Die Abkürzung "JFDI" sieht auch wie "Jedi", deswegen mag ich sie. Sie steht für "Just fucking do it". Wenn Ihr Euch irgendwo beteiligen könnt, macht es einfach.