Sonntag, 27. September 2015

September 2015 - Windows 10 & Windows Holographic

Windows 10


Microsoft Windows 10 ist das momentan neuste Betriebssystem von Microsoft.
Es wurde am 29. Juli 2015 veröffentlicht und ist der Nachfolger von Windows 8.1. Windows 10 wurde zusammen mit dem Windows Server 2016 (welcher noch nicht erschienen ist) am 30 September 2014 vorgestellt und seit dem 1. Oktober 2014 gab es die "Technical Preview" (Beta-Version) zum Testen. Des Weiteren wird das neue Betriebssystem kostenlos als Upgrade für einen begrenzten Zeitraum angeboten, sofern man zuvor ein Windows 7 oder Windows 8 Betriebssystem hatte.


Die wichtigsten Neuerungen

Starmenü

Eines der wohl wichtigsten Neuerungen gegenüber Windows 8(.1) ist die Rückkehr des Startmenüs.
In dieser Version sind auf der linken Seite wieder  die häufig benutzten Programme und im rechten Bereich lassen sich nun Kacheln hinzufügen. Auf diese Art ist die Funktion des Startbildschirms von Windows 8.1 in das neue Starmenü integriert.


Startmenü Windows 8.1

Startmenü Windows 10


Lauffähigkeit

Windows 10 ist auf vielen verschiedenen Geräten lauffähig. Neben den Desktop-Computern und Notebooks gibt es das Betriebssystem auch für Tabletcomputer, Smartphones, Embedded Devices, Convertibles, das Raspberry Pi 2 und die Xbox One.
Wobei Windows 10 je nach Gerät nur über eingeschränkte Funktionen verfügt.



Webbrowser
Microsoft Edge

In Windows 10 wurde der bis dahin standardmäßige Webbrowser "Internet Explorer" abgelöst und durch "Microsoft Edge" ersetzt. 
Eine neue Funktion des Webbrowsers ist, dass Websites nun mit Notizen versehen werden können und das so entstandene Dokument, ähnlich einem Screenshot, mit anderen Leuten geteilt werden kann. Ein "Lesemodus" kann störende Elemente auf der Seite ausblenden, um somit einen besseren Lesefluss zu erhalten. Zudem gibt es einen Lesezeichen-Service, mit dem gesetzte Lesezeichen auf mehreren Geräten verfügbar gemacht werden sollen.
Microsoft Edge ist, wie schon sein Vorgänger, fest in das Betriebssystem integriert, so dass der Webbrowser das in Windows 10 integrierte Adobe Flash-Plug-in nutzt und auch PDF-Dokumente ohne zusätzliche Tools anzeigen kann. Auch werden Updates wieder über die Windows-Update-Funktion bereitgestellt.
Jedoch erhielt Microsoft Edge einige Kritik wegen nicht richtig funktionierenden oder fehlenden Funktionen.


Microsoft Edge




Multidesktop

Ein weiteres neues Feature in Windows 10 ist "Task View". Mit diesem Feature können mehrere virtuelle Desktops aktiviert werden, zwischen denen der Benutzer beliebig wechseln kann. Man verfügt so also praktisch über mehrere Desktop Oberflächen. Eine maximale Anzahl an virtuellen Desktops gibt es eigentlich nicht, jedoch ist man durch die Bildschirmauflösung eingeschränkt. Es ist auch möglich, mehrere virtuelle Desktops zu einem zusammenzufügen, jedoch lassen sich keine geöffneten Fenster von einem Desktop in den anderen verschieben.


Task View



Apps

Seit Windows 10 gibt es nun keine unterschiedlichen Versionen des Windows-Stores mehr (früher zwischen Windows Phone und anderen Windows Versionen aufgeteilt), sondern einen einheitlichen Store für alle Versionen. Apps, die vorher nur bildschirmfüllend verwendet werden konnten, können nun auch in normalen Fenstern geöffnet werden.



Release-Modell

Windows 10 soll die letzte Windows-Version sein. Zukünftig sollen keine neuen Versionen mehr veröffentlicht werden, sondern immer nur Windows 10 aktualisiert werden. Das bedeutet, dass PCs mit Windows 10 nicht nur Fehlerbehebungen, sondern auch komplett neue Funktionen erhalten sollen.



