Sie sind hier : sebastian1012.bplaced.net/ homepage-neu / neuigkeiten / Entwickler-Blog.php

aaaa5
RSS Reader

https://entwickler.de/feed/rss2

Planet Android: Huawei vs. Android, Feature für Google Photos und Asus Zenfone 6 mit Pop-up-Kamera (23.05.2019 16:29:56)

Alle gegen Einen ist unfair! Und trotzdem kämpft Huawei gerade um seine Geschäftsbeziehungen mit Google, ARM und Microsoft Durch den Handelsstreit zwischen den USA und China gibt es womöglich keine Android-Updates für Huawei-Geräte mehr Prompt kündigt Huawei ein eigenes Betriebssystem an ? doch das war nicht das Ende vom Lied Außerdem soll Google Photos eine smarte Colorierung erhalten und das Asus ZenFone 6 kommt mit Pop-up-Kamera

Ein Smartphone ohne Betriebssystem ist nichts anderes als ein Haufen Glas und Siliziumchips ? und so ging Googles Ankündigung nicht nur Huawei-Nutzern durch Mark und Bein Denn Google hat Huawei die Android-Lizenz entzogen ? allerdings nicht freiwillig!

Huawei ohne Android-Lizenz

Die Trump-Regierung hat im Zuge ihres Handelsstreits mit China das Unternehmen Huawei kurzer Hand auf die ?Black List? gesetzt US-Firmen dürfen daher ohne Genehmigung der Regierung keine Geschäfte mehr mit Huawei machen Die Folge: Smartphones der chinesischen Marke steht ab sofort kein vollständiges Android-Betriebssystem mehr zur Verfügung; davon sind auch alle gängigen Apps von Google betroffen Diese Nachricht brachte die Android-Welt zum Zittern, doch Google gab in einem kurzen offiziellen Statement ein wenig Entwarnung:

Das Lizenzverbot betrifft demnach keine Geräte, die bereits verkauft wurden oder im Lager auf ihren Verkauf warten Wer also ein Huawei-Smartphone besitzt, kann auch weiterhin den Google Play Store, Google Play Protect usw nutzen Zu diesen Geräten zählen beispielsweise folgende:

? Huawei P20 lite
? Huawei P20 Pro
? Huawei P30 lite
? Huawei P30 Pro
? Huawei Mate 9
? Huawei Mate 20
? Huawei Mate 20 lite
? Huawei Mate 20 Pro
? Huawei Y6

Huawei ist es allerdings nicht mehr erlaubt, neue Versionen von Android auf den Geräten zu veröffentlichen und damit steht wahrscheinlich kein Update auf das bevorstehende Android Q 10 zur Verfügung

Wer braucht schon Android ? Huawei mit eigenem Betriebssystem

Doch wo ein Wille ist, ist auch ein Huawei-Konzern! Und der reagierte als einer der weltweit größten Telekommunikations- und Netzwerkausrüster erstmal gelassen Man sei mit Google bereits im Gespräch über eine Lösung

Und um auch zukünftig nicht mehr auf Googles Betriebssystem angewiesen zu sein, habe Huawei bereits ein eigenes Betriebssystem entwickelt und das könnte bereits im Frühjahr kommenden Jahres einsatzbereit sein Laut dem Chef von Huaweis Verbrauchersparte, Yu Chengdong, sei das Huawei-OS mit Android-Apps kompatibel

Und auch die Trump-Regierung ruderte ein klein Wenig zurück und lockerte ihre strengen Maßnahmen gegen den chinesischen Konzern Mit ?sofortiger Wirkung? sei schließlich eine Frist von 90 Tagen gemeint

Und jetzt ? alles gut?

Nachdem diese Nachricht erst einmal verdaut war, ließ die nächste Hiobsbotschaft nicht lange auf sich warten Wie zu lesen ist, stellt auch der Chipentwickler ARM jegliche Zusammenarbeit mit Huawei ein Chiptechnologien von ARM befinden ich in allen Prozessoren der Huawei-Geräte ? auch bei Huawei-Chips aus eigener Entwicklung Zwar ist ARM in Großbritannien ansässig und gehört dem japanischen Technologiekonzern Softbank, doch die Chip-Designs von ARM enthalten wiederum Technologien, die aus den USA stammen

Für Huawei wäre das wohl der Super-GAU, denn ohne ARM gibt es keine Mobilprozessoren für den Konzern Anders als bei einem OS ließe sich dafür auch wohl weniger schnell eine passende Alternative finden Und auch Microsoft kündigte an, seine Geschäftsbeziehungen mit Huawei zu beenden

Das Ende vom Lied…

US-Behörden verdächtigten Huawei, seine unternehmerische Tätigkeit zur Spionage für China zu nutzen Beweise dafür hat die US-Regierung natürlich noch nicht öffentlich vorgelegt und Huawei wies bislang alle US-Vorwürfe zurück In diesem Handelsstreit wird es allerdings nicht nur einen Verlierer geben Schließlich gilt das Silicon Valley als Mekka der digitalen Entwicklung Doch wer will schon seine Zukunftstechnologien in einem Land gestalten und vorantreiben, in dem restriktive Politik gerade an der Tagesordnung steht? Der sagenumwobene Mythos des Silicon Valley wird damit langsam aber sicher zerstört, und das könnte die USA technologisch ziemlich zurückwerfen

Die Colorierung für Schwarz-Weiß-Fotos kommt…bald

Doch die Welt ist nicht immer nur schwarz-weiß! Das hat sich auch Google auf die Fahnen geschrieben und bringt eine intelligente Colorierung für Schwarz-Weiß-Fotos ? irgendwann jedenfalls

Ein bisschen mehr Farbe, bitte!

Die Google I/O 2019 ist vorbei und hatte gefühlt 100 Ankündigungen im Gepäck Bereits auf der Google I/O im vorigen Jahr hatte das Team von Google Photos eine intelligente Colorierungsfunktion für Schwarz-Weiß-Fotos angekündigt ? und sie haben Wort gehalten, also beinahe In Bildern mit Schwarz-Weiß- und Grautönen können Algorithmen Grundfarben erkennen und die Bereiche entsprechend einfärben Natürlich in bester Qualität ? versteht sich! Und was super klingt, will man natürlich gerne ausprobieren Doch da liegt der Haken, denn ein genauer Zeitraum für die Veröffentlichung des Features wurde nicht genannt Zumindest nicht genau, denn schließlich könne eine Beta ?soon? folgen

Doch wie obigem Tweet zu entnehmen ist, nutzen wohl zumindest Google-Mitarbeiter eine erste Version und zeigen eben Beispiele dafür, wie es aussehen könnte Allerdings ist auch klar, dass noch an einigen Schrauben gedreht werden muss:

You can see we have some work to do; my grandfather didn?t wear pink pants to his wedding!

Ja wo bleibt es denn?

Das Feature zur Colorierung ist schon beeindruckend, aber heute auch keine Weltneuheit mehr Und obendrauf ist sie ja immer noch nicht da! Ob man bei der Ankündigung wirklich nicht abschätzen konnte, wie lange so eine Perfektionierung wirklich dauert?! Nichtsdestotrotz hoffen wir natürlich, das noch nicht verfügbare, neue Feature bald selbst ausprobieren zu können

Asus hat den Dreh raus!

So eine Kamera im Display nimmt aber auch ganz schön viel Platz ein! Doch Asus schafft Abhilfe und integriert im ZenFone 6 einfach mal eine Pop-up-Kamera Und nicht nur ausfahren lässt sie sich das Meisterwerk Laut Hersteller lässt sich die Dualkamera per Motor zwischen Ausgangs- und Endposition um 180 Grad rotieren und anhalten Verrenkungen beim Fotografieren sind also passé!

Quelle: Android Police

Klappkamera und Monsterakku

Wird die Kamera in die entsprechende Richtung gedreht, übernimmt sie die Funktion der Frontkamera Das Asus-Smartphone verfügt über eine 48 Megapixel- und eine Ultraweitwinkelkamera 125 Grad mit 13 Megapixeln Obendrauf ist eine Echtzeit-Verzerrungskorrektur integriert

Das Smartphone von Asus misst 6,4 Zoll mit 2340 x 1080 Pixel Bildschirm Angetrieben wird es von Qualcomms Top-CPU Snapdragon 855 Prozessor Außerdem wiegt es mit seinem 5000 Milliamperestunden mAh starken Akku etwa 190 Gramm Es gibt verschiedene Versionen mit 6 oder 8 GB RAM und 64 GB, 128 GB und 256 GB Speicher für Fotos, Videos und Co Mit Android 90 Pie und in den Farben Silber bzw Schwarz soll das ZenFone 6 Ende Mai auf den Markt kommen Ab 500 Euro soll das Smartphone dann über die Ladentheke wandern

Der Planet Android ist bunt, dreht sich schnell, entwickelt sich ständig weiter Wir bleiben neugierig und beobachten ihn weiter ? bis bald!

Der Beitrag Planet Android: Huawei vs Android, Feature für Google Photos und Asus Zenfone 6 mit Pop-up-Kamera ist auf entwicklerde erschienen


PhpStorm 2019.2 EAP veröffentlicht (23.05.2019 13:30:55)

Das Early-Access-Programm zu PhpStorm 20192 ist an den Start gegangen Neben neuen Features ? wie den lange erwarteten RegExp-Injections ? gibt es Verbesserungen in der Leistung und Stabilität Darüber hinaus wurden wieder einige Fehler behoben

PhpStorm 20192: Die Highlights im Überblick

Die aktuelle Version von PphStorm 20192 wartet laut des Blogbeitrags von JetBrains mit einer Vielzahl spannender, neuer Features auf: Neben RegExp-Injektionen und typisierten PHP 74-Eigenschaften gibt es zudem eine Unterstützung für das cURL-Format im HTTP-Client, eine EditorConfig-Unterstützung, sowie einen neuen Look für Inspection Tooltip

RegExps-Tool erleichtert die Arbeit

