• info@noobygames.de

Category ArchiveAllgemein

hacktoberfest titel bild

Hacktoberfest Kassel 2019

Auch dieses Jahr wird es wieder einen Hackathon für das Hacktoberfest Kassel 2019 bei fino geben. Stattfinden wird das Event am 19.10.2018 ab 11Uhr bei fino im SciencePark der Uni Kassel. Wir bereiten verschiedene Workshops und Vorträge vor. Es gibt also den ganzen Tag über Programm für und mit euch. Für Essen und Getränke wird gesorgt sein, ihr solltet aber einen eigenen Laptop mitbringen.

Themen für Vorträge / Workshops

  • Musikanalyse
  • Go for Go
  • Arduino

Das Hacktoberfest ist ein jährlich wiederkehrendes Event, welches von Digital Ocean, Github und Twilio getragen wird. Das Ziel vom Hacktoberfest ist, Entwickler zum mitmachen bei OpenSource Projekten zu motivieren. Fast jeder von uns hat schon OpenSource Projekte benutzt und damit bestimmt einen Haufen Zeit sparen können. Auch vorletztes Jahr haben wir am Hacktoberfest teilgenommen, und natürlich werden wir das auch dieses Jahr wieder tun. Das Hacktoberfest startet am 01.10.2019 und endet am 31.10.2019, innerhalb dieser Zeitspanne könnt ihr daran teilnehmen.

DigitalOcean spendiert jedem, der teilnimmt und 5 PullRequests in OpenSource Projekten öffnet, ein cooles Shirt. Die PullRequests können auf einem beliebigen öffentlichen Repository auf Github eröffnet werden. Die PullRequests müssen Commits beinhaltetn, die Ihr selbst erstellt habt und dürfen nicht von den Maintainern als spam etc. getagged werden. Im Gegensatz zum letzten Jahr bekommen dieses Jahr die ersten 50.000 ein Shirt. Letztes Jahr haben „nur“ 30.000 ein Shirt bekommen. Dieses Jahr ist es also noch einfacher ein Shirt zu bekommen.

Kommt also alle zum gemeinsamen coden, networken, Wissensaustausch, quatschen und Spaß haben!

Ebenfalls wäre es super nice, wenn ihr ein RSVP in unserem Meetup-Event da lasst.

https://www.meetup.com/de-DE/csharpUserKassel/events/265107391/

Ich freue mich euch alle beim Hacktoberfest 2019 Kassel begrüßen zu dürfen.

gopher

Cleancode in golang #1

In diesem Beitrag geht es nicht um Prinzipien und Praktiken von Cleancode, sondern um Hilfsmittel speziell für go, die dabei helfen den idiomatischen Weg einzuhalten.

Cleancode ist auch in go eine wichtige Angelegenheit. Als einstieg in die Thematik empfehle ich, dass du dich mit den Tooling, dass go mitbringt vertraut machst. 2 Tools, die dir dabei helfen deinen Code sauber zu halten sind golint und go vet.

go lint

Der linter prüft nicht auf die Korrektheit von Code, sondern viel mehr den CodeStyle.
Den standard linter, welcher die meisten Regeln aus dem Buch „Effective Go“ kennt und prüft könnt ihr mithilfe vonfolgenden Befehl installieren.

go get -u golang.org/x/lint/golint

Eine einzelne Datei kann man mit folgendem Befehl prüfen lassen:

golint main.go

Es ist auch möglich eine Liste von Dateien anzugeben:

golint file1.go file2.go

Zusätzlich kann auch ein Pfad inklusive aller Unterordner geprüft werden

golint /pfad/zum/project/…

go vet

