Montag, 9. Dezember 2019

Treffen im 2020

Das Jahr neigt sich langsam aber sicher dem Ende zu und schon bald ist 2020. Damit ihr nächstes Jahr kein Treffen verpasst, geben wir euch hier schon mal die Daten fürs 2020 bekannt. Also holt eure Agenda hervor markiert euch folgende Daten:
  • Dienstag 14.1.2020
  • Montag 10.2.2020
  • Montag 9.3.2020
  • Dienstag 14.4.2020
  • Montag 11.5.2020
  • Dienstag 9.6.2020
  • Montag 14.9.2020
  • Dienstag 13.10.2020
  • Montag 9.11.2020
  • Dienstag 15.12.2020

Bis bald!

Sonntag, 17. November 2019

10. Dezember: Azure Messaging Crossroads

Zum Jahresabschluss spannen wir mit der .Net Usergroup zusammen, um euch einen Vortrag von Sean Feldman zu Thema Azure Messaging Crossroads präsentieren zu können.
You've decided to develop in Azure and need to make a decision on the messaging technology. Storage Queues, Service Bus, Event Grid, Event Hubs, etc. Which technology should you use? How do you pick the right one if they all deal with messages? This session will help you answer these questions.
Der Vortrag ist auf Englisch. Und wir beginnen ausnahmsweise bereits um 18:00.

Agenda


  1. Introduction
  2. A short presentation by Marko Markovic
  3. Azure Messaging Crossroads by Sean Feldman
  4. Knowledge Exchange/Apéro


Ort

bbv Software Services AG, Blumenrain 10, Luzern, 1. Stock

Datum

Dienstag 10.12.2019, 18 - 20 Uhr (Anschliessend Apéro)

Anmeldung

Ihr könnt euch direkt bei der .Net Usergroup anmelden, über den Meetup Event oder über das Kontaktformular auf dieser Webseite.


Dienstag, 29. Oktober 2019

11. November: Design by Contract & Error Handling Revisited

Am nächsten Treffen der C++ Usergroup haben wir gleich zwei Vorträge.

Design by Contract von Dominik Berner


100% der Softwarefehler werden vom Programmierer verursacht. Testen und Code Reviews helfen zwar, sind aber nicht genug. Viel schöner wäre es, wenn ich als Programmierer eine falsche Verwendung meines Codes von vornherein abfangen könnte.

Mit "Design by Contract" bekommen wir ein Werkzeug für genau diesen Zweck in die Hände. Aber nicht nur die Korrektheit, sondern auch die Lesbarkeit, Wartbarkeit und Robustheit des Codes werden damit erhöht. Auch wenn dieses Konzept nocht nicht nativ in C++ verfügbar ist, lässt es sich schon mit wenig Aufwand anwenden.

Wie funktioniert dieses Konzept? Wie setze ich es um? Und welchen Einfluss hat das auf das Testing? In diesem Vortrag werden die Antworten auf diese und weitere Fragen ausführlich erläutert.

Die Teilnehmer erhalten eine Einführung in "Design by Contract" sowie konkrete Hinweise zur Anwendung in bestehendem C++ Code. Nebst der Anwendung auf kleiner Stufe wird der Einsatz im kompletten Entwicklungszyklus besprochen. Die Teilnehmer erhalten die Möglichkeit, Fragen zum Konzept von "Design by Contract" zu stellen und das Konzept kritisch zu diskutieren.

C++ Error Handling Revisited von Raphael Meyer


Die Behandlung von Fehlern und Ausnahmesituationen ist nicht nur ein wichtiger Teil jeder Software, sondern oft auch sehr umfangreich. Gerade bei Embedded-Software, welche von der Interaktion mit Hardware geprägt ist, ist eine sorgfältige Fehlerbehandlung für den einwandfreien Betrieb der entwickelten Geräte unabdingbar.

Leider trägt die Fehler- und Ausnahmebehandlung aber oft dazu bei, dass Abläufe im Code schlechter lesbar sind. Der Code zu Ausnahmebehandlung drängt sich dazwischen und reißt die eigentlichen Abläufe visuell auseinander.