Mit RegExps wurde nun ein nützliches Tool zum Suchen und Ersetzen in Zeichenfolgen integriert In PhpStorm wurden Muster für reguläre Ausdrücke bisher nicht standardmäßig hervorgehoben und sahen genauso aus wie normaler Text Wenn z B Language-Injections verwendet wurden und es Hervorhebungen gab, war es bisher umständlich, dies manuell im gesamten Code zu tun PhpStorm 20192 bietet nun eine volle Unterstützung für RegExps in PHP und automatischen Injections Dies bedeutet, dass jedes Mal, wenn im Code  preg_ -Funktionen verwendet werden, das Muster hervorgehoben und auf Richtigkeit überprüft wird

PppStorm 20192: Pattern werden markiert und überprüft Quelle: https://blogjetbrainscom/phpstorm/2019/05/phpstorm-2019-2-early-access-program-is-open/

Außerdem können Entwurfsmuster jetzt direkt in der IDE getestet werden Dazu mit dem Mauszeiger über das Pattern gehen und die Alt-Eingabetaste drücken, um die Schnellaktion „Check RegExp“ anzuzeigen

PhpStorm 20192 EAP Check RegExp Quelle: https://blogjetbrainscom/phpstorm/2019/05/phpstorm-2019-2-early-access-program-is-open/

 

PHP 74: Typisierte Eigenschaften

In diesem ersten EAP-Build wurde die Unterstützung für typisierte Eigenschaften implementiert Dies umfasst das Hervorheben und Auflösen Typüberprüfungen innerhalb der IDE folgen ebenfalls in Kürze Um den jeweiligen Code auf PHP 74 zu migrieren und die Codequalität mit typisierten Eigenschaften zu verbessern, hat PhpStorm eine spezielle Schnellkorrektur implementiert Dazu mit dem Cursor auf eine Eigenschaft ohne Typ gehen und Alt + Enter drücken Dann „Add declared type for the field“ wählen

Migrating to PHP 7

by Stefan Priebsch thePHPcc

A practical introduction to Kubernetes

by Robert Lemke Flownative GmbH

PhpStorm erkennt den Typ automatisch anhand von PHPDoc, Standardwert oder dem Argumenttyp In den nächsten Builds wird laut der Blogankündigung eine Unterstützung für alle anderen Funktionen hinzugefügt

Release Notes und Download der neuen Version

In den kommenden Wochen wird es immer wieder Neues aus dem Early Access Programm zu PhpStorm 20192 EAP geben Die aktuelle Version steht hier zum Download bereit Via Update in der JetBrain Toolbox App steht die aktuelle Version ebenfalls zur Verfügung Eine Übersicht über alle weiteren Änderungen im PhpStorm 20191 EAP finden sich in den Release Notes

Der Beitrag PhpStorm 20192 EAP veröffentlicht ist auf entwicklerde erschienen


GitLab 11.11: Neuerungen für Docker Container und Kubernetes Cluster (23.05.2019 10:10:18)

GitLab 1111 ist da und bringt neue Features mit Für Nutzer der kostenlosen Version gibt es ein Update für die Arbeit mit Docker Containern unter Windows In der bezahlten Version ist es nun außerdem möglich, einem Merge Request mehr als einen Nutzer zuzuweisen

GitLab 1111 ist da und bringt wieder einige neue Features mit Darunter sind sowohl Neuerungen für alle Nutzer der Plattform, als auch solche, die nur in den bezahlten Versionen verfügbar sind Ein Update, das auch in den kostenlosen Versionen von GitLab und GitLabcom verwendet werden kann, findet sich im GitLab Runner für Docker Container auf Windows Docker Container können unter Windows jetzt direkt ausgeführt werden, ohne dabei auf den Shell Executor zugreifen zu müssen Dazu bringt GitLab 1111 einen verbesserten Support für PowerShell über das GitLab CI/CD mit, sowie Helper Images zur Ausführung von Containern unter Windows

GitLab 1111: Neues für Container Deployment

Nur in GitLab, nicht in der online gehosteten Version GitLabcom, ist eine weitere Neuerung aus dem Container-Umfeld zu finden Neben Kubernetes Clustern auf Projekt- und Gruppenlevel können Cluster nun auch auf dem Level der GitLab-Instanz erstellt werden Diese stehen dann allen untergeordneten Projekten und Gruppen zur Verfügung Diese Neuerung ist in der kostenlosen Version GitLab Core, sowie allen kostenpflichtigen Varianten der selbst gemanagten GitLab-Version verfügbar

Ein weiteres neues Feature in GitLab soll die Zusammenarbeit bei Merge Requests verbessern Darum ist es nun möglich, auch dafür mehrere Nutzer zuzuweisen Dieses Feature steht in GitLab und GitLabcom zur Verfügung, aber nur in den kostenpflichtigen Versionen

Auch für Nutzer der Core- und Free-Produkte bringt das Release aber noch zahlreiche weitere Funktionen mit Dazu zählt beispielsweise, dass nun automatisch Deployment-Nachrichten in Slack-Channels und Mattermost-Chats veröffentlicht werden können Außerdem können nun auch Gäste auf Release-Seiten von Projekten zugreifen, haben aber weiterhin eingeschränkte Zugriffsrechte darauf So ist der Download von Artefakten in Zukunft möglich, aber nicht der des gesamten Quellcodes Auch die einzelnen Commits bleiben unsichtbar für Gäste

Weitere Informationen zu GitLab 1111 können dem Blogpost zum Release entnommen werden

Der Beitrag GitLab 1111: Neuerungen für Docker Container und Kubernetes Cluster ist auf entwicklerde erschienen


Tutorial: So implementiert man ein Switch-Case Statement in Python (23.05.2019 09:57:16)

Switch-Case Statements sind ein mächtiges Kontrollwerkzeug in der Programmierung In diesem Tutorial bietet Sreeram Sreenivasan eine Anleitung zur Verwendung von Switch-Case Statements in Python

Das Switch-Case Statement ist ein mächtiges Programmierfeature, das anhand des Werts einer Variablen oder eines Ausdrucks erlaubt, den Ablauf des Programms zu kontrollieren Man kann es dazu verwenden, in Abhängigkeit von einem Variablenwert zur Laufzeit verschiedene Codeblöcke auszuführen Hier ist ein Beispiel eines Switch Statements in Java:

public static void switch_demoString[] args {
 
        int month = 8;
        String monthString;
        switch month {
            case 1:  monthString = "January";
                     break;
            case 2:  monthString = "February";
                     break;
            case 3:  monthString = "March";
                     break;
            case 4:  monthString = "April";
                     break;
            case 5:  monthString = "May";
                     break;
            case 6:  monthString = "June";
                     break;
            case 7:  monthString = "July";
                     break;
            case 8:  monthString = "August";
                     break;
            case 9:  monthString = "September";
                     break;
            case 10: monthString = "October";
                     break;
            case 11: monthString = "November";
                     break;
            case 12: monthString = "December";
                     break;
            default: monthString = "Invalid month";
                     break;
        }
        SystemoutprintlnmonthString;
}

Und so funktioniert das Switch-Case Statement:

  1. Der Compiler generiert eine Sprungtabelle für das Switch-Case Statement
  2. Switch-Variable oder -Ausdruck wird einmal evaluiert
  3. Das Switch Statement schlägt die evaluierte Variable bzw den Ausdruck in der Sprungtabelle nach und entscheidet direkt, welcher Codeblock ausgeführt werden soll
  4. Wenn keine Übereinstimmung gefunden wird, wird der Code unter dem Default Case ausgeführt

Im obigen Beispiel wird in Abhängigkeit vom Variablenwert month eine entsprechende  Nachricht angezeigt In diesem Fall, month = 8, wird August im ausgegeben

Switch Statements

Obwohl beliebte Sprachen wie Java oder PHP Switch Statements als eingebautes Feature besitzen, ist es überraschenderweise bei Python nicht so Daher könnte man der Versuchung erliegen, eine Serie von If-Else-Blöcken zu erstellen und eine If-Bedingung für jeden Fall des Switch Statements festzulegen

Allerdings wird aufgrund der Sprungtabelle ein Switch Statement viel schneller sein als eine If-Else-If-Leiter Anstatt jede Bedingung sequenziell zu evaluieren, muss in einer Sprungtabelle jede evaluierte Variable bzw jeder evaluierte Ausdruck nur einmal nachgeschlagen werden Dann erfolgt der direkte Sprung zum entsprechenden Codezweig, um ihn auszuführen

Lesen Sie auch: Eine Einführung in Python – das Tutorial

Switch Statements in Python implementieren

Die Python-Art, Switch Statements zu implementieren, ist das Verwenden der mächtigen Dictionary Mappings, auch bekannt als Associative Arrays Sie bieten einfache one-to-one Key-Value Mappings

Der untere Code zeigt die Python-Implementierung des obigen Switch Statements Im folgenden Beispiel erstellen wir ein Dictionary mit dem Namen switcher, um alle Switch-artigen Fälle zu speichern

def switch_demoargument:
    switcher = {
        1: "January",
        2: "February",
        3: "March",
        4: "April",
        5: "May",
        6: "June",
        7: "July",
        8: "August",
        9: "September",
        10: "October",
        11: "November",
        12: "December"
    }
    print switchergetargument, "Invalid month"

Im obigen Beispiel wird ein Argument gegen das Dictionary Mapping switcher geprüft, wenn man es an die switch_demo-Funktion übergibt Wird ein Match gefunden, wird der assoziierte Wert ausgegeben Ansonsten erfolgt die Ausgabe eines Default Strings ?Invalid Month?

Dictionary Mapping für Funktionen

Jetzt wird es spannend Die Werte des Python Dictionary können jeglichem Datentypus angehören Man muss sich daher nicht auf Konstanten beschränken Integer, Strings, sondern man kann auch Funktionsnamen und Lambdas als Werte verwenden