Das vet tool prüft den Code auf Korrektheit.
Dabei untersucht vet den Go-Code und reported verdächtige Konstrukte, wie Printf calls, deren Argument nicht mit dem format string übereinstimmen. Die algorythmen, die Vet benutzt garantieren nicht, dass alle gefundenen Probleme tatsächlich welche sind, aber dafür findet es Fehler, die nicht vom Compiler gefunden werden. Es ist somit immer nützlich mal darüber zu schauen, da gerade features wie das finden von ungenutztem Code, oder auch das fehlende Prüfen auf einen error sehr nützlich sind.

Um go vet zu starten kann einfach folgender Befehl verwendet werden

go vet /pfad/zum/project/…

Dieser untersucht sämtliche packages.

Um ein spezifisches Package zu untersuchen kann der pfad zum package direkt angegeben werden

go vet /pfad/zum/package

Features von go vet

asmdecl      report mismatches between assembly files and Go declarations
assign       check for useless assignments
atomic       check for common mistakes using the sync/atomic package
bools        check for common mistakes involving boolean operators
buildtag     check that +build tags are well-formed and correctly located
cgocall      detect some violations of the cgo pointer passing rules
composites   check for unkeyed composite literals
copylocks    check for locks erroneously passed by value
httpresponse check for mistakes using HTTP responses
loopclosure  check references to loop variables from within nested functions
lostcancel   check cancel func returned by context.WithCancel is called
nilfunc      check for useless comparisons between functions and nil
printf       check consistency of Printf format strings and arguments
shift        check for shifts that equal or exceed the width of the integer
stdmethods   check signature of methods of well-known interfaces
structtag    check that struct field tags conform to reflect.StructTag.Get
tests        check for common mistaken usages of tests and examples
unmarshal    report passing non-pointer or non-interface values to unmarshal
unreachable  check for unreachable code
unsafeptr    check for invalid conversions of uintptr to unsafe.Pointer
unusedresult check for unused results of calls to some functions

golangci-lint

Wem der default linter nicht mächtig genug ist, der kann auf golangci-lint zurück greifen. Dieses mächtige Tool ist komplett konfigurierbar und bietet eine wesentlich größere Anzahl an lintern, sowie die möglichkeit einige Fehler direkt zu beheben.

Zusätzlich ist die Ausgabe der Fehler besser lesbar und enthält mehr Informationen, als beim default linter.

Beispiel Ausgabe:

pkg/onboarding/service.go:267:2: Consider preallocating `financialEligibles` (prealloc)
var financialEligibles []models.Individual
^
cmd/local/main.go:31:1: cyclomatic complexity 12 of func `main` is high (> 10) (gocyclo)
func main() {
^

golangci-lint ist als open source Projekt auf github gehostet.

Zum installieren muss lediglich folgender Befehl ausgeführt werden:

go get -u github.com/golangci/golangci-lint/cmd/golangci-lint

Golangci lint kann in alle gängigen Editoren/IDEs integriert werden.

gofmt

Wir halten nun also den default CodeStyle ein und kümmern uns um die Korrektheit. Nun wollen wir natürlich auch noch die korrekte Formatierung nutzen. Dafür gibt es das gofmt tool

Usage:

Um direkt alle Dateien zu überprüfen und fixes anzuwenden kann folgender command genutzt werden.

go fmt -n -x pfad/zum/projekt/…

Nützlich kann hierbei auch eine git pre push hook sein.

Ein Beispiel dafür findet ihr hier:

https://github.com/edsrzf/gofmt-git-hook

sonarqube_gopher

IOSP

Jeder von uns hat es schon erlebt, dass er in ein bestehendes Projekt kommt und eine neue Funktionalität implementieren will und dann einen Moloch vorfand. Einen solchen Moloch, dass wir gar nicht mehr wussten, wie man diesen Bändigen soll. Nun habe ich in solchen Fällen viele Stunden, oder gar Tage damit verbracht den Moloch zu verstehen und manchmal habe ich dem Moloch dann noch einen Arm, oder ein Bein angeheftet, was ihn nur noch größer, furchteinflößender und vor allem komplizierter gemacht hat.

Ein solcher Moloch kann in vielen Formen auftreten. Manchmal ist es eine Klasse mit tausenden LOC (Lines of Code), manchmal ist es eine Funktion mit einer unglaublich großen CC (Cyclomatic Komplexity), die durch viele IF-Else- und große Switch-Strukturen erzeugt wurde. Viele von uns haben sich bereits die Frage gestellt, wie man diese angsteinflößenden Monstrositäten bändigen kann. Ich möchte euch nun ein Mittel an die Hand geben, dass jeder Entwickler leicht verstehen und Umsetzen kann. Dies funktioniert sowohl bei alten, wie auch bei neuem Code. Das Wundermittel nennt sich Integration Operation Segregation Principle kurz IOSP.

Wie Erkenne ich einen solchen Moloch?

Glücklicherweise sind Verstöße gegen IOSP leicht an folgenden Verstößen zu erkennen:

  • Wenn man ein schlechtes Bauchgefühl hat.
  • Die Methode hat mehr als 10 – 30 Zeilen
  • Die Zyklomatische Komplexität ist sehr hoch
  • Die Methode hat viele Abhängigkeiten

Um diese Verstöße gegen IOSP und damit meist auch Verstöße gegen weitere Prinzipien. Ausfindig zu machen kann man Beispielsweise Statische Code Analyse Tools verwenden. Wie das geht zeige ich hier.

Wie funktioniert IOSP?

Wenn Code nur Bausteine aus dem eigenen Projekt, des eigenen Codes zusammensteckt, dann nennt man ihn Integration.

Wenn der Code domänen Logik und Kontrollstrukturen enthält, handelt es sich um eine Operation

In folgendem Beispiel sieht man eine Kette von Funktionsaufrufen. Möchte man nun Funktion 1 testen, so muss man mit großer Wahrscheinlichkeit auf Mocking/Faking der Abhängigkeiten zurück greifen, da hier Operation und Integration vermischt wurde.

Hier sollte man nun im ersten Schritt versuchen diese Verkettung zu vereinfachen. Eine mögliche Vereinfachung wird im nächsten Bild dargestellt.
Hier sind nun Funktion 3, 5 und 6 als Operation erkennbar. Diese können ohne weiteres einfach getestet werden. Funktion 1 Integriert hierbei Funktion 2, 4 und 6

In unserem Beispiel haben stellen wir allerdings fest, dass wir die Bausteine noch weiter voneinander entkoppeln können, indem wir die Funktion 2 bis 6 in Funktion 1 integrieren.

Im letzten Schaubild sehen wir nun, wie die „perfekte“ Umsetzung von IOSP aussehen kann. Funktion 2 bis 6 sind komplett von den anderen Funktionen entkoppelt. Sie haben keine Kenntnis voneinander und stellen reine Operationen dar. Funktion 1 hingegen integriert die anderen 5.

Somit sind Funktion 2 bis 6 nun einfach über UnitTests testbar und Funktion 1 über einen Integrationstest.

Ich habe diese Entkopplung bewusst in 2 Schritten dargestellt, um klar zu machen, dass es einfacher ist sich einzelnen Teilen der Logik zu widmen, anstatt das komplette Paket in einem rutsch zu refactoren.

Welche Vorteile haben wir durch IOSP?

Setzt man IOSP Konsequent um, so ergeben sich folgende Vorteile:

  • Kurze einfach zu verstehende Methoden
  • Leicht testbarer Code
  • Evolvierbarer Code
  • Die Methodennamen werden wieder aussagekräftig

sonarqube_gopher

Statische Code Analyse mit Sonarqube

Jeder der sich um Code Qualität sorgt, hat sich schon einmal Gedanken gemacht, wie er das ganze Analysieren kann um ein Gesamtbild zu bekommen. Nun kann man den ganzen Quellcode durchschauen und sich dabei Notizen machen, oder Tickets erstellen für Stellen im Code, die nicht so geil sind, oder man benutzt ein statisches Codeanalysetool. Ich habe mich für eine statische Code Analyse mit Sonarqube entschieden. Sonarqube gibt es als OnPremise und als Cloud variante.

Aufsetzen von Sonarqube

Was braucht man dafür? Natürlich lasse ich das erst mal in einem Docker Container laufen. Dafür tippt man, vorausgesetzt Docker ist installiert, einfach die folgenden 2 Befehle ein:

1
docker pull sonarqube
1
docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube:latest

Anschließend wartet man einen kurzen Moment, bis der Container hochgefahren ist. Das hat bei mir so 5-10 Sekunden gedauert. Jetzt könnt ihr die Sonarqube Instanz bereits unter localhost:9090 finden

Erstellen eines Projekts

Ruft im Browser den Link http://localhost:9000 auf.
Loggt euch anschließend mit folgenden Credentials ein:

Username: admin
Password: admin

login_create_project

login_create_project

Anschließend könnt ihr ein neues Projekt erstellen. Vergebt dafür einfach einen Namen, bestätigt und anschließend klickt ihr auf Generate.

Sonar Scanner

Ladet euch nun Sonar Scanner herunter. Entpackt diesen an einen beliebigen Ort und fügt den Pfad zum bin Ordner dem Umgebungspfad hinzu.

install plugin

install plugin

Analyse Starten

Startet nun die analyse im folgenden Beispiel habe ich als projectkey „gocloak“ gesetzt, da ich ein Projekt mit dem key „gocloak“ angelegt habe. Dies müsst ihr durch euren Key austauschen und anschließend im project-root ausführen. Den Login Wert müsst ihr durch den key austauschen, den ihr zuvor erstellt habt.

1
sonar-scanner -Dsonar.projectKey=gocloak -Dsonar.sources=. -Dsonar.host.url=http://localhost:9000 -Dsonar.login=8f032266ebed7ca4ec79e22f464b8649455bad77

Alternativ könnt ihr als Login auch folgendes verwenden:

1
sonar-scanner -Dsonar.projectKey=gocloak -Dsonar.sources=. -Dsonar.host.url=http://localhost:9000 -Dsonar.login=admin -Dsonar.password=admin

Ist der Befehl erfolgreich durchgelaufen könnt ihr euch das Ergebnis auf Sonarqube anschauen.

sonar result

sonar result

blockInvasion

Spielereien mit Google ARCore & Unity – BlockInvasion AR

Ich habe mal etwas mit Google ARCore rumgespielt. Dabei ist ein MiniGame „BlockInvasion AR“ enstanden. Es bedarf noch ein wenig arbeit, bis ich es in den PlayStore werfen kann, doch es ist erstaunlich, wie einfach man mit Google ARCore und Unity ein AR Spielereien basteln kann. Ich hoffe ich finde an den nächsten Wochenenden Zeit diese restarbeiten zu erledigen.

 

Ich habe aufjedenfall Bock auf das Thema, also wird es demnächst mehr davon geben.

Nachfolgend findet ihr ein kleines Teaser Video.

BlockInvasion AR Teaser

Das Video wurde direkt auf dem Handy aufgenommen. Wie man sehen kann bemerkt das Spiel, dass das Gerät sich um die eigene Achse dreht und setzt das in eine Drehung in der Spielwelt um. Dadurch können die Blöcke, die sich neben, sowie hinter mir befinden ausfindig gemacht werden. Natürlich ist das Video nur ein Teaser. Das Spiel bietet natürlich noch mehr, als ein paar im Raum rumstehende Blöcke 😉

C# UserGroup

C# UserGroup Kassel Treffen Nr X bei x>=6

Es gibt mal wieder ein C# UserGroup Treffen. Diesmal allerdings an einem neuen Ort. Mick’s. in der Wiesenstraße, 1A , 34121 Kassel. Das ist also gar nicht mal so weit entfernt von unserer bisherigen Location. Wir haben die Location natürlich bereits ausgiebig getestet und sind der Meinung, dass das Bier schmeckt und es gibt auch wieder gute Musik. Zusätzlich hat sich noch das Datum geändert wir sind am 27.01.2019 (Sonntag) am start. Los gehts wie gewohnt gegen 19 Uhr. Wir testen mal, ob es uns dort gefällt. Natürlich haben wir keine Kosten und Mühen gescheut und haben uns eine mobile Beamer-Leinwand organisiert. Das macht uns noch etwas unabhängiger von den gegebenheiten der Location.

Diesmal haben wir wieder das 2+1 Themen Prinzip. Soll heißen 2 Vorträge + 1 als Backup. Dadurch können wir etwas mehr ins Detail gehen und haben mehr Zeit für Rückfragen etc. Macht uns das Leben auch leichter, dass man einen auf Backup hat.

Ich bekomme die Themen nicht mehr vollständig zusammen, also improvisier ich an dieser Stelle mal.

Unsere Themen

  •  GoogleAR Core in Unity
  • C# Addin System
  • Home Automation
  • MicroController Programmierung mit C#, oder auch C++ xD

Es werden also 2 Themen aus der Liste schaffen. Soweit ich weiß bereitet evo ein Talk für das C# Addin system vor und ich bereite euch einen Vortrag über GoogleAR Core vor. Hab da nämlich etwas mit rumgespielt und mit sehr wenig Aufwand coole Ergebnisse erzielt.

Erscheint Zahlreich, bringt eure Freunde mit, bringt eure Leidensgeschichten und natürlich auch etwas Durst mit!

Wir freuen uns auf euch

symbioticon

Symbioticon Recap

Letzte Woche war ich auf der Symbioticon in Frankfurt. Unter dem Motto #NoNormal sollten neue Lösungen entwickelt werden, die auf einer Zielgruppe im Bereich banking einen echten Mehrwert bringen, oder auch einfach nur witzig sind. Es waren 3 spannende und vor allem extrem lange Tage auf der Symbioticon, mit viel Spaß, aber auch harter arbeit.

Zusammen mit meinem Team(Manuel, Lena, Philipp, Tobi) von fino haben wir nicht nur eine Lösung entwickelt, sondern gleich 2. Wir haben die „Produkte“ Better KMU und KYC Kreditantragsstrecke entwickelt.

Better KMU

Better KMU ist ein CoWorking tool zwischen KMUs und Bank Beratern.

Dank smarter Transaktionsanalyse & Forecast erkennt das Tool frühzeitig, dass Konten in der Zukunft für eine/mehrere Zahlung nicht gedeckt sind. Dafür haben die Banken keine Lösung, sofern man Konten bei mehreren Banken hat. Wir erkennen das und schlagen direkt eine Lösung vor. Der Kunde erhält hierbei eine Push-Notification mit der Info, dass wir eine Lösung für sein Problem haben. Dies muss nur bestätigt werden und schon werden automatisch Gelder auf den Konten verschoben, sodass alle Zahlungen ausgeführt werden können.

Erkennt das Tool, bei der Transaktionsanalyse & Forecast, dass in keinem Fall genügend Gelder für ausstehende Zahlungen zur Verfügung stehen, so bekommt der User eine PushNotification mit der Meldung, dass wir mehrere Lösungsvorschläge für sein Problem haben.

  1.  Kreditkarte Nutzen (Wird nur vorgeschlagen, wenn vor der nächsten Kreditkarten Rechnung ausreichend Geld reinkommt, damit die Zahlung gedeckt ist.
  2. Factoring
  3. Kleinkredit beantragen

Bei der Symbioticon haben wir uns für Fall 3 Entschieden und somit hat der Bankberater eine Notification + Alle notwendigen Daten für den Antrag eines Kleinkredits bekommen, muss lediglich die Daten prüfen und kann direkt bestätigen, dass der Kredit freigegeben wird. Der Nutzer erhält dabei wieder eine Benachrichtigung, dass alles tutti ist.

Das bisherige Problem bei diesen Fällen ist, dass sich KMUs aktuell erst beim Berater melden, wenn es eigentlich schon zu spät ist. Unser Tool meldet das ganze aber schon Wochen im voraus.

Wir erkennen, dass keine Versicherungen abgeschlossen wurden, oder dass welche Fehlen. Der Nutzer bekommt eine Notification mit der Frage, ob der Bankberater darüber informiert werden soll.

 

KYC Kreditantragsstrecke

Das Tool kann von Banken eingesetzt werden um die Kreditantragsstrecke zu digitalisieren. Banken benötigen heutzutage viel Arbeit im Backoffice mit PEP-Listen abfragen, Compliance Prüfung, Wirtschaftsauskünften, GvK-Graph Erstellung etc. Dies geschieht alles analog und mit sehr viel Aufwand.

Wir vereinfachen das ganze, in dem wir eine „google-suche“ nach unternehmen anbieten. Wird das Unternehmen ausgewählt, machen wir im Hintergrund alle nötigen Abfragen und stellen der Bank die Daten zur Verfügung. DIe Bank muss dann lediglich anhand der Daten entscheiden, ob ein Kredit genehmigt werden kann. Anstatt mehreren Tagen/Wochen Aufwand, haben wir hier im besten Fall Minuten/Stunden.

symbioticon2

Pitch Nr2

 

Recap

Insgesamt betrachtet war die Symbioticon eine großartige Erfahrung. Vielen Dank an mein gesamtes Team und an fino für die Möglichkeit teilzunehmen. Ich habe zwar beim essen irgendwie Pizza vermisst, aber darüber kann man locker hinweg sehen. War anstrengend, aber geil!

C# UserGroup

C# UserGroup Treffen #6

Hallo zusammen, diesmal gibt es mal rechtzeitig Informationen zu unserem C# UserGroup Treffen #6. Unsere Meetup Gruppe wird damit ein halbes Jahr alt! Das wird natürlich gefeiert, so wie wir das immer machen mit Vorträgen, Trashtalk, Devtalk und Bier.

Wir haben 3 Themen in der Pipeline, wovon 2 Vorgetragen werden. Wir haben also einen Fallback Vortrag, falls einer der anderen 3 nicht klappen sollte.

  1. Whats new in C# / .NET – Tobi
  2. MQTT IoT – JoKo
  3. Microcontroller Programmierung in C# – Roland

Ich werde einen Vortrag mit dem vielsagenden Titel „Whats new in C# / .NET“ halten. Dabei werde ich auf Neuerungen in den letzten C# Versionen, sowie kommenden C# Versionen eingehen. Das selbe Spiel gibt es parallel dazu für das .NET Universum. Dabei werde ich auch einen kurzen Ausblick geben, was .NET Core 3.0 für uns bereithält.

JoKo wird uns vorraussichtlich etwas über Machine 2 Machine kommunikation mit dem MQTT Protokoll auf IoT Plattformen erzählen.

Roland bereitet einen Vortrag für Microcontroller Programmierung vor. Wir sind gespannt ob er bis zum nächsten Treffen fertig wird. Falls nicht, kommt es wahrscheinlich beim Treffen Nr.7

 

Weitere Themen in der Queue

Addin Konzept in C# – evo

Microcontroller C# oder auch wahrscheinlich in C++ 2

Electron .NET – Stipsi
KeyCloak – Tobi
XAML Standard ?

Intermediate Language

Unity SoftwareArchitektur – Und wie ScriptableObjects die Welt retten <3

 

GitHub Repo

Ich werde mir in Zukunft mehr Mühe bei der Pflege unseres Github repositories geben. Bisher sind nur ein bruchteil der Slides darin gelandet. Und ich bin immer sehr vergesslich, doch ich gelobe Besserung. Versprochen!  Das Repository findet ihr hier. Ich werde spätestens Morgen mal die Slides vom letzten mal reinpacken.

 

Wie immer, freue ich mich auf altbekannte und frische Gesichter, also kommt vorbei!

hacktoberfest

Hacktoberfest 2018 bei fino in Kassel

Auch dieses Jahr wird es wieder einen Hackathon für das Hacktoberfest 2018 bei fino geben. Stattfinden wird das Event am 20.10.2018 ab 10Uhr bei fino im SciencePark der Uni Kassel. Der Hackathon wird von ca. 10 Uhr bis 17 Uhr laufen, anschließend gibt es ein CodeMeetup mit verschiedenen Themen (tba.), sowie ab 20 Uhr ein GetTogether. Es gibt also den ganzen Tag über Programm für und mit euch. Für Essen und Getränke wird gesorgt sein, ihr solltet aber einen eigenen Laptop mitbringen.

Das Hacktoberfest ist ein jährlich wiederkehrendes Event, welches von Digital Ocean, Github und Twilio getragen wird. Das Ziel vom Hacktoberfest ist, Entwickler zum mitmachen bei OpenSource Projekten zu motivieren. Fast jeder von uns hat schon OpenSource Projekte benutzt und damit bestimmt einen Haufen Zeit sparen können. Auch letztes Jahr haben wir am Hacktoberfest teilgenommen, und natürlich werden wir das auch dieses Jahr wieder tun. Das Hacktoberfest startet am 01.10.2018 und endet am 31.10.2018, innerhalb dieser Zeitspanne könnt ihr daran teilnehmen.

DigitalOcean spendiert jedem, der Mitmacht und 5 PullRequests in OpenSource Projekten öffnet, ein cooles Shirt. Die PullRequests können auf einem beliebigen öffentlichen Repository auf Github eröffnet werden. Die PullRequests müssen Commits beinhaltetn, die Ihr selbst erstellt habt und dürfen nicht von den Maintainern als spam etc. getagged werden. Im Gegensatz zum letzten Jahr bekommen dieses Jahr die ersten 50.000 ein Shirt. Letztes Jahr haben „nur“ 30.000 ein Shirt bekommen. Dieses Jahr ist es also noch einfacher ein Shirt zu bekommen.

Kommt also alle zum gemeinsamen coden, networken, Wissensaustausch, quatschen und Spaß haben!

C# UserGroup

C# UserGroup Fünftes Treffen

Wieder einmal möchten wir euch alle einladen zu unserem fünften C# UserGroup Treffen. Es gibt 2 Vorträge zu C# bezogenen Themen. Der Veranstaltungsort ist eine gemütliche Kneipe, daher gibt es natürlich leckeres Bier und Essen. Los geht es am 26.09.18 um 19 Uhr.

Multilingualität in WPF:
JoKo zeigt uns ein paar Tricks, wie man einfach Multilingualität in WPF umsetzen kann.

Einführung in Unity3D:
Dies ist der erste Vortrag in einer Reihe von Unity Vorträgen. Natürlich beginnt Tobi bei dieser Reihe mit einem Überblick, über die Unity3D GameEngine.

Hier gehts zum Meetup: https://www.meetup.com/de-DE/csharpUserKassel/events/rwthqpyxmbjc/
Wenn ihr vorbei kommt, dann lasst es uns dort bitte durch eine unverbindliche Anmeldung wissen.

 

Wenn ihr Themenwünsche habt, dann ruft sie doch einfach! Oder auch – Sprecht uns einfach drauf an, wenn ihr ein Themenwunsch habt, oder selbst ein Vortrag zum besten geben wollt. Wir sind für (fast) alles offen und beißen (meistens) nicht.

 

Wir freuen uns auf einen weiteren angenehmen Abend bei Nerdtalk, C# und Bier von Ecki.

%d Bloggern gefällt das:

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklären Sie sich damit einverstanden.

Schließen