Funktionale Programmiersprachen bieten hier interessante Konzepte, welche nicht ganz neu sind, aber in letzter Zeit vermehrt wiederentdeckt werden. Wir werden einen kurzen Blick auf das Fehlerhandling in Haskell werfen und betrachten, wie sich diese Konzepte in C++ umsetzen und anwenden lassen. Dabei treffen wir auch einige neue Features aus C++17 an.


Agenda

  1. Begrüssung
  2. "Design by Contract" von Dominik Berner
  3. "C++ Error Handling Revisited" von Raphael Meyer
  4. Apéro


Ort



Datum

Montag 11.11.2019, 19 - 21 Uhr (Anschliessend Apéro)


Anmeldung

Erfolgt über die Veranstaltung unserer Xing Gruppe C++ Usergroup Zentralschweiz, über  den Meetup Event oder über das Kontaktformular auf dieser Webseite.


Es sind alle herzlich Willkommen die gerne mit C++ programmieren. Egal ob Anfänger oder Experte.

Dienstag, 8. Oktober 2019

Global Day of Coderetreat

Am Samstag 16. November ist Global Day of Coderetreat. In Luzern moderieren Marco Ravicini und Raphael ein Coderetreat. Es findet in den Räumlichkeiten der bbv Luzern statt.
Coderetreat is a day-long, intensive practice event, focusing on the fundamentals of software development and design. By providing developers the opportunity to take part in focused practice, away from the pressures of 'getting things done', the coderetreat format has proven itself to be a highly effective means of skill improvement. Practicing the basic principles of modular and object-oriented design, developers can improve their ability to write code that minimizes the cost of change over time.
Details und Anmeldung: Coderetreat in Luzern

Mittwoch, 2. Oktober 2019

15. Okt.: Value Typen in der Praxis

Value Typen in der Praxis von Adrian Imboden

Wir verwenden verschiedene Value Typen im täglichen Programmiergebrauch. Zum Beispiel int, std::string, std::vector, char und noch viele mehr.
Doch wie oft sehen wir Value Typen die unsere Domäne abbilden, wie z.B. Person, Address, Age, Length oder Temperature?
Meistens sind unsere eigenen Typen ausschliesslich Heap-Alloziert und in komplexe Typ-Hierarchien integriert. Und wenn nicht, dann ist eine Temperatur einfach ein "int".
Mit anderen Worten: Genau das Gegenteil von fast allen Typen in der Sprache und der Standardbibliothek.
C++ gibt uns im Gegensatz zu den meisten anderen populären Programmiersprachen die Möglichkeit solche Typen sauber zu designen. Ganz nach dem Motto "Do it like an int would do".

Konkret werden wir einige einfache Anwendungsfälle sehen und auch selber Hand anlegen, um ein Gespür für solche Typen zu bekommen.

Agenda

  1. Begrüssung und Einführung
  2.  "Value Typen in der Praxis" von Adrian Imboden
  3. Apéro

Ort

bbv Software Services AG, Blumenrain 10, Luzern, 1. Stock

Datum

Di. 15.10.2019, 19 - 21 Uhr (Anschliessend Apéro)

Mitbringen

Entweder
  • Laptop mit Entwicklungsumgebung deiner Wahl für C++
  • oder Laptop mit Browser
Es sind alle herzlich Willkommen die gerne mit C++ programmieren. Egal ob Anfänger oder Experte.

 

Anmeldung

Erfolgt über die Veranstaltung unserer Xing Gruppe C++ Usergroup Zentralschweiz, über  den Meetup Event oder über das Kontaktformular auf dieser webseite.

Mittwoch, 4. September 2019

9. Sept.: Coding Dojo

Fast hätten wir es vergessen anzukündigen, aber die C++ Usergroup geht natürlich nach der Sommerpause im gewohnten Rhythmus weiter. Wie starten nach der Pause mit einem Coding Dojo um nach langem mal wieder TDD (Test-Driven Development) und Pair-Programming zu üben. Wir verwenden diesmal das Catch2 Testing Framework.