Zum Beispiel kann man das obige Switch Statement auch implementieren, indem man ein Dictionary mit Funktionsnamen als Werte erstellt In diesem Fall ist switcher ein Dictionary aus Funktionsnamen, und nicht aus Strings

def one:
    return "January"
 
def two:
    return "February"
 
def three:
    return "March"
 
def four:
    return "April"
 
def five:
    return "May"
 
def six:
    return "June"
 
def seven:
    return "July"
 
def eight:
    return "August"
 
def nine:
    return "September"
 
def ten:
    return "October"
 
def eleven:
    return "November"
 
def twelve:
    return "December"
 
 
def numbers_to_monthsargument:
    switcher = {
        1: one,
        2: two,
        3: three,
        4: four,
        5: five,
        6: six,
        7: seven,
        8: eight,
        9: nine,
        10: ten,
        11: eleven,
        12: twelve
    }
    # Get the function from switcher dictionary
    func = switchergetargument, lambda: "Invalid month"
    # Execute the function
    print func

Obwohl die obigen Funktionen recht simpel sind und nur Strings ausgeben, kann man diesen Ansatz verwenden, um umfangreiche Codeblöcke innerhalb jeder Funktion auszuführen

Wenn man Methoden auf Objekten aufruft, kann man sogar eine Dispatch-Methode verwenden, um dynamisch zu definieren, welche Funktion während der Laufzeit aufgerufen werden soll

class Switcherobject:
    def numbers_to_monthsself, argument:
        """Dispatch method"""
        method_name = 'month_' + strargument
        # Get the method from 'self' Default to a lambda
        method = getattrself, method_name, lambda: "Invalid month"
        # Call the method as we return it
        return method
 
    def month_1self:
        return "January"
 
    def month_2self:
        return "February"
 
    def month_3self:
        return "March"
 

Auf dem weitergegebenen Argument basierend wird die eingebaute getattr-Funktion Objektmethoden mit dem spezifischen Namen aufrufen

Vorteil der Python-Herangehensweise

Da Python-Dictionaries während der Laufzeit verändert werden können Hinzufügen, Entfernen oder Aktualisieren von Key-Value-Paaren, kann das Switch Statement einfach und schnell geändert werden Hier ist ein Beispiel dafür:

def zero:
    return "zero"
 
def one:
    return "one"
 
def two:
    return "two"
 
switcher = {
        0: zero,
        1: one,
        2: two
    }
 
 
def numbers_to_stringsargument:
    # Get the function from switcher dictionary
    func = switchergetargument, "nothing"
    # Execute the function
    return func
 
Input: numbers_to_strings1
Output: One
 
Input: switcher[1]=two #changing the switch case
Input: numbers_to_strings1
Output: Two

Switch-Case ist ein sehr hilfreiches Programmierkonstrukt, das nicht nur bessere Performance als If-Else-Statements liefert, sondern auch einen besser verwaltbaren Code ermöglicht Wenn ihr euch durch das Fehlen von Switch Statements in Python eingeschränkt gefühlt habt, dann wird euch das obige Tutorial hoffentlich bei der Implementierung behilflich sein können

Der Beitrag Tutorial: So implementiert man ein Switch-Case Statement in Python ist auf entwicklerde erschienen


Windows 10 May 2019 ist da ? für private und kommerzielle Anwendung (22.05.2019 15:26:07)

Das neue Feature-Update ist da: Windows 10 May 2019 kann installiert werden, wenn die Suche nach Updates manuell angestoßen wird Auch für kommerzielle Zwecke ist die neue Version Windows 10 Version 1903 durch WSUS, VLSC und andere Systemmanagement-Software installierbar

Microsoft hat Windows 10 May 2019 zum Download freigegeben, sowohl für private als auch kommerzielle Nutzung Bisher war das Feature-Update nur für Insider und im Release Preview Ring verfügbar Um einen möglichst stabilen Build zu erhalten, war der Preview-Modus dieses Mal verlängert worden, und auch trotz der Verfügbarkeit wird das Update nicht wie bisher an alle Windows-10-Anwender ausgerollt

Windows 10 May 2019 installieren

Um das neue Feature-Update für Windows 10 zu installieren, muss zunächst manuell nach Updates gesucht werden Einstellungen > Update und Sicherheit > Nach Updates suchen Nach dem Herunterladen kann eine Zeit zur Installation ausgewählt werden

Unter Windows 10 Version 1803 oder 1809 kann vor dem Download zusätzlich ein Button zum Herunterladen und Installieren erscheinen, wenn das neueste Update vom 21 Mai oder später installiert ist Das neue Verfahren mit dem wählbaren Download-Zeitpunkt steht in Zusammenhang mit Microsofts neuer Update-Strategie, wir berichteten

Daneben gibt es auch einen anderen Weg, das Feature-Update zu installieren: Auf der Webseite zum Herunterladen von Windows 10 ist es schon gelistet

Kommerzielle Anwender

Windows 10 May 2019 Windows 10 Version 1903 hält einige neue Features für kommerzielle Nutzer bereit IT-Administratoren sollten zunächst sicherstellen, dass die benötigten Anwendungen, Geräte und Infrastrukturen mit dem neuen Update kompatibel sind Sie können zur Installation z B Windows Server Update Services WSUS oder Windows Update for Business verwenden Windows Update for Business erhält mit dem Update einige Neuerungen, die in einem Blogeintrag zusammengefasst wurden

Alle weiteren Informationen zur Installation des neuen Feature-Updates bietet der Windows-Blog

Der Beitrag Windows 10 May 2019 ist da ? für private und kommerzielle Anwendung ist auf entwicklerde erschienen


Ember 3.10: Spitze Klammern für weitere Komponenten-Arten nutzbar (22.05.2019 15:13:48)

Mit Ember 310 haben es vier neue Features in Emberjs geschafft Auch für das CLI sind zwei neue Features im Release enthalten Vor allem wurde an der Erweiterung der Einsatzbereiche für spitze Klammern gearbeitet

Ember 310 ist da Das Release umfasst wie immer neue Versionen von Emberjs, Ember Data und dem Ember CLI, die gemeinsam versioniert werden Bei Ember Data hat sich nichts getan: Hier stellt Ember 310 nur ein Re-Release von v393 dar Emberjs hat hingegen gleich vier neue Features bekommen Zwei davon betreffen die Invocation-Syntax mit spitzen Klammern, die als Alternative zu den geschweiften Klammern eingeführt wurde Die spitzen Klammern können nun auch für in einander geschachtelte Komponenten verwendet werden, sowie für drei Komponenten, die vorgefertigt mit Emberjs ausgeliefert werden Dabei handelt es sich um input, link-to und textarea, deren APIs der neuen Syntax entsprechend angepasst wurden

Ember 310: Neue Features für Emberjs und Ember CLI

In Emberjs kann RouteInfo nun außerdem Metadaten spezifisch für die jeweilige Anwendung enthalten Ein weiteres neues Feature von Emberjs stellt zugleich eine der beiden Neuerungen am CLI dar Beide Bestandteile von Ember unterstützen nun die Verwendung von nativen Decorators Beim zweiten neuen Feature für das CLI handelt es sich hingegen um eine wegfallende Funktion: Der Support für Node 6 wurde final entfernt

Weitere Informationen zu Ember 310 können dem offiziellen Blogpost zur Version entnommen werden

Der Beitrag Ember 310: Spitze Klammern für weitere Komponenten-Arten nutzbar ist auf entwicklerde erschienen


Women in Tech: ?Rückschläge und ?Misserfolge? sind in Wahrheit Lernmöglichkeiten? (22.05.2019 12:24:54)

In unserer Artikelserie ?Women in Tech? stellen wir inspirierende Frauen vor, die erfolgreich in der IT-Branche Fuß gefasst haben Heute im Fokus: Andrea Pretorian, Content Manager bei BitIRA

Die Tech-Industrie wird von Männern dominiert ? so weit, so schlecht Doch langsam, aber sicher bekommt der sogenannte Boys Club Gesellschaft von begabten Frauen: Immer mehr Frauen fassen in der Branche Fuß

Aus diesem Grund wollen wir hier spannenden und inspirierenden Frauen die Möglichkeit geben, sich vorzustellen und zu erzählen, wie und weshalb sie den Weg in die Tech-Branche gewählt haben Aber auch Themen wie Geschlechtervorurteile, Herausforderungen oder Förderungsmöglichkeiten kommen zur Sprache

Unsere Women in Tech: Andrea Pretorian, Content Manager bei BitIRA

Andrea Pretorian

Andrea ist eine gebürtige New Yorkerin, die sich kürzlich in der Stadt der brüderlichen Liebe niedergelassen hat Sie stattet Menschen leidenschaftlich gern mit ihrem Wissen und ihren Fakten aus, sodass sie sich vor nichts fürchten Wenn sie nicht den Content bei BitIRA verwaltet, kocht sie zu Hause wilde Abendessen-Menüs oder verfolgt ihren Traum von der dokumentarischen Filmproduktion

Was hat dein Interesse für die Tech-Branche geweckt?

Eine meiner ersten Kindheitserinnerungen ist die, dass meine Familie einen Computer bekam Zu der Zeit kannte ich sonst niemanden mit einem Computer Ich schaute meinem Vater dabei zu, wie er ihn auspackte und zusammenbaute, und beobachtete stundenlang fasziniert, wie er in Menüs navigierte und einfache Aufgaben ausführte Ich glaube, er hatte damals die MS Office Suite und brachte sich Visual Basic bei Von ihm hörte ich immer von neuen IT-Trends Ich erinnere mich lebhaft daran, wie aufgeregt ich war, als wir Lautsprecher bekamen und Ton abspielen konnten

Ich fürchte mich vor nichts, und ich denke, das sieht man

Durch das Zuschauen lernte ich so viel, dass ich meine Computerlehrerin in der Grundschule unterstützte Sie hatte diese Aufgabe zugewiesen bekommen, besaß jedoch nur minimale Erfahrung mit Computern Daher machte ich das Troubleshooting für auftretende Probleme und half, dafür zu sorgen, dass die Computer verbunden waren und richtig liefen Von da an ist der Rest Geschichte

