Der Bayer und der Würschtlmann

Von Würsten und Bayern

[Android] Google Firebase Cloud Messaging Pager mit Android Things

by tobonaut

Ich habe einmal meinen Weihnachtsurlaub genutzt um bisschen mit meinem Raspberry Pi und dem darauf installierten Android Things zu spielen.

Als kleines, Ein-Tages-Projekt kam dort eine App heraus welche Google Firebase Cloud Messaging (FCM) Mitteilungen auf dem Sieben-Segement-Display des Rainbow HATs anzeigt.

Schema

Hier wurde mir bewusst wie einfach ein Push Service unter Android funktionieren kann. Unter iOS ist dies absolut kein leichter Schritt da es Zertifikate, Registrierungen und Co. verlangt – also alles nicht gerade Maker- und Hobby-freundlich.

Weitere Informationen und der Source ist auf Github.com verfügbar.

Advertisements

#dankesagen für das aufregende Jahr 2017

by tobonaut

Es ist einmal wieder die staade und besinnliche Zeit angebrochen in derer ich immer versuche, das vergangene Jahr Revue passieren zu lassen. Im Laufe der Zeit, wenn alles hektisch und ein Rennen nach der Uhr ist , übersieht man leicht die Dinge, die man erreicht und erlebt hat, oder vergisst solch Moment viel zu schnell, in denen man besonders stolz und glücklich war.

Aus diesem Grund möchte ich einfach einmal #dankesagen an all diejenigen die ich dieses Jahr neu kennen gelernt habe, wieder kennen gelernt habe oder einfach mir neue Dinge aufgezeigt haben. Seien es meine Freunde

Danke Microsoft (-Community)

Wer diesen – ok recht ruhigen Blog – bisschen verfolgt hat über die letzten paar Monate wird festgestellt haben, dass sich hier nun viel mehr um Themen aus dem Entwicklungsökosystem von Microsoft dreht. Sei es C#, Xamarin oder wunderschöne Events an dene ich teilnehmen durfte. Trotz meiner sprachlichen Einschränkung habe ich so schnell Anschluss gefunden wie selten wo. ein wunderschönes Gefühl. Ohne eine gezielte Reihenfolge zu haben, danke an:

  • Maik Wlodarczyk (@m_wlod) – Ein herzensguter Mensch mit dem man einfach auf jeden Event Selfies (versuchen) machen sollte.
  • Raphael Köllner (@ra_koellner) – Mehr Microsoft Community als Privatperson geht nicht.
  • Robin-Manuel Thiel (@robinmanuelt) – Super sympathischer Kerl, der auch einem bei kleinen, Newbie-Fragen sowas von super weiterhilft.
  • Magdalena Rogl (@LenaRogl) – Eine so liebevolle Person, die trotz des Head of Digital Channels Titels einem per Namen und Lächeln grüßt.
  • Anna-Lena Müller (@froileinmueller) – Ohne sie hätte ich mich wohl nie mehr mit dem Thema Microsoft aus einander gesetzt.

Danke Apfeltalk (-Community)

Meine Heimat ist und bleibt doch der goldene Käfig von Apple. Dies gepaart mit einer der leidenschaftlichsten und professionellsten geleiteten Communities die ich kenne hat mir in 2017 etliche schöne Augenblicke beschert. Auch wenn ich mich zeitlich gesehen weniger einbringen konnte als ich gehofft habe, war das Team immer für mich da. Die fortschreitende Entwicklung einer solchen Gemeinschaft mitzuerleben, wie neue Wege gegangen werden, neue Dinge ausprobiert werden die sich entweder durchsetzen oder nicht, will ich einfach nicht mehr missen. Im Rahmen eines Tourstopps der Apfeltalk Apple Store Tour konnte ich neben etlichen Mitgliedern der Community auch zwei der Schirmherren des Ganzen in (sehr imposanter) Realität treffen. Vielen vielen Dank:

  • Michael Reimann (@MCReim ) – Große Schale, sehr liebevolles Herz.
  • Jeder Frommherz (@jesfro) – Ein Unikum welches man sich am liebsten in Beton gießen lassen würde um in den Garten zu stellen.

Danke anfema

Ich habe das große Glück gehabt in 2017 mit vielen erfahrenen und hochgradig begabten Menschen in Projekten zusammen zuarbeiten und von diesen lernen zu dürfen. Dennoch hatte ich Gelegenheiten auch mich selbst entfalten können. Es ist schön zu wissen, dass man so akzeptiert und für voll genommen wird wie man ist, ohne sich ein Business-Jocker-Face aufsetzen zu müssen. Einfach nur schön.

Auf nach 2018!

Nun nehme ich diese tollen Ergebnisse mit nach 208 um hoffentlich genauso tolle wenn nicht sogar mehr Erfahrungen im kommenden Jahr zusammen.

