[Lesetipp] Get back to playground … emotionally – Swift Playgrounds ausgereizt

TL;DR

Wer einmal in die Erstellung eines komplexeren Swift Playground Book hinein schnüffeln mag, sollte sich unbedingt das freiverfügbare Slidedeck von der werten @codeprincess einmal genauer ansehen.


Auf der diesjährigen WWDC hat Apple die Swift Playground for iPad der Öffentlichkeit vorgestellt. Mit der Hilfe dieser App, beziehungsweise dieses Xcode Projekttypes lässt sich neben dem Einstieg in die Welt des Programmierens auch komplexe Frameworks verständlich und interaktiv gestalten.

Slidedeck von @codeprincess

Quelle: @codeprincess

Ich gebe zu, bis auf kleinere Codeschnippeseltests habe ich die Playgrounds (für Xcode) noch nie benutzt, auch die App für das iPad blieb mir bisher fern. Nichtsdestotrotz haben mich die Slides als auch das Beispiel von der wohl in der deutschsprachigen iOS-Szene sehr bekannten und charmanten Manu Rink aka @codeprincess beeindruckt und neugierig auf mehr gemacht.

Sie erklärt unter anderem einmal verständlich den Unterschied zwischen einem Swift Playground und einem Swift Playground Book. Bei letzterem steigt Manu auch gleich mit verständlichen, dennoch realitätsnahen Beispielen in die Slides ein. Zeigt hierbei manche Pitfalls auf und auf welche Ärgernisse man sich einstellen sollte.

Das Resultat, also der frei herunterladbare Playground, ist wie die Präsentation wunderschön mit Illustrationen ausgeschmückt und im gleichen Zuge lehrreich durchdacht.

Das Slidedeck in *.pdf-Form als selbstverständlich auch den Quelltext zum Playground findet ihr im passende Repository von codeprincess auf Github.

Auf Grund von semi-positiven Bemerkungen: Ja, bei dem Slidedeck geht es im späteren Verlauf um die Microsoft Cognitive Services, ja die Autorin ist bei Microsoft angestellt. Und ja, es ist mir völlig egal. Ich steh auf tolle Technologien, tolle Menschen und Community. Nicht jedoch auf ideologische Grabenkämpfe und IT-Stammtischparolen.

Ein Tag in der Zukunft – BMW i3, HoloLens und dem Arbeitsplatz 4.0

Selten sind die Nächte an denen man nach einen aufregenden Tag in sein Bett fällt und mit einem „wow“-Gefühl einschläft. Dies passierte mir vor wenigen Tagen nach dem ich diesen Tag gefühlt in der Zukunft verbracht habe.

Elektromobilität

Dank an den wohl liebsten Autoverrückten, Florian, konnte ich mit einem BMW i3 durch die schöne bayrische Landschaft Richtung München fahren. Vorbei ging die meist lautlose Fahrt an saftigen Wiesen, mittags-leutenden Kirchturmglocken und hupenden, münchnerischen Paketboten.
Kein störendes Motorengeblubber im Stau oder an der Ampel, kein Dauerlärm der davon abhält die Landschaft zu genießen und vor allem zu hören.
Fairerweise muss ich sagen, dass die selbe Strecke normalerweise über eine Autobahn führt und dort zu mindestens der BMW i3 mir sehr wenig Spaß als Beifahrer macht als auch durch den dann benötigten Range-Extender auch alles andere als umweltfreundlich und leise gewesen wäre.

Dennoch als Kuriosität des Tages gilt auf jeden Fall unser Tankstellenbesuch mit einem Elektroauto. Vollgetankt für acht Euro.

14310275_1109517029085382_9079978161567773539_o

Auf einen Blick – HoloLens

Dank netter Freunde durfte ich die noch nicht so ganz in der Öffentlichkeit verbreitete AR-Brille HoloLens von Microsoft ausprobieren. Trotz dem Faktum, dass es trotz meiner großen Brille nicht der alle beste Tragekomfort war, ist die Microsoft HoloLens bisher für mich die „seriöseste“ Brille im AR-, bzw. VR-Umfeld.
Im Gegensatz zu anderen AR-/VR-Headsets wie der Oculus Rift kommt die HoloLens ohne abführende Kabel aus. Hier durch wird es möglich, frei durch einen Raum zu stolzieren. Verdeutlicht wird dies durch das “Anpinnen” von Applikationsfenstern an einer beliebigen Wand. Vor einem der Browser, hinter einem der Terminkalender und vor einem auf dem Tisch baut man sich eine kleine Welt aus gestapelten Klötzchen. Dies wirkt schon sehr spacig auf den ersten Blick und macht Lust auf die Zeit, wo diese Gadgets allgegenwertig sein werden. Falls man Spaß an der Entwicklung von und mit UWP Apps, C# oder XAML wäre, hätte ich mich wohl noch mehr enthusiastisch gezeigt.