Ein Tag in Andreas Leben

Mein Titel bei BitIRA lautet ?Content Manager? Es gibt keinen typischen Tag Es passiert viel Aufregendes, wenn man für eine Firma arbeitet, die sich um Investitionen in digitale Währungen kümmert Die Branche entwickelt sich rasend schnell und es gibt immer etwas neues, womit man sich beschäftigen  kann

Kryptowährungen haben sowohl technische als auch finanzielle/unternehmerische Implikationen, was in Verbindung mit der Vorstellung ?für die Rente zu investieren? auf die meisten Menschen einschüchternd wirkt Ich liebe es, dieses Thema leichter verdaulich zu machen, sodass Menschen sich selbst dazu befähigen können, die besten Entscheidungen für ihr Leben zu treffen Wir arbeiten daran, die soziale Auswirkung von Krypto zu berücksichtigen Ich bin unglaublich stolz auf unsere Veröffentlichung zu Women in Crypto, aber auch mit der Umwelt und sogar mit Non-profit Fundraising haben wir uns auseinandergesetzt

Ein starker Rückhalt

Ich habe unglaubliches Glück, eine Mutter zu haben, die in den sehr späten 60ern und den 70ern eine Karriere als Chemieingenieurin verfolgte, und das sogar in Europa Sie bestärkte mich darin, dass ich alles erreichen kann, was ich will ? und dass ich nicht eher aufhören sollte, bis ich mein Ziel erreicht hätte Der einzige Haken daran sei, dass ich dazu bereit sein muss, hart daran zu arbeiten; aber dann, so sagte sie, könne ich alles erreichen

Dass Geschlechterdiskriminierung überhaupt als Problem existiert, habe ich erst in der High-School wahrgenommen Während das sehr behütet wirken mag, war das wirklich hilfreich, da ich neben Gleichaltrigen Erfolge verbuchte, ohne mich als Frau gegen den Rest der Welt wahrzunehmen Diese Erfahrung hat sich in mir verfestigt

Gab es auf deinem Weg Hindernisse?

Für eine Weile habe ich mich von Computern entfernt und wollte Neurochirurgin werden, aber ich war von den hohen Anforderungen und geringen Belohnungen frustriert ? zumindest in Hinblick auf das, was ich in meinem Erwachsenenleben schätze ? und meine Erwartungen für diesen Berufsweg wurden nicht erfüllt Daher begab ich mich zurück in die Tech-Welt Ich habe einen zweiten Studiengang in Informatik angefangen und war wirklich gut darin, zumal ich mich für Datenstrukturen begeistern konnte Damit habe ich dann aber aufgehört, weil sich das Studienprogramm zu einem Netzwerkschwerpunkt verlagerte, im Vergleich zu Bio-Tech und KI-Anwendungen, die mich zu der Zeit mehr interessierten

Da sich Establishments Wandel widersetzen, sorgen sie für hohe Eintrittshürden

Im Informatikstudium habe ich eine wirklich kritische Erfahrung gemacht Ich hatte schon immer ein Interesse für die Wissenschaft gehegt, und mich traditioneller ? und unbeabsichtigter ?  Weise immer für männlich dominierte Karrierewege entschieden Das war für mich nichts Neues Aber ich erinnere mich deutlich daran, in Seminaren zu sitzen und von meinen männlichen Kommilitonen ?ausgeschlossen? zu werden Zwar sagten sie mir nicht ins Gesicht: ?Geh weg, du bist eine Frau und gehörst nicht hierher? Was in Wirklichkeit geschah, war stattdessen viel subtiler, aber genauso gefährlich: Niemand sprach mit mir Es gab diese unsichtbare Blase um mich und die drei anderen Studentinnen in meinen Kursen herum insgesamt, denn wir waren nicht alle in den gleichen Seminaren Die Männer arbeiteten gemeinsam an Problemstellungen und unterstützten sich gegenseitig, wenn sie die Antwort nicht wussten, aber ?irgendwie? wollte nie jemand mit mir zusammenarbeiten

Der Witz geht auf deren Kosten, denn ich erinnere mich noch lebhaft daran, in einer sehr schwierigen Klausur als Einzige über 85 Punkte erreicht zu haben Die Jungs haben versucht, herauszufinden, wer das war ? aber mich haben sie nicht in Betracht gezogen

Hat jemals jemand versucht, dich vom Lernen und von beruflichen Fortschritten abzuhalten?

Natürlich ? und das nicht einmal auf Arten, die unbedingt mit meinem Geschlecht zu tun hatten

Diese Frage impliziert ein ?Was hast du dagegen getan??, und so werde ich das beantworten Zunächst einmal gilt ?im Zweifel für den Angeklagten?, bis zu einem gewissen Punkt Fehler passieren, Menschen bemerken nicht, dass etwas auf eine bestimmte Weise wahrgenommen werden kann etc Ich würde nie zur Panikmacherin werden wollen, aber seid ehrlich mit euch: Wann wirkt solch ein Verhalten nicht mehr zufällig? An welchem Punkt beginnt es weh zu tun? Seid euch darüber im Klaren, wo eure Grenze liegt

Eines der schlimmsten Dinge an Diskriminierung ist, dass sie den Opfern ihre Selbstbestimmtheit raubt

Wenn diese Grenze überschritten wird, sollte man zuerst mit der Einzelperson auf angemessene Weise sprechen Ich arbeite meist in kleinen Teams und versuche, zu jedem Teammitglied von Beginn an eine Beziehung aufzubauen Daher fühle ich mich vollkommen wohl dabei, jemanden bezüglich meiner Bedenken anzusprechen Es ist wichtig, sicherzustellen, dass sich die andere Person nicht bedroht fühlt, denn das kann defensives Verhalten erzeugen Dann sollte man seinen Standpunkt darlegen Im besten Fall hat die andere Person einfach nicht wahrgenommen, was sie effektiv ausgesagt hat, und so kann sie ihr Verhalten ändern und beide können sich wieder anderen Dingen widmen

Aber was, wenn das Problem bestehen bleibt? Man kann entweder über institutionelle Instanzen die Eskalation anstreben, es ignorieren oder sich dazu entscheiden, wegzugehen Das kommt ganz darauf an, was für eine Person man ist und was für einen selbst am besten ist Eines der schlimmsten Dinge an jeglicher Form von Diskriminierung ist, dass sie den Opfern ihre Selbstbestimmtheit raubt Daher sollte man so handeln, dass man diese Selbstbestimmtheit wiedererlangt

Worauf bist du in deinem Berufsverlauf besonders stolz?

Ich fürchte mich vor nichts, und ich denke, das sieht man Sei es ein Wechsel meiner Ausrichtung oder die Annahme eines neuen, potenziell schwierigen Projekts ? ich nehme jede Herausforderung an, die sich mir bietet Es hat all diese Zeit gebraucht, um zu internalisieren, dass Rückschläge und ?Misserfolge? in Wahrheit Lernmöglichkeiten sind Wenn man diese Mentalität erst einmal akzeptiert hat, wird man dadurch befreit

Warum gibt es so wenige Frauen in der Tech-Branche?

Das ist schon oft umrissen worden und es ist ein recht komplexes Thema Meiner Meinung nach ist ein zu selten angesprochener Faktor, was wir an jedem Geschlecht wertschätzen, wenn sie ?Erfolg? haben Das ist wichtig, weil es zur Berufswahl von Einzelpersonen mit einer hohen beruflichen Ambition beiträgt Erfolgreiche Männer sind eindringlich und entscheidungsstark, aber erfolgreichen Frauen wird immer ein Element von Charisma nachgesagt Der Ruf der Tech-Branche war nicht immer besonders charmant Als Resultat dessen legte sie große Sprünge zurück, bevor Frauen wirklich die Möglichkeit hatten, in grundlegender Weise daran teilzunehmen

Welche Hindernisse gibt es für Women in Tech?

  • Ein Establishment, das sie ausschließt ? bestenfalls unbeabsichtigt Da sich jedoch Establishments Wandel widersetzen, sorgen sie für hohe Eintrittshürden
  • Selbst wenn Frauen teilnehmen dürfen, haben sie im Vergleich zu Männern meist ganz spezifische Berufsbezeichnungen Denkt nur daran, wie viele Frauen ihr in PR-Anstellungen kennt, im Vergleich zu Tech-Berufen

Die Diversitätsdiskussion nimmt an Fahrt auf Wann werden wir Ergebnisse der aktuellen Debatte sehen?

Diversität ist so komplex, dass diese Frage unmöglich zu beantworten ist, auch wenn wir uns auf Genderdiversität fokussieren Davon abgesehen denke ich, dass der Wandel in Wellen verlaufen wird Es ist einfacher, Richtlinien schlagartig zu ändern, als tief verankerte Vorstellungen und Einstellungen, die länger brauchen werden Sie erfordern auch Verstärkung und Selbsterkenntnis, weshalb wir uns alle dazu äußern müssen, wenn wir diese Probleme wahrnehmen

Tipps & Tricks

Während ich definitiv daran glaube, Probleme hervorzuheben und an ihrer Lösung zu arbeiten, agiere ich nicht aus einer ?wir vs sie?-Perspektive heraus Das macht es schwierig, diese Frage zu beantworten, denn jeder Rat, den ich geben kann, würde jeden betreffen Beliebtheit und Attraktivität kommen und gehen Es ist leicht, in Ungnade zu fallen Daher würde ich empfehlen, euch weniger darum zu sorgen, ob ihr beliebt seid oder was die Leute über euch sagen Konzentriert euch auf eure Arbeit Im Endeffekt ist eure Arbeit das, was Bestand hat Stellt sicher, dass ihr sie so exzellent macht, wie ihr könnt

Der Beitrag Women in Tech: ?Rückschläge und ?Misserfolge? sind in Wahrheit Lernmöglichkeiten? ist auf entwicklerde erschienen