Systemanforderungen


Folgende Mindestanforderungen sind von der Hardware erforderlich, um Windows 10 zu verwenden:

















Windows Holographic

Windows Holographic ist eine von Microsoft entwickelte Plattform für die Entwicklung von Augmented-reality-Anwendungen. In Verbindung mit Windows 10 soll Windows Holographic im Herbst 2015 erscheinen. So soll es möglich sein, Anwendungen unter Windows 10 mit Möglichkeiten der Augmented-reality zu ergänzen.
Microsoft hat hierzu eine eigene Datenbrille - die HoloLens - entwickelt. Es wird jedoch auch Hardware anderer Hersteller unterstützt, beispielsweise die Oculus Rift.



Microsoft HoloLens

Die HoloLens ist, wie schon erwähnt, eine Datenbrille, die von Microsoft entwickelt wurde. Das Gerät besitzt zwei durchsichtige Displays mit hoher Auflösung, die von Microsoft als "Linsen" bezeichnet werden. Des Weiteren verfügt die Brille über "3D-Sound", wodurch der Träger die Richtung von Tönen wahrnehmen kann. Die Brille hat zudem mehrere eingebaute Kameras, mit denen es auch möglich sein soll, die Umgebung abzuscannen und daraus eine dreidimensionale Ebene zu erzeugen.
Die HoloLens kann eigenständig verwendet werden, das bedeutet, sie funktioniert auch ohne Computer oder Smartphone. Sie wird über Gesten, Sprache, Kopf- und Augenbewegungen sowie einige kleine Knöpfe bedient.
Bislang konnten nur sehr wenige Personen die HoloLens testen, es gibt jedoch schon Kritik, dass das Sichtfeld ziemlich eingeschränkt sei.




Microsoft HoloLens


















Dienstag, 8. September 2015

August 2015 - Java

Im neuen Semester behandeln wir in der Schule das Modul 226 "Objektorientiert entwerfen und implementieren". Momentan geht es in diesem Modul um die Java Programmierung. Als IDE verwenden wir Eclipse.


Java

Java ist eine objektorientierte Programmiersprache, die 1995 von Sun Microsystems entwickelt wurde. 2010 wurde die Firma von Oracle aufgekauft. Die Java Technologie besteht grundsätzlich aus dem Java-Entwicklungswerkzeug (JDK) zum Erstellen von Programmen und der Laufzeitumgebung (JRE), für die Ausführung der Programme. JRE umfasst sowohl die Bibliotheken als auch die virtuelle Maschine (JVM).  Zweck der Virtualisierung ist die Plattformunabhängigkeit. Das erstellte Programm soll so ohne weitere Änderungen auf jeder unterstützten Rechnerarchitektur laufen können. Von Oracle selbst unterstützte Betriebssysteme sind: Windows, OS X, Linux und Solaris. Andere Hersteller lassen eigene Java-Laufzeitumgebungen für ihre Plattform zertifizieren.
Beim Ausführungsvorgang kann die JVM den Code interpretieren und ihn bei Bedarf kompilieren und auch optimieren.
Java gehört zu den populärsten Programmiersprachen nach C.

Grundkonzepte

Die hauptsächlichen Ziele beim Entwurf von Java waren:
- einfache, objektorientierte Programmiersprache
- robust und sicher
- architekturneutral und portabel
- sehr leistungsfähig
- interpretierbar und dynamisch


Syntax

Die Syntax von Java ist leicht verständlich und ist in der "Java Language Specification" von Oracle dokumentiert.

Beispiel eines einfachen "Hallo Welt"-Programms, das den Text auf der Konsole ausgibt:

 public class HalloWelt {
     public static void main(String[] args) {
         System.out.println("Hallo Welt!");
     }
 }

Datentypen

In Java gibt es zwei Datentyparten: - primitive Datentypen
                                                    - Referenzen


Primitive Datentypen:
Es gibt acht verschiedene primitive Datentypen. Sie unterscheiden sich in Grösse und Eigenschaften. Alle diese Datentypen verfügen über eine fest definierte Grösse, die für alle Plattformen gleich ist.