Agenda

  1. Einführung Coding Dojo, TDD, Pair-Programming und Catch2 nach Bedarf
  2. Paarweise TDD mit Catch2 üben
  3. Präsentation und Diskussion der Vorgehen
  4. Apero

Ort

bbv Software Services AG, Blumenrain 10, Luzern, 1. Stock

Datum

Mo. 09.09.2019, 19 - 21 Uhr (Anschliessend Apero)

Mitbringen

  • Eigener netzwerkfähiger Notebook mit installiertem Browser. Es ist keine IDE und C++ Toolchain nötig. Wir programmieren im Browser.
  • Spass, Mut und Enthusiasmus
Es sind alle herzlich Willkommen die gerne mit C++ programmieren. Egal ob Anfänger oder Experte auch wenn ihr TDD, Pair-Programming oder Catch nicht kennt.

Anmeldung

Erfolgt über die Veranstaltung unserer Xing Gruppe C++ Usergroup Zentralschweiz, über  den Meetup Event oder über das Kontaktformular rechts. 

Wir freuen uns auf dich.

Montag, 24. Juni 2019

Sommerpause

In den Sommerferien also im Juli und August werden wir kein Usergroup Treffen durchführen. Der nächste Event findet im September statt.
Danke für das Verständnis und einen schönen Sommer.

Game Development with SFML

Am letzten C++ Usergroup treffen am 11. Juni gab uns Lukas eine Einführung in SFML in Form eines Workshops. Leider war die Zeit viel zu kurz um tief in die mächtige Bibliothek einzutauchen.
Wenn ihr also selber noch weiter machen wollt, findet ihr den Beispielcode in Lukas github repo:  https://github.com/eXpl0it3r/SFML-Workshop.
Die slides findet ihr ebenfalls in einem Repo unter https://github.com/eXpl0it3r/Talks 

Wenn ihr noch mehr über die SFML lernen möchtet, geht auf https://www.sfml-dev.org/learn.php und/oder kauft euch das Buch "SFML Game Development" (Source Code zum Buch)
An dieser Stelle nochmals einen herzlichen Dank an Lukas für den tollen Workshop.

Dienstag, 28. Mai 2019

11. Juni: Game Development with SFML

Game Development with SFML 

von Lukas Dürrenberger

Die Simple and Fast Multimedia Library (SFML) bietet eine cross-platform API für Audiowiedergabe und -aufnahme, 2D Grafik Rendering, OpenGL Context und Window Management, Basic Networking, und mehr.
Nach einer kurzen Einleitung, können alle selber Hand anlegen und mit der Entwicklung eines kleinen Spiels SFML näher kennenlernen. Zusätzlich gibt es einige allgemeine Tipps und Tricks für die Spielentwicklung.
Lukas Dürrenberger ist Projekt Manager und einer der Hauptentwickler der SFML. Er bloggt auf https://dev.my-gate.net/ regelmässig über SFML und C++.

Agenda

  1. Begrüssung und Einführung
  2. Vortrag und Hands-on: "Game Development with SFML" von Lukas Dürrenberger
  3. Apéro

Ort

bbv Software Services AG, Blumenrain 10, Luzern, 1. Stock

Datum

Di. 11.06.2019, 19 - 21 Uhr (Anschliessend Apéro)

Mitbringen

Es sind alle herzlich Willkommen die gerne mit C++ programmieren. Egal ob Anfänger oder Experte.

Anmeldung

Erfolgt über die Veranstaltung unserer Xing Gruppe C++ Usergroup Zentralschweiz, über  den Meetup Event oder über das Kontaktformular auf dieser webseite.

"From SFINAE to Concepts"

Am 20. Mai gab Mario Konrad einem Dutzend interessierten Zuhörern C++ Geschichtsunterricht und erzählte anschaulich die Entwicklung der Sprache von SFINAE zu den Concepts die bald Bestandteil des C++ Standards sein werden. Die Slides und die Beispiele findet ihr in Marios Github Repo: https://github.com/mariokonrad/cppug-sfinae-concepts.


Sonntag, 28. April 2019

20. Mai: From SFINAE to Concepts

From SFINAE to Concepts. From C++98 to C++20 von Mario Konrad