Node.js 12.3: Experimenteller Support für Wasm-Module (22.05.2019 11:13:44)

Nodejs 123 ist da und bringt experimentellen Support für die ES-Modules-Integration von WebAssembly mit Damit folgt Node dem aktuellen Trend: Alle setzen auf WebAssembly!

WebAssembly kommt nach und nach in der JavaScript-Welt an Auch Nodejs hat mit dem Release von v123 nun einen ersten Support für Wasm-Module implementiert Noch befindet sich das Feature aber hinter einem Flag: --experimental-wasm-modules Bei den Wasm Modules handelt es sich um eine Integration der ES Modules in den Wasm-Standard, die derzeit selbst noch in Phase 1 der Standardisierung befindlich ist Ziel des Proposals ist, dass Wasm-Module per import-Statement oder <script type=module>-Tag in JavaScript geladen werden können Die Semantik der Integration in Nodejs 123 entspricht der, die im WebAssembly-Proposal vorgeschlagen wurde, wie Guy Bedford im entsprechenden Pull Request auf GitHub erklärt

Nodejs 123 bringt außerdem einige weitere neue Features und Bugfixes mit, die in den Release Notes auf dem Node-Blog nachgelesen werden können Dazu gehört beispielsweise die neue Utility-Methode Readablefrom, die async Iterators in lesbare Streams konvertiert

Der Beitrag Nodejs 123: Experimenteller Support für Wasm-Module ist auf entwicklerde erschienen


Synchronisation mit LIMBAS (22.05.2019 10:20:32)

Mit dem Limbas-Framework lassen sich ähnlich zu Access individuelle Datenbanklösungen in einer grafischen Umgebung umsetzen Vielfach wird es in den Bereichen CRM, Prüfmittelmanagement, Betriebsmittelmanagement, Access-Alternativen bis hin zu ERP-Systemen eingesetzt Dabei ist eine häufig gewünschte Funktionalität von Datenbankanwendungen die Verfügbarkeit verschiedener Arten der Synchronisation

Insbesondere im Enterprise-Umfeld darf ein Synchronisationsfeature nicht fehlen Das Limbas-Framework bietet dazu zwei eigenständige Lösungsansätze, die neben den klassischen Datenexport- und Importfunktionen das Publizieren von Projekten sowie eine Datensynchronisation im Master-und-Slave-Verfahren bietet Beide Funktionalitäten sind unabhängig voneinander, bilden aber zusammen ein wirkungsvolles Werkzeug, um ein Projekt auf mehreren Limbas-Instanzen gleichzeitig zu betreiben oder auch strukturierte Entwicklungsumgebungen zu erstellen

Das Limbas Deployment

Das Deployment-Modul ist ein Werkzeug, das es erlaubt, eine in Limbas erstellte Lösung, eine Applikation, ein Fachverfahren oder ein Projekt auf eine oder mehrere Instanzen zu klonen bzw zu veröffentlichen Nehmen wir als Beispiel eine Mitarbeiterverwaltung, die mit Limbas umgesetzt worden ist Diese Mitarbeiterverwaltung soll nun dezentral an mehrere Filialen weitergegeben werden Jede Niederlassung betreibt ihre eigene Limbas-Instanz Dazu muss die gesamte Datenbankstruktur wie Tabellen, Trigger oder Abfragen sowie Formulare, Berichte oder Erweiterungen mit dem Zielsystem abgeglichen und synchronisiert werden Die vorhandenen Datenbestände dürfen dabei nicht beeinflusst werden Händisch wäre dieser Vorgang sehr mühsam und würde die Gefahr bergen, leicht Dinge zu übersehen Das Deployment-Modul ermöglicht dagegen eine sichere und einfache Art der Synchronisation im Master-und-Slave-Verfahren, um eigenständige und unabhängige Limbas-Instanzen zu erstellen oder anzupassen Ebenso ist es damit möglich, die eigentliche Projektentwicklung auf unterschiedlichen Entwicklungsinstanzen bis hin zum Produktivsystem zu verwalten

Wie funktioniert nun dieses Deployment-Modul? Es wird ein kompletter Export aller Tabellenstrukturen, Systemtabellen sowie Skripterweiterungen erstellt, in ein Archiv gepackt, zum Slave geschickt, dort ausgepackt und wieder importiert Während dieses Vorgangs werden vorhandene Tabellenstrukturen abgeglichen und lokale Einstellungen, Nutzerdaten oder individuelle Anpassungen auf die Zielsysteme übertragen Administrieren kann man die Synchronisation als Administrator im Limbas-Toolmenü Dazu gibt es jeweils einen eigenen Funktionsreiter im Import- sowie im Exportmenü mit der Bezeichnung Sync-Export und Sync-Import

Migrating to PHP 7

by Stefan Priebsch thePHPcc

A practical introduction to Kubernetes

by Robert Lemke Flownative GmbH

Unter dem Reiter Sync-Export verbirgt sich die Administrationsoberfläche zum Erstellen und Exportieren eines Archivs Dieses Archiv kann entweder als Archivdatei gespeichert oder direkt an ein Zielsystem gesendet und dort importiert werden In diesem Fall beinhaltet die Exportfunktion auch die Importfunktion Nicht immer möchte man das gesamte System synchronisieren, so bietet sich die Möglichkeit, die Module auszuwählen, die in den Synchronisationsprozess mit einbezogen werden sollen Dazu gehören unter anderem Tabellen, Formulare, Berichte, aber auch Rechte, Systemtabellen oder Funktionen, die nach dem Import ausgeführt werden Praktische Funktionen sind beispielsweise das Löschen der Sessions oder das Überprüfen der Indizes nach erfolgtem Import Die Option ?Alle Sessions löschen? sollte man übrigens immer aktivieren, wenn man möchte, dass allen aktiven Usern die Änderungen sofort und nicht erst nach dem nächsten Anmelden zur Verfügung stehen Abb 1 Es ist zu beachten, dass ausgewählte Module in Zusammenhang stehen können Möglicherweise existieren in Formularen Tabellenelemente, die in der Ursprungstabelle fehlen In diesem Fall muss auch das Tabellenmodul mit exportiert werden, das dafür sorgt, dass fehlende Tabellenfelder oder gar ganze Tabellen angelegt werden

Abb 1: Sync Export

Auch ist es möglich, eigene Funktionen oder Erweiterungen Kasten: ?Limbas-Erweiterungen? zu schreiben, die nach dem Import ausgeführt werden Dazu gibt es auf der Oberfläche ein Eingabefeld mit der Beschriftung run Dort trägt man den Namen seiner Funktion wie zum Beispiel myExt_UpdateAfterImport ein, die nach dem Synchronisationsprozess ausgeführt werden soll Diese Funktion muss dazu in einer eigenen Erweiterung existieren Ein Beispiel: Wir möchten nach dem Synchronisationsprozess die Tabelle ?Kunde? mit einem neuen Feld ?Kundentyp? ergänzen Der Inhalt soll abhängig von verschiedenen Kriterien des Kunden initial gefüllt werden Obwohl innerhalb des Synchronisationsprozesses das Datenbankfeld ?Kundentyp? schon angelegt wurde, ist es noch leer Mit Hilfe einer eigenen Erweiterung kann das Feld nun nachträglich gefüllt werden

Limbas-Erweiterungen

Limbas-Erweiterungen sind ein wichtiger Bestandteil von Limbas Sie ermöglichen es, an vielen Stellen eigenen Code in das Framework zu integrieren und so den Funktionsumfang zu erweitern Mehr dazu findet man im Wiki unter http://wwwlimbasorg/wiki/Skript-Erweiterungen

Der Knopf export archiv erlaubt es, die generierten Exportdateien in ein Archiv zu packen und auf dem eigenen Rechner zu speichern, anstatt sie gleich zu einem anderen System zu übertragen Dieses Archiv kann händisch auf das Zielsystem kopiert und importiert siehe Sync-Import oder einfach nur archiviert werden

Der Knopf export config dagegen erzeugt einzig die Konfigurationsdatei, in der die zu exportierenden Module aufgelistet sind Sie kann dazu genutzt werden, immer wiederkehrende Konfigurationen nicht jedes Mal neu erstellen zu müssen Listing 1

<SCRIPT 1>
<?php $toSync = array 
  0 => 'tabs',
  1 => 'forms',
  2 => 'rep',
; ?>

Der Abschnitt ?Sync to remote host? bietet die Option, den Export direkt auf das Zielsystem zu laden und zu importieren Dazu gibt man den vollständigen URL inklusive Zielpfad des Zielsystems z B https://IP/meinlimbas/dependent/ und einen Administratorzugang mit Username und Passwort an Ein Klick auf den Knopf start remote precheck exportiert alle nötigen Daten und simuliert einen Import im Zielsystem Das Ergebnis ist eine Zusammenfassung Kasten: ?System-Jobs? aller auszuführenden Anpassungen und Änderungen Diese kann man überprüfen, sich als HTML-Übersicht herunterladen und durch den Knopf TODO bestätigen Erst jetzt werden die Änderungen im Zielsystem ausgeführt

System-Jobs

Über das GUI ist eine Vorprüfung mit Zusammenfassung Pflicht Man kann allerdings über die System-Jobs den Export direkt anstoßen bzw per Cronjob in regelmäßigen Abständen ausführen lassen, ohne explizit zustimmen zu müssen Mehr zu System-Jobs findet man unter http://wwwlimbasorg/wiki/System-Jobs

Zu guter Letzt bekommt man noch einmal eine Zusammenfassung Sollte ein Fehler aufgetreten sein, wird neben einer Fehlerbeschreibung das Zielsystem über die Transaktionen in den Ursprung zurückgesetzt Dabei ist eine Transaktionsfähigkeit der jeweils eingesetzten Datenbank Voraussetzung Eine Zusammenfassung der Anpassungen zeigt Abbildung 2 Das Beispiel zeigt ausschnittsweise, dass zwei neue Tabellen angelegt grün, ein Feld in seiner Größe geändert schwarz, ein Feld angelegt grün und mehrere Felder gelöscht rot werden Weiterhin wird ein Vergleich einer geänderten SQL-Abfrage gemacht