14310320_1297379426953560_6763773754578773936_o

Monaco di Baviera

Ach München. Nirgends liegt Snopheit und das einfache Dolce Vita so eng beieinander wie hier. Für mich wirkt die Stadt und deren Bewohner ehrlich und direkt. Wer dies nicht glaubt, der sollte U-Bahn zur Stoßzeit fahren und den Durchsagen der Zugführer lauschen.
Um die tolle Sonnen zu genießen gesellte ich mich bei wunderschönen, sommerlichen Wetter an die Isar und bestaunte die Stadt-Surfer nahe dem Englischen Garten. Chillige Atmosphäre und weltoffen gegenüber vielen ausländischen Touristen und Surfern ohne jedoch gekünstelt zu wirken.

Genau so stell ich mir das Zusammenleben in der Zukunft vor. Weltoffen, ehrlich und rücksichtsvoll zu allen Mitmenschen.

14305250_1297401396951363_5585556510860949485_o

IMG_2231

Arbeitsplatz 4.0 im #OfficeMitWindows

Der eigentliche Grund warum ich an diesem letzten Sommertag in München war, befindet sich im Schwabinger Norden nahe der A9. Microsoft zieht, beziehungsweise ist gezogen, in ein neues Büro gezogen.
Das ganze Projekt wird seit Monaten auf Instagram unter dem Hashtag #officemitwindows der Öffentlichkeit mitgeteilt und neugierig gemacht. Nun ermöglichte es Microsoft Deutschland bevor das Büro bezogen wurde, eine Tour durch, die manchmal noch sehr im Baustellenmodus befindliche, Büroräume teilzunehmen.

In illustrerer Runde ging es durch offene Büroküchen – Social Hubs genannt -, durch Großraumbüros, vorbei an Einzel- oder Teambüros und Ruhezonen. Hinaus auf eine der vielen Dachterrassen des Gebäudes.

Mir als nun langjähriger Bürobewohner fiel mir gleich etwas ins Auge: Flächendenkend Stehschreibtische, Möglichkeiten mobile Geräte zu laden oder an überall vorhandenen, großen Dell Bildschirme mit den unterschiedlichsten Kabeln anzuschließen.

Alles wirkt sehr clean und technisch in kubischen Formen. Kabelsalat scheint nicht zu existierend genau so wie Mülleimer – werden wohl in einem papierlosen Büro nicht mehr benötigt. Wie lange dieser künstliche Look während des alltäglichen Bürobetriebes bleiben wird, muss sich wohl noch zeigen.

Generell ist vieles sehr kühl gehalten und lenkt nicht von dem zu bewältigenden Task ab. Einzig wenige Stilelemente wie die großen Stehlampen oder die an Nierentisch angelehnten Großbürotische durchbrechen die moderne Kühle des Bürokomplexes. Für mich persönlich waren die sehr gesättigten Farben sehr augenaufregend. Die verschiedenen Büroteile sind natürlich in den Microsoft-typischen Vollfarben eingefärbt. Zu mindestens auf den ersten Blick für mich sehr aufwühlend.

Zum Abschluss der Tour, bei sehr leckeren Catering, konnte man auch Fragen zum alltäglichen Arbeitsleben bei der Microsoft Deutschland GmbH stellen. Mich interessierte vor allem wie Angestellte die #vertrauensarbeitszeit beziehungsweise den #vertrauensarbeitsort sehen. Ich sehe hier neben den etwaigen Vorteilen für den Arbeitnehmer auch die Nachteile, dass man immer und überall für das Projekt beziehungsweise den Arbeitgeber verfügbar sein soll oder gar muss. Diese Bedenken wurden mir von mehreren Seiten als nicht existent genommen.

Es ist schon komisch, dass ein starrer und über viele Jahre als „spießigen“ Global Player wie Microsoft nun selbst Startups aufzeigt wie die moderne Arbeitswelt und Mitarbeitermotiviation funktioniert.

Schon allein wegen dem Gutschein für die Digital Eatery – dem öffentlich zugänglichen Café innerhalb des Bürokomplexes – werde ich mir das #officemitwindows wohl noch einmal ansehen (müssen).