Stay hungry, Stay foolish

[Videotipp] Musik ist mehr als Audio – Gebärdendolmetscherin bei den Red Hot Chilli Peppers

by tobonaut

Vor einiger Zeit habe ich über einen Auftritt einer taubstumme Sängerin bei America Got Talent geschrieben. Für mich war es damals etwas völlig neues, dass Menschen die weder sich nicht andere hören können überhaupt Spaß an der besten Sache der Welt – Musik – haben können. Ich lag völlig falsch.

Durch Zufall bin ich auf ein Abschnitt (Ab 1h 14m 35s) eines Konzertes der Red Hot Chilli Peppers gestoßen welches simultan von einer Gebärdendolmetscherin übersetzt wurde. Diese Energie, diese Vibes, einfach genial!

Musik ist eben viel mehr als Audio, es ist das Gefühl von Bass, von positiver Energie und von Leidenschaft.

[.NET Standard 2.0] Nomster.NET – Ein Experiment was mittlerweile an shared Code möglich ist

by tobonaut

tl;dr

(von Github )

The long version Is a active, experimental playground for myself to play around with the new .net (Core 2.0) ecosystem and build an UI once, and use it everywhere. The solution contains not only two Xamarin projects for iOS and Android but also a macOS and a asp.net Core web project. An Azure connection is in deveopment but it’s too confusing for my at the moment.

Die ausführliche Version

Jeder Entwickler träumt davon, einmal Quelltext – egal ob Oberfläche oder Logik – zu schreiben, diesen überall ausführen zu können und diesen dabei auch noch native aussehen zu lassen.

Genau so weiß jeder Entwickler, dass dies eine Utopie ist. Es gibt und gab viele verschiedenen Ansätze, seien es eingebettete Webseiten oder althergebrachte Bibliotheken wie Qt. Alles geht irgendwie, nur nicht so wirklich richtig.

Microsoft versucht diesen Markt, meiner Ansicht nach, mit aller Energie aufzumischen und ihre Technologien zu platzieren. Mit ihren Bemühungen,  .NET  Standard als auch Xamarin.Forms auf jegliches Betriebssystem zu bringen als auch Oberflächen mittels Xamarin.Forms (XAML) plattformübergreifend darzustellen, haben die Redmonder wieder Schwung in diese eingeschlafene Thematik gebracht.

Kurz um, Nomster.NET war mein Test in wie weit dies mittlerweile schon möglich ist und wo noch der ein oder andere Schuh klemmt.

 

Nomster iOS

Nomster iOS

Nomster Android

Nomster Android

Nomster macOS

Nomster macOS

Nomster Console

Nomster Console

Nomster Web

Nomster Web

 

Angemerkt sei, dass die Web-Variante nur den zur Logik gehörenden Quelltext teilt. Die Oberfläche wurde mit asp.net Core 2 und Razor Pages realisiert.

Fazit

Es hat mich überrascht, wieviel mittlerweile schon relativ gut funktioniert. Allerdings hackt es an vielen Stellen einfach auch noch an der Kompatibilität und Funktionsumfang in der Oberflächengestaltung.

Weiterführende Informationen und Quelltext

Weitere Informationen und sämtlicher Quelltext zu diesem Projekt sind im entsprechenden Github Repository hinterlegt.

Grund des Abbruches

Weswegen das Projekt nur ein Experiment blieb war, dass in Xamarin.Forms gerade so viel Bewegung herrscht, dass es ein viel zu hoher Wartungsaufwand wäre dies zu pflegen. So soll mit XAML Standard 2 endlich auch eine Vereinheitlichung des XAML-Syntaxes zwischen Xamarin.Forms und der Microsoft UWP Apps kommen.
Als eine Person die sich damit nur in ihrer Freizeit beschäftigt sind diese Schritte natürlich sehr willkommen. So bald sich diese ganze Situation beruhigt und vor allem stabilisiert hat, wird eventuell auch Nomster.NET funktionsfähig weiter entwickelt.

IMCDb.org – The Internet Movie Cars Database

by tobonaut

Es gibt im Netz nichts, was es nicht gibt. Dank @monstermunchkin bin ich nun auch auf imcdb.org aufmerksam geworden. Eine Datenbank welche allerlei tiefgreifende Informationen zu Autos in Filmen bereit hält.

So ermöglicht diese Webseite es Filmen und Serien nach Marken, Modellen und sogar Hersteller Codes von Kraftfahrzeugen zu durchsuchen um anschließend die passenden Szenen aus den jeweiligen anzusehen. Dies funktioniert nicht in klassischen Bewegtbildern sondern auch in Zeichentrickserien wie beispielsweise Family Guy.

[Xamarin.Forms] Solution mit geteilten .NET Standard 2.0 Projekt anlegen