Abb 2: Create Tables

Nachdem wir weiter oben im Artikel den Funktionsreiter Sync-Export vorgestellt haben, hier noch eine ausführlichere Erklärung zum Funktionsreiter Sync-Import

Die schon angesprochene Funktion Sync-Import findet man im Importmenü Sie benötigt weder einen URL zu einem anderen Limbas-System, noch nutzt sie eine Socket-Verbindung Sie dient zum manuellen Importieren vorheriger exportierter und gespeicherter Archive, wie unter Sync-Export beschrieben Analog zum Export wird nach Auswahl und Upload eines gespeicherten Archivs zuerst eine Übersicht aller Anpassungen ausgegeben, die bestätigt werden muss Der Importprozess ist ab diesem Zeitpunkt analog zum Exportprozess auf einen Remote Host

Der Revisionsmanager

Eine weitere nützliche Funktion ist im Menü TOOL unter Revisions-Manager zu finden Werden Revisionen erstellt, werden sie analog zum Sync-Export in einem Archiv zusammengefasst und gespeichert Das Interessante dabei ist: Erzeugte Revisionen können miteinander verglichen werden So ist es möglich, schnell die Unterschiede im Datenmodell der Version 3 und des aktuellen Systems aufzuzeigen Theoretisch ist es auch machbar, auf alte Versionsstände zurück zu migrieren, was aber einer Erzeugung einer neuen Version mit entsprechenden Änderungen gleichkommt Mehr zum Thema Revisionsmanager findet man unter http://wwwlimbasorg/wiki/Revisions-Manager

Limbas-Datensynchronisation

Die Limbas-Datensynchronisation synchronisiert im Gegensatz zum Deployment-Modul nicht die Limbas-Applikation, sondern die echten Dateninhalte der Tabellen Es können alle in Limbas registrierten Tabellen synchronisiert werden, sofern man es will Dabei werden die Daten in beide Richtungen synchronisiert und nach unterschiedlichen Regeln priorisiert Die Besonderheit dieses Moduls besteht in seiner Flexibilität, unterschiedlichste Varianten Templates der Synchronisation zu erstellen und per Job oder manuell auszuführen

Die Synchronisation erfolgt über PHP Sockets Das schafft die Voraussetzung, zusammenhängende Aufgaben auszuführen, ohne den PHP-Prozess zu unterbrechen Das ermöglicht es wiederum, für den gesamten Prozess Datenbanktransaktionen zu nutzen und damit eine hohe Datenintegrität zu erreichen Insbesondere in einer Webumgebung ist die größte Gefahr, nach einem Verbindungsverlust oder Datenbankfehler inkonsistente Daten zu generieren Die Nutzung von Transaktionen gewährleistet auch bei Verlust der Datenverbindung eine Zurücksetzung begonnener Änderungen Der Ablauf der Synchronisation lässt sich wie folgt beschreiben:

  • Herstellung der Socketverbindung zum Slave
  • Prüfung auf Änderungen auf dem Slave
  • Auslesen der Änderungen und Senden an den Master
  • Prüfung und Einlesen im Master
  • Statusrückmeldung an den Slave
  • Log schreiben

Was genau wie und wann synchronisiert werden soll, entscheidet der Administrator Hierzu steht ihm der Menüpunkt Synchronisation mit unterschiedlichen Einstellungsmöglichkeiten zur Verfügung Dieser Menüpunkt besteht aus zwei Registern In dem Register Slaves werden alle Slave-Instanzen, mit denen synchronisiert werden soll, eingetragen Der Name ist frei wählbar Der beinhaltete Host ist der vollständige URL User und Passwort müssen die eines Admins sein

In dem Register Templates legt man die benötigten Synchronisationstemplates an Wurde ein Template mit beliebigen Namen angelegt, kann der Konfliktmodus Conflict Mode über ein Auswahlfeld festgelegt werden Es gibt die Wahlmöglichkeit zwischen master, slave, date und manuell Der Konfliktmodus entscheidet bei gleichzeitiger Änderung eines Datensatzes beider Instanzen, welche Änderung übernommen werden soll Die Unterschiede sind schnell beschrieben:

  • master: Master gewinnt immer
  • slave: Slave gewinnt immer
  • date: der zuletzt bearbeitete Datensatz gewinnt
  • manuell: es werden keine Änderungen durchgeführt und im Statusreport wird auf manuelle Prüfung hingewiesen

Das so erzeugte Template kann über das Editiersymbol bearbeitet werden Wer sich nun wundert, warum in seinem neu erzeugten Template keine Tabellen zur Auswahl stehen, der hat vergessen, für die Tabellen, die synchronisiert werden sollen, grundsätzlich die Synchronisation zu erlauben Dazu wird über den Tabelleneditor in einer beliebigen Tabellengruppe das Häkchen bei ?Sync? für die jeweiligen Tabellen aktiviert Abb 3

Abb 3: Sync für die jeweiligen Tabellen aktivieren

 

Ist das geschehen, sollte man nicht vergessen, im oberen Hauptmenü auf RESET zu klicken, denn ansonsten werden die Änderungen nicht in die aktuelle Darstellung übernommen Da eine Anmeldung und Generierung einer Session in Limbas abhängig vom Funktionsumfang auch mal über zwei Sekunden dauern kann, ist es immer dem Administrator überlassen, wann er Änderungen in seine Session übernehmen will ? spätestens allerdings nach dem nächsten Anmelden

Nach Abschluss des Prozesses erscheinen alle freigegeben Tabellen zur Auswahl Klappt man eine Tabelle über das Plus-Symbol auf, kommen alle Felder der Tabelle zum Vorschein, und man kann über die Checkboxen das Feld, dessen Inhalte synchronisiert werden sollen, aktivieren Dabei ist zu unterscheiden, ob Inhalte aus dem Master zum Slave oder vom Slave zum Master oder beides synchronisiert werden sollen Abb 4

Nach getaner Arbeit stehen dem Administrator nun ein oder mehrere Synchronisierungstemplates zur Verfügung, die manuell oder per Job gestartet werden können

Abb 4: Checkboxen aktivieren, um Inhalte zu synchronisieren

 

Fazit

Die Synchronisationstools von Limbas erlauben es einerseits, die Applikation selbst zu duplizieren, abzugleichen oder zu veröffentlichen Andererseits können auch die Datenbankinhalte im klassischen Sinne synchronisiert werden Auch der Deployment-Prozess einzelner Entwicklungsschritte kann effizient und konsistent abgewickelt werden Somit bietet Limbas alle Möglichkeiten, um mehrere Anwendungsinstanzen auf einfache Art und Weise synchron zu halten und sie dezentral zu nutzen

PHP Magazin

Dieser Artikel ist im PHP Magazin erschienen Das PHP Magazin deckt ein breites Spektrum an Themen ab, die für die erfolgreiche Webentwicklung unerlässlich sind

Natürlich können Sie das PHP Magazin über den entwicklerkiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen In unserem Shop ist das Entwickler Magazin ferner im Abonnement oder als Einzelheft erhältlich

Der Beitrag Synchronisation mit LIMBAS ist auf entwicklerde erschienen


Git für Einsteiger: Wie man das Versionskontrollsystem Git nutzt (22.05.2019 09:32:02)

Git ist ?hip? und gilt als Star unter den Versionskontrollsystemen Der Grund dafür ist einfach: Git ist schnell, leistungsfähig und plattformunabhängig Kein Wunder, dass immer mehr Teams vor allem auch aus der Microsoft-Welt den Umstieg planen Doch um Git optimal zu nutzen, ist fundiertes Hintergrundwissen nötig ? denn Git arbeitet von Grund auf anders als die bekannten ?klassischen? Systeme Richtig eingesetzt macht Git aber ordentlich Spaß ? durch mehr Performance, Produktivität und Flexibilität im täglichen Entwicklungsalltag

Eigentlich ? so schien es ? war das Thema Versionskontrolle in der Microsoft-Welt abgehakt: Team Foundation Version Control TFVC als ausgereiftes, stabiles System war gesetzt ? als Open-Source-Alternative stand Apache Subversion bereit ?, um den Rest des Kuchens stritten sich Systeme wie Perforce und Rational ClearCase Doch dann kam Git und eroberte die Welt im Sturm: Nach der aktuellen Umfrage des Entwicklerportals Stack Overflow nutzen rund 87 Prozent der Entwickler Git; Subversion und TFVC landen mit 16,1 und 10,9 Prozent abgeschlagen auf Platz zwei und drei

Was ist der Grund für den kometenhaften Aufstieg von Git? Was macht Git anders als die etablierten Platzhirsche? Und was gibt es zu beachten, wenn man das eigene Team auf Git migrieren will? Die wichtigsten Antworten auf diese Fragen möchte ich Ihnen im Folgenden liefern

Zentral versus dezentral

Wer sich ein Git Cheat Sheet wie es diesem Heft beiliegt besorgt, könnte den Eindruck bekommen, dass Git eigentlich nur eine Variante des bereits bekannten Musters darstellt: Befehle zum Sichern des Versionsstands, zum Abrufen früherer Versionen sowie zum Verwalten von Varianten mittels Branching und Merging

Aber der Schein trügt: Git funktioniert intern komplett anders, denn es ist als dezentrales System ausgelegt Das bedeutet: Während TFVC und Subversion auf eine zentral verwaltete Datenbank setzen Abb 1, kommt Git auch gut ohne zentrale Datenbank aus Jeder Nutzer hat vielmehr seine eigene Datenbank, unter Git ?Repository? oder kurz ?Repo? genannt Abb 2

Abb 1: Zentrale Versionskontrolle

 

Abb 2: Verteilte Versionskontrolle

 