IMG_2245 IMG_2249

IMG_2255 IMG_2256

IMG_2261 IMG_2266

IMG_2268 IMG_2283

IMG_2285 IMG_2288

Fazit

Alles in allem war es ein toller Tag mit vielen neuen Eindrücken und Gedankenansätzen wie unserer Zukunft in gesellschaftlicher, als auch in beruflicher Sicht aussehen könnte. Wenn wir alle Mut und Engagement zeigen, könnten wir diese bereits von wenigen Menschen gelebte Utopie eventuell auch für alle erreichbar machen.
Vielen herzlichen danke an Flo T. und Flo K. sowie Magdalena und Anna Lena von Microsoft Deutschland für den aufregenden Tag. Ich hoffe auf eine Wiederholung.

Anmerkung

Merci @schnittgemuese für die Korrektur von HoloLense zu HoloLens.

Korrektur HoloLens

Swift: Array Extensions für einen gewissen Objekttyp

Die Features von Swift sind vielseitig. Eines davon ist das es möglich ist, für einen genauen Typ eines Arrays Extensions zu definieren. Somit hat man innerhalb der Methoden und Computed Variables die volle Datenmacht des jeweiligen Types.

Swift Playground

Die spezielle Schreibweise des Extensionkopfes extension Array where Element : Vehicle zeigt schon genau an, für welchen Typ man diese Erweiterung eines Arrays schreibt.

Als Beispiel dient ein rudimentäres Vehicle-Objekt:

/// Represents an abstract data model
/// of a vehicle 
class Vehicle
{
    /// Vendor of the vehicle
    var vendor  = ""
    
    /// Defines wether the vehicle is able to fly
    var flyable = false
    
    /// Defines the type of the vehicle
    var type = VehicleType.Unknown
    
    // MARK: - Init -
    
    convenience init(vendor: String, flyable: Bool, type: VehicleType)
    {
        self.init()
        
        self.vendor     = vendor
        self.flyable    = flyable
        self.type       = type
    }
}

Die passende Extension hierzu lässt sich wie folgt erstellen:

extension Array where Element : Vehicle
{
    /// Contains all flyable vehicles
    var flyables: [Vehicle]
    {
        return self.filter({$0.flyable})
    }
    
    /// Returns all vehicles of the given type
    ///
    /// - parameter type: Desired VehicleType
    /// - return        : List of vehicles with desired type
    func ofType(type: VehicleType) -> [Vehicle]
    {
        return self.filter({$0.type == type})
    }
}

Diese neuen Funktionen und Variablen lassen sich schließlich wie gewohnt aufrufen. Als Beispielsausgabe:

// Create dataset

var vehicles = [Vehicle]()
vehicles.append(Vehicle(vendor: "Eurocopter", flyable: true, type: .Helicopter))
vehicles.append(Vehicle(vendor: "BMW", flyable: false, type: .Car))
vehicles.append(Vehicle(vendor: "Audi", flyable: false, type: .Car))

// Call custom array type extension method

vehicles.flyables
// Output: [{vendor "Eurocopter", flyable true, Helicopter}]

vehicles.ofType(.Car)
// Output: [{vendor "BMW", flyable false, Car}, 
//          {vendor "Audi", flyable false, Car}]

Linktipp: Wie muss ein modernes Terminal aussehen?

Für viele ist es ein nicht wegzudenkender, alltäglicher Wegbegleiter. Das grafische  Terminal.

Wie jedoch ein Terminal aussehen muss damit es nicht altbacken, dafür aber auf verschiedenen Gerätetypen nahezu identisch aussieht und funktionieren kann?

Quelle: canonical.com

Quelle: canonical.com

Diese Frage stellte sich der Design Team von Canonical in Hinsicht zum Convergent terminal in Ubuntu. In einem entsprechenden, englischsprachigen Blogpost wird dieser Prozess beziehungsweise das Ergebnis (PR-angereichert) aufgezeigt.

Manchen stecken hinter Werkzeugen die wir täglich nutzen wohl mehr Gedanken als was man auf den ersten Blick denkt.

Blogpost: design.canonical.com

Linktipp: Bash in Windows 10 einmal ausgereizt

Vor wenigen Tagen veröffentlichte ich einen Artikel, wie man einfach in das Thema Windows 10 und Bash einsteigen kann.