Typumwandlung:

Alle numerischen Datentypen lassen sich verlustfrei in den nächstgrösseren Datentyp umrechnen. So kann zum Beispiel ein "int" ohne speziellen Operator in ein "long" umgewandelt werden:

        int   i = 255;
        long l = i;



Umgekehrt funktioniert dies jedoch nicht einfach so. Um beispielsweise einen "long" in einen "int" umwandeln zu können, benötigt man den Typumwandlungsoperator. Dabei können jedoch auch Informationen verloren gehen:

        long l = 12345678901;
        int   i =  (int) l;


"boolean" kann in keinen anderen Datentypen umgewandelt werden. Datentypen vom Typ "char" können in jeden ganzzahligen Typ ab "int" umgewandelt werden.


Referenzen:
Alle Objekte und Felder werden über eine Adresse referenziert. In Java ist der Objektzugriff über Referenzen implementiert. In der Sprachdefinition werden sie als "Reference Values" bezeichnet. Das soll verdeutlichen, dass sie durch "Call-by-Value" übergeben werden.

Beispiel:

Object a = new Object() 

Ein neues Objekt wird erstellt, auf das die Referenz "a" referenziert.

Object b = a;            

Eine neue Referenz "b" wird erstellt und referenziert auf dasselbe Objekt wie "a".


Methoden

Das eigentliche Verhalten von Objekten wird in Methoden definiert. Die Methodensignatur besteht aus ihrem Namen und den Typen ihrer Parameter. Zusätzlich hat jede Methode einen bestimmten Rückgabetyp oder es wird "void" verwendet, wenn sie nichts zurückgeben soll.


Beispiel einer Methode:

 public static double summe(double a, double b)
    {
        return a + b;
    }


"a" und "b" sind hier die Parameter, die übergeben werden. Die Methode addiert die übergebenen Parameter und gibt das Resultat als "double" zurück.


Arrays

In Java ist ein Array ein eigenständiges Objekt. Dieses kann Elemente eines bei der Deklaration festgelegten Datentyps aufnehmen. Dazu muss die Länge des Arrays angegeben werden, die beschreibt, wie viele Elemente das Feld besitzen kann. Die Grösse eines Arrays ist fix und kann nach der Instanziierung nicht mehr geändert werden. In Java gibt es eigentlich keine mehrdimensionalen Arrays, es ist jedoch möglich, mehrdimensionale Arrays zu erstellen, indem man Arrays in Arrays verschachtelt.

Beispiel zur Deklaration:

int[] array = new int[3];

Auf der linken Seite des "=" wird die Objektreferenz deklariert und auf der rechten Seite wird das Feld mit der angegebenen Grösse initialisiert.

Um das Array nun mit Elementen zu füllen, macht man folgendes:

int[] array = new int[3];
array[0]=1;
array[1]=2;
array[2]=3;


Die Werte in den eckigen Klammern sind die jeweiligen Indexe. Der Index muss angegeben werden, um auf den gewünschten Wert zugreifen zu können.



Verzweigung

Wie in vielen anderen Sprachen gibt es auch in Java eine if/else-Verzweigung. Die Bedingung muss in Java ein boolescher Wert (true oder false) sein, was bei anderen Sprachen wie etwa C nicht unbedingt der Fall sein muss. Des Weiteren gibt es in Java das Schlüsselwort "then" nicht. Das Schlüsselwort "else" ist, wie in den meisten Programmiersprachen üblich, nur optional.

Syntax:


if (<Bedingung>)
    <Anweisung>;
else
    <Anweisung>;


Eine weitere Möglichkeit, eine Verzweigung in ein Programm einzubauen, ist die Fallunterscheidung mit "switch" und "case". Die Syntax ist folgende:

switch (''Ausdruck'') {
   case ''Konstante1'': ''Anweisung1''; break;
   case ''Konstante2'': ''Anweisung2''; break;
   default: ''Anweisung3'';
}

Trifft eines der "case" zu, wird die Anweisung darin ausgeführt. Danach folgt ein "break", da sonst der weitere Code auch noch ausgeführt werden würde.
"default" wird ausgeführt, falls keines der "case" zutreffen sollte.