Unter Git arbeitet man die meiste Zeit mit dieser lokalen Datenbank und kann dann die erzeugten Änderungen Commits mit den anderen Projektbeteiligten austauschen Obwohl Git dies nicht erfordert, wird hier dann doch wieder auf die bewährte Architektur mit einem Zentralserver Blessed Repository zurückgegriffen

Schnell, sicher, flexibel

Das lokale Arbeiten bringt einige Vorteile mit sich: Git reagiert generell extrem schnell auf Benutzereingaben ? es müssen ja nicht für jede Aktion langsame Netzwerkzugriffe durchgeführt werden Diese gute Performance ist in der täglichen Praxis deutlich spürbar

?Völlig losgelöst? vom Server arbeiten zu können, erhöht auch die Flexibilität bei der Arbeit mit der Versionskontrolle Kein Netzwerk? Kein Problem, auch wenn man an einem Ort am Sourcecode arbeitet, an dem keine Verbindung zum Server besteht So ist es beispielsweise im Zug, in abgeschotteten Sicherheitsbereichen, bei Ausfall der DSL-Leitung und in ähnlichen Szenarien trotzdem möglich, den vollen Funktionsumfang der Versionsverwaltung zu nutzen ? ein Plus für Service-Ingenieure, Consultants und alle anderen örtlich mobilen Entwickler

Entity Framework Core 30: Das ist neu!

mit Dr Holger Schwichtenberg, wwwIT-Visionsde/5Minds IT-Solutions

Visual Studio hidden Treasures

mit Cecilia Wirén Active Solution

C# Code Quality ? Tipps und Tricks

mit Rainer Stropek software architects/wwwIT-Visionsde

Ein weiterer Bonus der dezentralen Auslegung von Git: Änderungen am Repository sind zunächst einmal privat, bis sie auf den Server übertragen werden So ist es unter Git üblich, bei der Arbeit eigene, private Branches anzulegen, die vor der Übernahme in das zentrale Repository oft auch wieder gelöscht werden So lassen sich im Alltag leicht Experimente am Code vornehmen, die dann sehr einfach wieder zurückgerollt werden können ? sozusagen ein ?Undo auf Stereoiden? Auch diese erhöhte Flexibilität bei der Codeerstellung ist ein Feature, das die meisten Git-Nutzer nicht mehr missen wollen

Nicht zuletzt bietet die dezentrale Datenspeicherung auch noch einen weiteren Vorteil: Da die einzelnen lokalen Repos in der Praxis oft synchronisiert werden, hat jeder Entwickler sozusagen eine Sicherheitskopie, was zu einer extrem hohen physischen Datensicherheit führt ? und das ganz ohne explizite Back-ups auf einem Server

Clevere Datenspeicherung

Apropos Flexibilität: Um die dezentrale Datenspeicherung möglich zu machen, setzt Git auf ein flexibles grafenbasiertes Speichermodell Die Versionsgeschichte wird durch eine einfach verkette Liste abgebildet, die einzelnen Nodes repräsentieren die Commits Änderungsdatensätze mitsamt der Metadaten wie Name, Datum und Eincheckkommentar Branches und Label werden durch leichtgewichtige Pointer realisiert Die Integrität der Commits wird durch Hash-Werte sichergesellt, die über jedes Commit berechnet werden und diese gleichzeitig eindeutig identifizieren Abb 3

 

Abb 3: Versionsgeschichte als Abfolge von Commits, identifiziert durch Hash-Werte

 

Dieses Speichermodell macht Git in jeder Hinsicht noch flexibler Das Erstellen von Branches geht extrem schnell und einfach, da intern nur ein weiterer Listen-Pointer eingefügt werden muss Die interne Datenstruktur von Git ermöglicht die Manipulation der Versionsgeschichte auf jede erdenkliche Weise Commits können zusammengefasst, entfernt und verändert werden, durch spezielle Manipulationen am Datenmodell können ?technische? Commits, wie sie bei anderen Systemen beispielsweise beim Mergen zwangsläufig entstehen, komplett vermieden werden Diese Commits sind deshalb oft unerwünscht, weil sie keine inhaltliche Weiterentwicklung des Codes darstellen, sondern einfach nur markieren, dass eine technische Aktion wie ein Merge Zusammenführen von Branches oder ein Revert Rückgängigmachen von Änderungen auf dem Repo durchgeführt wurde

Dadurch ist es unter Git möglich, eine sehr saubere und aufgeräumte Versionsgeschichte zu erstellen Diese ist dann sehr gut les- und wartbar ? im Gegensatz zur oft chaotischen Historie konventioneller Systeme Viele Git-Nutzer sehen die Versionsgeschichte deshalb als organisch entstandenes Changelog an, das die logisch-semantische Projektgeschichte erzählt, und investieren entsprechend viel Aufwand in dessen Pflege

Power und Komplexität

Doch, um es mit den Worten von Spidermans Onkel zu sagen: ?With Great Power Comes Great Responsibility? Das clevere Datenmodell bedeutet eben auch, dass ein erhöhter Lernaufwand nötig ist, um mit Git sicher und produktiv arbeiten zu können Die vielen Möglichkeiten möchten beherrscht werden, und das geht nicht ohne ein intensives Studium der internen Funktionsweise von Git

Viele Einsteiger stellen fest, dass der Einstig zwar sehr leichtfällt, es aber eine unsichtbare Barriere gibt, auf die man dann trifft, wenn man fortgeschrittene Techniken anwenden will oder in ungewohnte Situationen gerät Auch ist es bei Git durchaus möglich, Daten zu ?verlieren? Meistens sind diese dann nicht wirklich gelöscht, aber bedingt durch den aktuellen Zustand des Datenmodells gerade einfach nicht sichtbar Git überrascht Anfänger oft mit nicht gerade intuitivem Ausgang von Operationen ? etwa, wenn nach Anzeige eines historischen Commits die neueren Commits verschwunden zu sein scheinen Ich habe einmal in einem Forum gelesen: ?Git can smell your Fear!? Zudem ermöglicht Git es, bestimmte Operation ?mit Gewalt? durchzuführen, die bei den Mitbewerbern schlicht und ergreifend unmöglich sind ? der Parameter ?force macht?s möglich Wer hier nicht genau versteht, was er oder sie tut, und einfach blind einem Rezept aus dem Internet folgt, läuft unter Umständen geradewegs ins Verderben Also ist eine kurze, intensive Lernphase für jeden Ein- und Umsteiger Pflicht Kasten: ?Der 3-Schritte-Plan zum Umstieg?

Der 3-Schritte-Plan zum Umstieg

  1. Informieren und Lernen: Das beste Buch zu Git ?Pro Git? findet sich auf der offiziellen Git-Website ? auch als E-Book für alle gängigen Reader Ein sehr gutes Tutorial bietet auch die Firma Atlassian auf ihrer Website ? und es gibt zahlreiche Videotutorials und Quickstarts Wichtig: Nicht nur Befehle lernen, sondern sich intensiv mit der Funktionsweise von Git vertraut machen Git ist anders!
  2. Üben: Es empfiehlt sich, zunächst mit der Kommandozeile und einem einfachen Projekt zu üben, bis man die grundlegenden Operationen sicher beherrscht Eine große Hilfe hierbei ist das kleine Tool GitViz, das die internen Vorgänge in einem Git-Repo visualisiert und so beim Verständnis hilft
  3. Migrieren: Es ist möglich, Datenbanken von bestehenden Systemen wie Subversion und TFS nach Git zu migrieren ? Git bietet direkten Support für den Import von SVN-Repos und auch Team Foundation Server hat eine eingebaute Importfunktion allerdings nur für maximal 30 Tage Versionsgeschichte Open-Source-Projekte wie beispielsweise git-tf helfen weiter Viele Teams checken den Sourcecode aber einfach zu einem Stichtag aus dem bestehenden System aus und in Git wieder ein ? so gibt es zwar einen Bruch in der Historie, aber dafür ist der Aufwand minimal Das alte System kann dann zur Referenz in einen Read-only-Modus versetzt werden

Plattformübergreifend

Git hat seinen Ursprung in der Linux-Welt Es wurde als Ersatz für das bis dahin vom Linux-Kernel-Team genutzte BitKeeper einem kommerziellen Pionier der dezentralen Versionsverwaltung entwickelt Die Linux-Gemeinde hatte sich mit dem Hersteller von BitKeeper überworfen und brauchte eine Alternative Der Legende nach schloss sich Linus Thorwalds im stillen Kämmerchen ein und codierte die erste Version von Git in wenigen Tagen kurzerhand selbst

Aufgrund der offensichtlichen Vorteile verbreitete sich das System sehr schnell Überall auf der Welt fanden sich Mitarbeiter für die Weiterentwicklung ? und innerhalb weniger Jahr hatte sich Git zum De-facto-Standard entwickelt Heute sind Git-Implementierungen und Clients für praktisch alle wichtigen Betriebssysteme und integrierten Entwicklungsumgebungen verfügbar Kasten: ?Gute Git-Clients? Git ist schnell, kompakt, einfach zu installieren und sofort einsetzbar Sämtliche Operationen lassen sich über die Kommandozeile ausführen und es gibt zahlreiche freie und kommerzielle graphische Git-Clients für Windows, Mac, Linux und Co Egal ob Visual Studio, Visual Studio Code, Eclipse, Android Studio oder XCode ? überall ist die integrierte Git-Unterstützung längst Standard

All das macht Git auch in der aktuellen Cross-Plattform-Entwicklungswelt zu einem idealen Tool Unter Windows mit Xamarin entwickeln, auf einem Mac bauen und im Apple Store veröffentlichen? Kein Problem Ein zentrales Repo für alle Skripte im Unternehmen, egal ob Bash oder PowerShell? Kein Problem! Git standardisiert die Welt der Versionsverwaltung

Gute Git-Clients

Atlassian Sourcetree: Kostenlos nach Registrierung, verfügbar für Windows und Mac; der Klassiker unter den grafischen Git-Clients Bietet alle Grundoperationen in einer relativ modernen Oberfläche, enthält aber keinen Merge-Editor Abb 4