Wer tiefer einsteigen möchte, dem sei der Artikel „Bash on Windows“ von Johannes Schriewer (Twitter, Github) ans Herz gelegt. Hier beschreibt Jo knapp und prägnant was man mit der Bash, beziehungsweise dem Ubuntu-Subsystem) in Windows 10 grundlegendes anstellen kann. Hier durch kann das neue Feature zu einem formidables Arbeitswerkzeug für allmögliche Aufgabenstellungen werden.

Terminal (blog.dunkelstern.de)

Quelle: blog.dunkelstern.de

Neben der wohl einfachsten Weg, die ich je für die Bash auf Windows 10 zu installieren, gesehen habe, beschreibt Jo ebenfalls noch wie man eine Desktopverknüpfung zur Bash erstellt und, für manche Einsatzzwecke unersetzlich, wie man Linux Programme mit grafischer Oberfläche in Windows starten kann.

Lohnt für jeden, der mehr als nur ein „gewöhnliches“ Terminalfenster für die tägliche Arbeit benötigt.

Ansonsten bietet der Blog von Johannes allerhand spannendes rund um Linux, Apple, Networking und alles thematisch dort dazwischen liegt.

“+”-Operator bei outlook.com benutzen

Eventuell ist dem ein oder anderen auch mal dieser Gedanke in den Sinn gekommen: “Woher zum Henker haben die jetzt meine Email-Adresse?”. Vor allem ärgerlich wenn man eigentlich selber stark darauf aufpasst wem man jetzt die “seriöse” Adresse gibt.

Ein Grund hierfür ist natürlich der alltägliche “Email-Adressen-Handel” wo auch große und eigentlich nette Firmen mitmachen. Um dies einmal herausfinden kann man sich bei neuen Diensten mit einer speziellen Email-Adresse registrieren.

Geht man davon aus, dass die normale Adresse “john.doe@outlook.com” heißt, kann man nun mit einem “+”-Zeichen ein Postfix anhängen. Beispielsweise: “john.doe+servicename@outlook.com”. Dies adressiert weiterhin John Doe da das “+”-Zeichen und alles was dem bis zum ”@“-Zeichen vom Server ignoriert wird. Technisch handelt es sich hier um eine Implementierung des RFC 5233.

Bei etlichen Email Providern werden hierdurch automatisch “Ordner” angereichtet und zu den Clients synchronisiert. Bei outlook.com im Web landen alle Emails trotzdem im normalen Posteingang. Um dies zu ändern reicht eine simple Regel aus.

Ich persönlich nutze es um meine empfangen Emails thematisch zu gliedern.

rule
resultat

oh-my-zsh für die Windows 10 Bash installieren

Es ist ja schon toll, dass Windows 10 jetzt eine vollwertige Bash enthält. Wie manch User ohne dieses essentielle Hilfsmittel bei früheren Versionen von dem Betriebssystem aus Redmond ausgekommen sind bleibt mir wohl für immer ein Rätsel.

Nichtsdestotrotz, es geht immer besser. Nämlich mit der zsh (Z-Shell) und explizit mit der freien Erweiterung “oh-my-zsh”.

Einzig was ihr dafür bewerkstelligen müsst um in den Genuss dieser Erweiterung zu kommen ist natürlich erst einmal die Bash aka “Linux-Subsystem” für Windows 10 zu installieren. Ist dies erledigt reichen wenige Zeilen Befehle in der Bash aus um sie noch besser zu machen.

Als erstes muss die zsh an sich installiert werden:

sudo apt-get install zsh

Anschließend noch git:

sudo apt-get install git

Zum Schluss wird noch das eigentlich oh-my-zsh installiert:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Insofern alles geklappt habt, seht ihr nach einem schließen und wieder öffnen der Bash bereits die neue “Ansicht”.

bash 5

b7

Warum oh-my-zsh?

Alle Punkte sind natürlich rein subjektiv. Mir persönlich gefällt das Terminal in diesen Setup aus folgenden Gründen besser als eine “pure” Bash.

  1. Ich sehe sofort in welchen git-Branch ich bin
  2. Tabben durch Files die auf das Gesuchte matchen
  3. oh-my-zsh ist sehr Theme-able mit einer großen Community
  4. Erweiterbar mit vielen Add Ons und Forks.

Weitere Informationen

Es gibt noch sehr viel mehr spannendes rund die oh-my-zsh zu entdecken. Alle Features, angefangen von Plugins und Themes bis hin zu Einstellungen für Experten findet man auf der Github Seite von Robby Russel.