Skip to content

User Group Code of Conduct

Introduction

As you may know, I'm co-organizing two user groups, PHP User Group Rheinhessen and RheinMainJS, and although we've fortunately never had any complaints about or problems with abusive behavior or harassment, I would like to establish a Code of Conduct for these user groups.

Others have done this before: AmsterdamPHP has a Code of Conduct (CoC). phpMiNDS in Nottingham has one. Several user groups in Berlin support a CoC. A lot of conferences both in the PHP and JS communities have a Code of Conduct, e.g. phpDay and JSConf Europe among many others.

A painting of two men. The man at the center is looking off to his right while drawing a symbol with his right hand. His left hand is resting on a page in a book. He is wearing a robe with a hood. The man on the right is looking towards the front and is wearing a long-sleeve red shirt with a black jacket. Several writing utensils and books are on a table with a green tablecloth in the front of the image.

"User Group Code of Conduct" vollständig lesen

ECMAScript 6 lernen mit ES6 Katas

Viel wird derzeit über ECMAScript 6 (ES6, Codename Harmony) gesprochen, das Mitte des Jahres final erscheinen soll. Auch bei unserer JavaScript UG RheinmainJS sind die kommenden Features immer wieder ein Thema (wir hatten allerdings noch keinen dedizierten Talk dazu hint hint).

Aus meiner Sicht, der ich hauptsächlich in PHP entwickle, vereinfacht die Syntax von ES6 den Zugang zu JavaScript für Entwickler, die von Sprachen wie Java, C# oder PHP kommen, enorm. Für sie sind JS-Klassen in ES6 intuitiver zu nutzen, Template Strings vereinfachen die Arbeit mit Zeichenketten, Funktionsparameter können Default-Werte erhalten, let und const beheben Konfusion im Block-Scope, es gibt verbesserte Iteratoren und Generatoren, und noch vieles mehr.

Allerdings lässt sich wohl der gesamte Umfang der Neuerungen in den meisten Produktivumgebungen heute noch nicht einsetzen. Eine Möglichkeit, dennoch in ES6 zu programmieren, sind Compiler wie Babel.js oder Traceur. Sie kompilieren den in ES6 geschriebenen Programmcode in Code um, der mit der vorherigen Version ES5 kompatibel ist. (Einen anderen, ähnlichen Weg geht TypeScript, aber das ist ein anderes Thema).

"ECMAScript 6 lernen mit ES6 Katas" vollständig lesen

So war's beim 9. RheinMainJS Meetup

Gestern Abend fand in Wiesbaden das 9. Meetup der JavaScript User Group RheinMainJS statt. Vor etwa 20 interessierten Teilnehmern, darunter auch vielen neuen Gesichtern, stellte Tom Raithel in seinem Vortrag Facebooks Bibliothek ReactJS vor.

Im Vergleich zu vielen anderen Libraries oder gar ausgewachsenen Frameworks wirkt ReactJS auf mich aufgeräumt, lesbar und gut strukturiert. Mich hat Tom von ReactJS begeistern können, und ich werde versuchen, es bald in einem Projekt einzusetzen.

Nachdem alle Fragen zu ReactJS beantwortet waren, haben wir unter allen Anwesenden noch ein Ticket für die "virtuelle" JavaScript User Group Nomad JavaScript verlost (Thx Jordan!). Herzlichen Glückwunsch an den Gewinner Martin!

Im Anschluss an den "offiziellen" Teil zog ein großer, hungriger und durstiger Tross weiter in eine Pizzeria in der Nähe, wo noch lange bei Pizza, Pasta und Getränken weiter diskutiert wurde. Insgesamt war es ein sehr gelungener Abend, nicht zuletzt dank unseres Gastgebers AOE GmbH!

In zwei Monaten, also irgendwann im April, wird das nächste RheinMainJS-Meetup stattfinden; bis dahin empfiehlt es sich, das Blog von FrankfurtJS im Auge zu behalten.

Sprachausgabe im Browser: Das Speech Synthesis API

Die neuesten Browser-Versionen von Googles Chrome (seit Version 33) und Apples Safari (seit Version 7, hier eine Übersicht der Browser-Kompatibilität) unterstützen das Speech Synthesis API. Dabei handelt es sich um ein Web API zur Sprachsynthese. Das heißt grob: Der Browser kann Texte mit einer menschlichen Stimme vorlesen.

Google Chrome hat aktuell zehn Sprechstimmen in neun Sprachen integriert: Neben einer britischen Frauen- und einer britischen Männerstimme, jeweils eine Frauenstimme, die amerikanisches Englich, Spanisch, Französisch, Italienisch, Deutsch, Japanisch, Koreanisch und Chinesisch spricht. Eine Liste der angebotenen Stimmen gibt die Methode getVoices() zurück.

window.speechSynthesis.getVoices();

Update: Rene Kriest hat mich darauf hingewiesen, dass die getVoices()-Methode asynchron funktioniert, und auch gleich ein Code-Beispiel geliefert.

Hallo Welt

Soll ein Text als gesprochen Sprache ausgegeben werden, muss zunächst eine "Äußerung" (utterance) erstellt werden. Dieses Objekt kann über weitere Eigenschaften konfiguriert werden, beispielsweise wird hier die Sprache gesetzt:

var hallo = new SpeechSynthesisUtterance("Hallo Welt.");
hallo.lang = "de-DE";
window.speechSynthesis.speak(hallo);

"Sprachausgabe im Browser: Das Speech Synthesis API" vollständig lesen

Arduino mit PHP und Javascript programmieren

Seit geraumer Zeit besitze ich ein Arduino UNO, habe damit aber noch nicht viel mehr gemacht als ein paar LEDs zum Blinken zu bringen oder einen Servomotor anzusteuern. Vielleicht sollte ich mir endlich ein Ethernet-Shield dazukaufen, denn so völlig offline kann ich gar nicht mehr denken, weswegen mir da teilweise die Ideen fehlen O_o Außerdem werden die Arduino-Boards üblicherweise in einem vereinfachten C-Dialekt programmiert, der zwar einfach zu erlernen ist, aber auch nur bedingt Spaß macht (vor allem mit der offiziellen IDE) ;-) Zum Glück gibt es aber, wie bei Open Source-Projekten nicht ungewöhnlich, schöne Alternativen.

Firmata

Firmata ist ein Programm, welches - einmal auf das Arduino-Board übertragen - die Kommunikation mit Software auf einem anderen Computer ermöglicht. Firmata definiert gleichzeitig also auch das Protokoll, über welches mit dem Arduino (in beide Richtungen) kommuniziert werden kann. Wenn ich das richtig sehe, wurde Firmata zunächst für den Einsatz mit Processing entwickelt. Mittlerweile gibt es aber eine ganze Reihe von Client-Bibliotheken für verschiedene Sprachen.

Das Arduino-Board kann also von einem Host, auf dem die Software läuft, angesteuert werden; es können aber auch Sensoren oder z.B. ein Potentiometer ausgelesen werden. Für mich persönlich ergibt diese Kommunikation mehr Sinn als das pure Aufspielen eines Sketches, der dann auf dem Arduino-Board autonom vor sich hinläuft.

"Arduino mit PHP und Javascript programmieren" vollständig lesen