Abb 4: Atlassian Sourcetree

 

fournova Tower: 59?79 ? pro User und Jahr; ursprünglich nur für Mac erhältlich, jetzt auch mit einer Windows-Version vertreten; sehr intuitiv mit guter Übersicht bei anspruchsvollen Operationen wie Merges Abb 5

Abb 5: fournova Tower

Axosoft GitKraken: 49 $ pro User und Jahr; frei verfügbar für nichtkommerzielle Arbeit und Open Source; erhältlich für Windows, Mac und Linux Abb 6

Abb 6: Axosoft GitKraken

Grenzen und Fallstricke

Wo Licht ist, ist auch Schatten Erwähnt habe ich schon, dass Git eine steile Lernkurve hat Weitere Limitationen liegen genau in dem oben gelobten dezentralen Datenmodell Was, wenn mein Repository sehr groß ist und ich es nicht in kleinere, modularere Teile aufspalten kann? Schließlich muss das Repo auf jedem Entwicklerrechner repliziert werden und dort der entsprechende Speicherplatz zur Verfügung stehen Was das bedeutet, zeigt sich an einem extremen Beispiel: Das Windows-Team bei Microsoft wollte auf Git umsteigen ? und musste feststellen, dass dies aufgrund der Größe des monolithischen Windows-Sourcecodes mit 3,5 Millionen Files und 300 GB Repo-Größe praktisch unmöglich war Operationen dauerten teils Stunden ? ein unhaltbarer Zustand Microsoft reagierte auf die Probleme mit der Entwicklung von Git Virtual File System ? einer Erweiterung von Git, die das System zumindest teilweise wieder in eine Client-Server-Software zurückverwandelt

Der Prozess der Pull Requests ist zum Quasistandard in Softwareteams geworden

GitHub empfiehlt, ein einzelnes Repo unter 1 GB und einzelne Files unter 100 MB zu halten ? klassische Versionskontrollsysteme ermöglichen hingegen riesige Petabyte-Versionsdatenbanken ? schließlich können Nutzer hier auch nur wenige Files aus dem Zentralserver auschecken, ohne gleich die ganze Datenbank kopieren zu müssen

Zugegeben, auch unter Git existieren teilweise Lösungen für dieses Problem ? Stichworte sind hier Grafting und Shallow Checkouts, Git Submodules und Subtrees Diese Workarounds sind aber nur bis zu einem gewissen Grad praktikabel und performant Wer also sehr große Repos hat, sollte sich den Umstieg auf Git gut überlegen und zunächst einmal Performancetests durchführen

Ein weiteres Feature, das Git prinzipbedingt nicht unterstützen kann, ist das exklusive Auschecken von Dateien Check-out Locks, sodass diese nur von einer Person zu einem Zeitpunkt geändert werden können Gerade CAD- und Engineering-Systeme verlassen sich oft noch auf diese Funktionalität, die nur bei den klassischen Versionskontrollsystemen zu haben ist

Neue Workflows

Die neuen technischen Möglichkeiten von Git ebneten den Weg für neue Workflows in der Teamzusammenarbeit Kollaborationsplattformen wie GitHub und Azure DevOps vormals Team Foundation Server bieten neue Wege, die Qualität und Transparenz von gemeinsam erstelltem Code zu steigern Der Prozess der Pull Requests, ebenfalls aus der Open-Source-Szene übernommen, ist zum Quasistandard in modernen Softwareteams geworden Dabei wird zunächst dezentral an Features und Bugfixes in eigenen, sogenannten Topic Branches gearbeitet ? die Überführung in geschützte, qualitätsgesicherte Codelinien geschieht dann über einen kollaborativen Prozess, in dem automatisierte Tests und Builds ausgeführt werden können und das Team den Code in gemeinsamen Reviews bewerten und bearbeiten kann Pull Requests sind kein Teil von Git, werden aber durch die Flexibilität der Git-Architektur erst praktikabel

Fazit: Widerstand ist zwecklos

Git ist ein schnelles, leistungsfähiges und revolutionäres System zur Versionskontrolle, das sich in der Softwareindustrie durchgesetzt hat In Zukunft dürfte Git das faktische Monopol für Versionsverwaltung besitzen Wer sich noch nicht mit Git beschäftigt hat, sollte das schnell nachholen ? es lohnt sich Mit dem nötigen Respekt vor der Mächtigkeit des Systems, ein bis zwei Tagen Studium oder Seminar und ein bis zwei Wochen Zeit für die Umgewöhnung gelingt der Umstieg sicher und schnell Go Git!

Windows Developer

Dieser Artikel ist im Windows Developer erschienen Windows Developer informiert umfassend und herstellerneutral über neue Trends und Möglichkeiten der Software- und Systementwicklung rund um Microsoft-Technologien

Natürlich können Sie den Windows Developer über den entwicklerkiosk auch digital im Browser oder auf Ihren Android- und iOS-Devices lesen In unserem Shop ist der Windows Developer ferner im Abonnement oder als Einzelheft erhältlich

Der Beitrag Git für Einsteiger: Wie man das Versionskontrollsystem Git nutzt ist auf entwicklerde erschienen


V8 7.5: Neues für WebAssembly in der JavaScript Engine (21.05.2019 14:55:02)

Vor jedem Chrome-Release kommt die entsprechende Version der JavaScript Engine So ist es auch mit Chrome 75: V8 75 steht ab sofort im Beta-Channel zur Verfügung, bis die entsprechende Browserversion da ist Neu im Release ist unter anderem das Caching bereits kompilierter WebAssembly-Artefakte

Im Abstand von etwa sechs Wochen werden neue Versionen von V8 veröffentlicht Nun ist Version 75 da: Das neuste Release befindet sich derzeit im Beta-Status, bis die korrespondierende Chrome-Version 75 veröffentlicht und die Engine somit final implementiert wird Neu in V8 75 ist, dass kompilierte WebAssembly-Artefakte nun im Cache vorgehalten werden Dadurch muss der Code nicht erneut kompiliert werden, wenn ein Nutzer eine Seite zum zweiten Mal besucht, sondern kann in vergleichbarer Weise wie JavaScript-Code aus dem Cache geladen werden

Ebenfalls für WebAssembly ist nun die Option memorycopy verfügbar Damit ist es möglich, große Speicherbereiche auf einmal zu aktualisieren, indem der Bereich kopiert wird Die gleiche Option existiert auch für Tabellen

Für den Kernbereich der Engine, den JavaScript-Sprachsupport, bringt V8 ebenfalls Neuigkeiten mit: Mit der neuen Version wurden Separationszeichen für Ziffernsymbole mit vielen Stellen im Code eingeführt, die die Lesbarkeit erhöhen sollen Außerdem wurde an der Performance gearbeitet: Der Datenverkehr des Netzwerks wird direkt mit der JavaScript Engine verbunden, sodass Daten direkt während des Stream Parsings gelesen werden können, ohne darauf warten zu müssen, dass der Hauptthread frei ist

Weitere Informationen zu V8 75 können dem Blogpost zum Release entnommen werden V8 75 wird final mit dem Release von Chrome 75 veröffentlicht

Der Beitrag V8 75: Neues für WebAssembly in der JavaScript Engine ist auf entwicklerde erschienen


Microsoft Edge für macOS: Erste Preview-Version erscheint im neuen Design (21.05.2019 11:52:20)

Die erste Preview-Version von Microsoft Edge für macOS ist da Für den ersten Auftritt von Edge auf macOS wurde die User Experience entsprechend angepasst, denn bisher war die Desktop-Version des Browsers nur für Windows als Preview verfügbar

Der neue Microsoft Edge, der auf Chromium basiert, soll cross-platform laufen ? soviel hatte Microsoft bereits angekündigt Bisher standen Previews für Windows 10, Android und iOS zur Verfügung, nun steht auf einem neuen Canary Channel der erste Build von Microsoft Edge für macOS bereit Er soll eine überarbeitete, auf macOS-User zugeschnittene User Experience und Designsprache mitbringen

Features von Microsoft Edge für macOS

In Microsoft Edge für macOS sollen wie in der Windows-Version installierbare, standardbasierte Progressive Web Apps PWA unterstützt werden Dazu zählen Inspektion und Debugging von PWAs mithilfe der Developer Tools im Browser Zudem sollen installierte PWAs in Dock, App Switcher und Spotlight wie eine native App aufgeführt werden

Die User Experience wurde im neuen Preview-Browser überarbeitet, denn sie soll Einstellungen bieten, die macOS-Nutzern vertraut sind So sollen etwa Schriftarten, Menüs und Tastatur-Shortcuts angepasst worden sein Mithilfe des Smileys neben der Adressleiste kann Feedback dazu gesendet werden

Einen Screenshot der Canary-Version hält Microsoft schon parat:

Microsoft Edge für macOS; Quelle: Microsoft

Laut Microsoft wurde neben der UX auch die spezifische Hardware auf Apple-Geräten berücksichtigt In der Edge-Preview soll die Touch Bar Webseiten-Shortcuts, das Wechseln zwischen Tabs und Videosteuerung unterstützen Die gewohnte macOS-Bedienung mithilfe von Trackpad-Gesten soll ebenfalls aktiviert sein

Touch Bar in Microsoft Edge für macOS; Quelle: Microsoft

Der neue Canary Channel läuft unter macOS 1012 und neuer Auch ein Dev Channel soll bald hinzukommen und kann parallel betrieben werden Der Canary Channel wird täglich mit Updates versorgt, der Developer Channel dagegen wöchentlich mit dem stabilsten Build aus der Canary-Reihe

Weitere Informationen zum neuen Canary Channel für Microsoft Edge für macOS gibt es auf dem Windows-Blog Der erste Canary Build steht zum Download bereit

Der Beitrag Microsoft Edge für macOS: Erste Preview-Version erscheint im neuen Design ist auf entwicklerde erschienen


Diese Seite wurde in 1.219868 Sekunden geladen