by tobonaut

Diesen „Trick“ habe ich auf dem letzten Xamarin Developer Day in München kennen gelernt. Dort war ein heiß diskutiertes Thema ob man nun in Xamarin Projekten PCLs, also Portable Class Libraries, nehmen soll oder doch einfach ein geteiltes Projekt. Mehr oder weniger einhellig wurden hier die PCLs abgelehnt und auf, zwischen den einzelnen App-Projekten, geteilte „Shared Projects“ verwiesen. Am Idealsten wurde der Weg über ein geteilte .NET Standard 2.0, beziehungsweise 1.4 wenn eine UWP-App beteiligt ist, Library-Projekt empfunden.

Ein etwas störender Punkt hierbei ist jedoch, dass weder Visual Studio auf einem Windows Rechner, noch Visual Studio for Mac eine Projektmappenvorlage für eine solch Aufteilung mit sich bringt und man diese somit selber von Grund auf bauen muss. Dies wiederum lässt sich selbst für einen Anfänger wie mich schnell zusammenknöppfeln.

Hierbei habe ich kleinere Fallstricke kennen gelernt welche ich mit dieser Schritt-Für-Schritt-Anleitung für mich und für alle anderen beheben möchte. Es gibt sicherlich schnellere und effizientere Wege, der nun hier beschriebene hat einfach bei mir funktioniert.

Neues Projekt der Mappe hinzufügen
Mittels Add -> Add new Project -> Multiplatform -> Library -> .NET Standard Library das zukünftige Shared-Project der Mappe hinzufügen. Falls hierbei noch kein .NET Standard 2.0 verfügbar ist, kann dieses in Form des SDKs zu .NET Core 2.0 von Github herunterladen
und installieren. Nach einem Neustart der Entwicklungsumgebung ist es in der Liste bei der Erstellung eines neuen Projektes auswählbar. Ich wähle hierbei meist um in dem schon existierenden Namenschema zu bleiben einen Projektnamen wie MyProjectName.Core.

 

Benötigte Xamarin.Forms Pakete hinzufügen
Durch das Aufklappen des neuen Projektes und das Auswählens von Dependencies -> Add Package installiert man das benötigte Package Xamarin.Forms. Um Nummer sicher zu gehen dass alles kompatibel und erfolgreich eingebunden ist kann die Schritte Dependencies -> Update und Dependencies -> Restore durchführen.

 

Core Projekt mit Leben befüllen
Anschließend benötigt das Core Projekt ein Innenleben. Angefangen einer App.xaml / App.xaml.cs Datei. Diese kann aus dem bereits existierenden Projekt herüber kopiert werden oder man baut es nach Augenschein nach. Eine Sache von wenigen Minuten. Wieso hier manchmal Methodenaufrufe unterstrichen werden konnte ich bisher noch nicht herausfinden. Falls ich hier mehr in Erfahrungen bringen kann, wird es einen Korrekturbeitrag hierzu im Blog geben.

Core Projekt mit plattformspezifischen Projekten verknüpfen
Nun muss unser neues Projekt mit dem bestehenden, plattformspezifischen Projekten verbunden werden. Dies geschieht in dem man pro spezifisches Projekt den References Order öffnet und via Edit References das neue MyProjectName.Core hinzufügt. Anschließend kann das alte, geshared’te Projekt gelöscht werden

Benutzung von App() aktualisieren
Falls man nun dieses Projekt baut wird es zwei Fehler hervorbringen. Diese sind darauf zurück zu führen, dass in den plattformspezifischen Einstiegsmethoden (AppDelegate.cs beziehungsweise MainActivity.cs noch auf die alte App.cs Klasse verwiesen wird. Dies lässt sich lösen in dem man das neu erstellte geteilte Projekte einbindet. Hierzu reicht ein using MyProjectName.Core aus. Auch hierbei gilt, nicht durch etwaige „wird nicht verwendet“-Meldungen irritieren lassen.

Fertig
Nun kann man alles testen in dem man der MainPage Xaml Datei in using MyProjectName.Core einen temporären Inhalt gibt und auf Geräte beziehungsweise Simulatoren deployed.

[Videotipp] Lambda Function (Y Combinator) – Computerphile

by tobonaut

Generell, alle Videos des YouTube Channels „Computerphile“ (Twitter) sind sehenswert! Manche sind harte Kost andere amüsant und lustig.

Als Beispiel hier einmal Lambda Funktionen, deren theoretisch, mathematischen Hintergrund. Erinnert sehr an die eigene Studienzeit.

Es werden auch Themen aus der Anfangszeit der IT angesprochen als auch Open Source und Linux.

PS: Der Teil des Titels „Y Combinator“ ist nicht auf den allbekannte Startup Accelerator bezogen sondern erklärt diese mind blown