C++ hat sich seit dem ersten offiziellen Standard 1998 stark verändert. Anhand kleiner Beispiele diskutieren wir die Evolution von SFINAE bis zu den Concepts im kommenden Standard. Wir haben dann auch die Möglichkeit selbst Hand anzulegen und Aufgaben zu lösen und diskutieren.

Agenda

  1. Begrüssung und Einführung
  2. Vortrag "From SFINAE to Concepts, From C++98 to C++20" von Mario Konrad
  3. Concepts Hands-On
  4. Apéro

Ort

bbv Software Services AG, Blumenrain 10, Luzern, 1. Stock

Datum

Mo. 20.05.2019, 19 - 21 Uhr (Anschliessend Apéro)

Mitbringen

  • Eigener Laptop mit C++ Compiler und/oder Netzwerkfähig zum Programmieren online (z.B. godbolt.org)
  • Wer mit einen nightly build des GCC mit Unterstützung von concepts spielen möchte: Laptop mit Linux und installiertem docker
Es sind alle herzlich Willkommen die gerne mit C++ programmieren. Egal ob Anfänger oder Experte.

Anmeldung

Erfolgt über die Veranstaltung unserer Xing Gruppe C++ Usergroup Zentralschweiz, über  den Meetup Event oder über das Kontaktformular auf dieser webseite.

Montag, 1. April 2019

9.April: Coverage Guided Fuzzing mit libFuzzer

Coverage Guided Fuzzing mit libFuzzer von Adrian Imboden 

Neben klassischem Testing wird mittlerweile immer häufiger Fuzzy Testing angewandt, um Fehler in Software aufzudecken. Wir werden zusammen den Coverage Guided Fuzzy Tester vom LLVM, libFuzzer (https://llvm.org/docs/LibFuzzer.html), anschauen und auch selber Hand anlegen.

Agenda

  1. Begrüssung und Einführung
  2.  "Coverage Guided Fuzzing mit libFuzzer" von Adrian Imboden
  3. Apéro

Ort

bbv Software Services AG, Blumenrain 10, Luzern, 1. Stock

Datum

Di. 9.04.2019, 19 - 21 Uhr (Anschliessend Apéro)

Mitbringen

  • Windows Laptop mit:
    - Visual Studio Build Tools (https://visualstudio.microsoft.com/de/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15)
    - Visual C++ Buildtools installieren
    - LLVM 8.0.0 (http://releases.llvm.org/download.html)
  • oder Linux/Mac Laptop mit:
    - LLVM 8.0.0 (http://releases.llvm.org/download.html)
Es sind alle herzlich Willkommen die gerne mit C++ programmieren. Egal ob Anfänger oder Experte.

Anmeldung

Erfolgt über die Veranstaltung unserer Xing Gruppe C++ Usergroup Zentralschweiz, über  den Meetup Event oder über das Kontaktformular auf dieser webseite.

Sonntag, 3. März 2019

18. März: Coding Dojo

Nach einigen Vorträgen und Spezialveranstaltungen, machen wir mal wieder ein ganz normales Coding Dojo um TDD (Test-Driven Development) und Pair-Programming zu üben. Wir verwenden diesmal das Catch2 Testing Framework.

Agenda

  1. Einführung Coding Dojo, TDD, Pair-Programming und Catch2 nach Bedarf
  2. Paarweise TDD mit Catch2 üben
  3. Präsentation und Diskussion der Vorgehen
  4. Apero

Ort

bbv Software Services AG, Blumenrain 10, Luzern, 1. Stock

Datum

Mo. 18.03.2019, 19 - 21 Uhr (Anschliessend Apero)

Mitbringen

  • Eigener netzwerkfähiger Notebook mit installiertem Browser. Es ist keine IDE und C++ Toolchain nötig. Wir programmieren im Browser.
  • Spass, Mut und Enthusiasmus
Es sind alle herzlich Willkommen die gerne mit C++ programmieren. Egal ob Anfänger oder Experte auch wenn ihr TDD, Pair-Programming oder Catch nicht kennt.

Anmeldung

Erfolgt über die Veranstaltung unserer Xing Gruppe C++ Usergroup Zentralschweiz, über  den Meetup Event oder über das Kontaktformular rechts. 

Wir freuen uns auf dich.

Mission Impossible auf tech.io

Den wunderbaren Workshop von Adrian Imboden aus dem letzen Meetup findet ihr unter
https://tech.io/playgrounds/41564/mission-impossible-how-to-create-datatypes-which-cannot-contain-invalid-state/introduction-2

Ein grosses Dankeschön nochmals an Adrian für den tollen Event.

Und hier noch ein Link zu einer Erklärung zum overload Pattern das im Workshop vorkam: https://www.bfilipek.com/2019/02/2lines3featuresoverload.html
 

Mittwoch, 30. Januar 2019

12. Feb.: Mission: Impossible X

Mission: Impossible X or "Make impossible states impossible"

Drehbuch und Regie: Adrian Imboden
Produzent: C++ Usergroup Zentralschweiz 
FSK: 16  

"Viele Datenstrukturen in C++ welche in der freien Wildbahn anzutreffen sind erlauben eine Vielzahl von ungültigen Zuständen, welche der Entwickler dann beim Lesen und Bearbeiten von Code jederzeit im
Hinterkopf haben muss, z.B. mehrere boolsche Variablen, welche in gewissen Kombinationen nicht auftreten dürften.

An einigen Beispielen werden wir sehen und selber ausprobieren, wie assert-Minenfelder und kognitive Zustands-Überlastungen mittels "modernem" C++ vermieden werden können.
C++ hat seit C++14 Einiges von den funktionalen Sprachen abgeschaut, welche diese Konzepte schon länger einsetzen.
Konkret geht es um std::optional, std::variant und co., so wie deren Anwendung."


Agenda

  1. Begrüssung und Einführung
  2.  "Mission: Impossible X" von Adrian Imboden
  3. Apéro

Ort

bbv Software Services AG, Blumenrain 10, Luzern, 1. Stock

Datum

Di. 12.02.2019, 19 - 21 Uhr (Anschliessend Apéro)

Mitbringen

  • Eigener netzwerkfähiger Notebook mit installiertem Browser. Es ist keine IDE und C++ Toolchain nötig. Wir programmieren im Browser.

Es sind alle herzlich Willkommen die gerne mit C++ programmieren. Egal ob Anfänger oder Experte.

Anmeldung

Erfolgt über die Veranstaltung unserer Xing Gruppe C++ Usergroup Zentralschweiz, über  den Meetup Event oder über das Kontaktformular auf dieser webseite.

Sonntag, 6. Januar 2019

Mo. 14. Januar: C++ Countdown Pub Quiz

Das fünfte Jahr der C++ Usergroup Zentralschweiz starten wir am Montag 14. Januar mit einem Pub Quiz. Für einmal wollen wir nicht möglichst sauberen, also Clean-Code schreiben, sondern möglichst kurzen.
Beim C++ Countdown Pub Quiz von Jon Jagger geht es darum ein möglichst kurzes C++ Codestück zu programmieren, welches kompiliert und alle vorgegebenen Schlüsselwörter enthält.
Was sich langweilig anhört ist höchst spannend und amüsant. Komm vorbei und probiere es selber aus.

Agenda

  1. Begrüssung und Einführung
  2.  C++ Countdown Pub Quiz
  3. Siegerehrung und Besprechung
  4. Apéro

Ort

bbv Software Services AG, Blumenrain 10, Luzern, 1. Stock

Datum

Mo. 14.01.2019, 19 - 21 Uhr (Anschliessend Apéro)

Mitbringen

  • Eigener netzwerkfähiger Notebook mit installiertem Browser. Es ist keine IDE und C++ Toolchain nötig. Wir programmieren im Browser.

Es sind alle herzlich Willkommen die gerne mit C++ programmieren. Egal ob Anfänger oder Experte.

Anmeldung

Erfolgt über die Veranstaltung unserer Xing Gruppe C++ Usergroup Zentralschweiz, über  den Meetup Event oder über das Kontaktformular auf dieser webseite.