Skip to content

Windows 8 Apps entwickeln leicht gemacht, mit Hilfe von Code Beispielen

Windows 8 ist inzwischen schon ein paar Tage alt, ob sich das neue Kacheldesign bei den Anwendern in Zukunft durchsetzen kann, hängt sicherlich auch von den verfügbaren Apps ab. Während bei gängigen Systemen (Android, iOS) Tausende von Anwendungen zur Verfügung stehen, hinkt Microsoft noch hinterher.

DWriteHelloWorld

Dies will man in Redmond nun ändern und stellt den angehenden Entwicklern Windows 8 App Codebeispiele für C++, C#, JavaScript und VB.NET zu Verfügung. Das komplette Paket ist immerhin knapp 200 MB groß und bringt praktische Beispiele für diverse Windows 8 Anwendungen mit sich:

Die Auflistung zeigt nur einen kleinen Ausschnitt der verfügbaren Beispiele, insgesamt stehen knapp 260 Codebeispiele im Windows Entwicklungscenter für jede erdenkliche Anwendung zur Verfügung. Praktischerweise müssen die Examples nicht unbedingt heruntergeladen werden, denn der Code ist auch online einsehbar und bietet somit für Entwickler auch eine gute Möglichkeit kurz etwas nachzuschlagen (siehe Screenshot).


Netzwerk Grundlagen - Alles was man über IPv6 wissen sollte

Das die die freien IP Adressen zu Ende gehen ist nicht gerade neu, sie sind quasi schon aufgebraucht. Darum wird nun nach und nach von IPv4 (32bit) auf IPv6 (128Bit) umgestellt.
Statt denn bisher 4.294.967.296 möglichen stehen nun 340 Sextillionen (umgerechnet 600 Billiarden Adressen auf jeden Quadratmillimeter der Erdoberfläche) Adressen zur Verfügung, das sollte wohl vorerst ausreichen.

Durch die Masse an neuen IPs kann theoretisch jedem technischen Gerät auf Lebenszeit eine eigene Adresse zugewiesen werden. Dies ruft natürlich Datenschützer auf den Plan, denn das neue Protokoll erlaubt theoretisch eine Vollüberwachung, um den entgegen zu wirken wurden beispielsweise Techniken wie "Privacy Extensions" implementiert.
Was also bedeutet IPv6 für den Anwender, was kommt eigentlich auf Entwickler zu und wie sieht die technische Seite aus. Ich möchte an Hand eines kleinen Artikels diese Fragen klären.

Warum ist IPv6 die bessere Lösung

  • Wie oben bereits erwähnt, vergrößert sich der freie Adressbereich enorm (2 hoch 128).
  • Es gib keine Prüfsummen mehr im Header. Da TCP und Ethernet bereits eine besitzen, würde das die Übertragung verlangsamen.
  • IPv6 versucht selbständig die MTU herauszufinden.
  • Wiederherstellung von fragmentierten Paketen wird nicht von Routern gemacht sondern nur von Sender und Empfänger.
  • IPv6 unterstützt Erweiterungen, die angepasst werden können. So kann mit Next Header ein Erweiterungsheader definiert werden.
  • Der Header bei IPv6 hat eine feste Größe und macht es Hardwaredesignern einfacher.


Adressnotation

IPv4 wurde bisher in 8bit Gruppen notiert, für das neue IPv6 ist dies wenig sinnvoll, hier setzt man auf 16-Bit-Gruppen in hexadezimaler Form.
Daraus entstehen im Endeffekt 8 hexadezimale Blocks a 2 Byte getrennt durch einen Doppelpunkt.

  • Zum Beispiel: FFFF:0000:0000:0000:0000:0000:c0a8:1


Nullnummer

  • Führende Nullen können weggelassen werden, so verkürzt sich die Adresse auf
    • FFFF:0:0:0:0:0:c0a8:1
  • Insgesamt können Nullen auch ausgelassen werden, da eine Adresse automatisch mit Nullen gefüllt wird, bis sie eine Länge von 128bit erreicht:
    • FFFF::c0a8:1


CIDR Notation - Aufteilung des Adressraums

  • Die Classless Inter-Domain Routing Notation bleibt gleich:
    • FFFF:0000:0000:0000:0000:0000:c0a8:1/16
  • FFFF ist die Netzadresse
  • c0a8:1 die Hostadresse


Einteilung in Netzwerkklassen

  • Die Einteilung in Netzwerkklassen A,B und C entfällt ab IPv6

Richtige Eingabe im Browser mit Portangabe

Hier sollte die Adresse in Klammern eingefasst werden:

  • http://[FFFF::c0a8:1]:8080


Eine IPv4 Adresse in IPv6 umschreiben

  • 192.168.0.1 wird zu
    • ::FFFF:192.168.0.1
    • Ausgeschrieben zu 0000:0000:0000:0000:0000:FFFF:192.168.0.1
    • oder in hexadezimal zu ::FFFF:c0a8:1


IPv4 in IPv6 automatisch umrechnen

Adresstypen - Broadcast war gestern

Der klassische Broadcast fällt mit dem neuen Standard weg, dafür unterscheidet man in drei verschiedene Typen

  • Unicast
    • Die Unique Global Address steht für die eindeutige Zuweisung zu einem Gerät, ähnlich den nicht reservierten Adressen bei IPv4.
  • Multicast
    • Erhält bei IPv6 eine bessere Stellung durch den Wegfall des Broadcasts. Das heißt Daten werden von einem Sender zu einer Gruppe von Empfängern versendet, z.b. alle Router (FF02::2). Alle Adressen beginnen mit FF::/8.
  • Anycast
    • Die einzigen neuen Adressen bei IPv6 sind Anycast Adressen. Ähnlich wie beim Multicast werden hier Daten an eine Gruppe von Empfängern versendet, anders als beim Multicast gibt es aber nur einen Empfänger, nämlich derjenige der zuerst reagiert. Frei nach dem Motto "Wer zuerst kommt, malt zuerst". Der Aufbau ähnelt einer Unicastadresse, das Verhalten dem einer Multicastadresse.


Der neue Localhost

Was bis heute auf T-shirts zu finden ist (127.0.0.1) wird nun von 0000::1 abgelöst. In der Kurzschreibweise reicht sogar ein [::1]

Weitere Besonderheiten

  • FE80::/10 Adressen sind die neuen lokalen bzw. linklosen Adressen, vergleichbar mit 169.254.0.0/16
  • IPv6 Adressen sind globale Adressen, das heißt NAT wird eigentlich nicht länger benötigt. Obwohl das Port Forwarding nicht mehr nötig ist, verwaltet es weiterhin NAT Listen, um die Sicherheit zu wahren. Denn würde nicht per default der Zugang blockiert, wären interne Adressen von außen erreichbar.
  • IPv6 besitzt eine Art Autokonfiguration, die es erlaubt selbständig aus der eigenen MAC eine linklose Adresse zu erstellen, um sich an anderen Geräten zu melden. Somit wird ARP quasi überflüssig, bzw. wird nicht zwingend ein DHCP Server benötigt, um eine Adressverteilung zu automatisieren. Das neue Protokoll macht das automatisch alleine.

Techniken der Autokonfiguration

    • Router Discovery
    • Prefix Discovery
    • Parameter Discovery
    • Address Autoconfiguration
    • Address Resolution
    • Next Hop Determination
    • Neighbor Unreachability Detection
    • Duplicate Address Detection
    • Redirect

Wie hoch ist die Sicherheit von IPv6?

  • Mit den Standardeinstellungen wird eine IPv6 Adresse alle vier Stunden erneuert, ähnlich wie bei IPv4 lassen sich diese aber abändern.
  • Im Netz ist teilweise zu lesen, das die MAC Adresse in IPv6 eingebettet ist. Das stimmt so nicht ganz. Eine Einbettung wäre zwar möglich und würde so ein komplettes Tracking erlauben, wird in der Praxis jedoch nichts genutzt.
  • "IPv6 Address Privacy" nennt sich das Stichwort, diese Funktion sorgt dafür das die IPv6 Adresse neben der MAC Adresse aus einer Zufallszahl generiert wird und nicht zurückverfolgbar ist.
  • Mit Hilfe des Erweiterungsheaders "Authentication Headers" können Datenpakete auf ihre Echtheit überprüft werden und gewährleisten einen Transport ohne Manipulation
  • Verschlüsselung der Daten mittels "Encapsulating Security Payload Header". Ähnlich wie bei der Echtheitsprüfung wird ein Erweiterungsheader verwendet, der ein Verschlüsselung einbindet, die nicht Bestandteil von IPv6 ist.

Was muss ich als Anwender beachten?

Sollten keine Probleme auftreten, gibt es keine Besonderheiten zu beachten.

Was ändert sich mit IPv6 für Entwickler oder Admin?

  • Um einen Nutzer genau zu identifizieren, sind die ersten 4 hexadezimalen Blöcke relevant.
  • Für das Sperren der IP sollten alle Blöcke verwendet werden.
  • Alternativ kann auch das Subnet, also die ersten 4 Blöcke gesperrt werden.


Quelle, Quelle

GIMP 2.7.5 - Letzte Beta Version vor GIMP 2.8 mit Einfenstermodus

Wahrscheinlich soll es schon Ende März soweit sein und GIMP 2.8 ist fertig. Kurz vor dem finalen Release haben die Entwickler Version 2.7.5 als sozusagen "letzte Beta" veröffentlicht. Funktional hat sich in dieser Vorabversion Nichts mehr geändert, es wurden lediglich Fehler ausgebessert, davon aber einige.

Über die Neuerungen von GIMP 2.8 hatte ich ja schon kurz berichtet.

gimp

Die Änderungen für Interessierte:

  • UI:
    • Minor application menu fixes on the Mac
    • Make the toolbox arbitrarily resizable again
    • Add axis labels to the dynamics curves to make them more obvious
    • Fix dockable showing to do the right thing in both MWM and SWM
    • Fix some glitches in the tool preset UI, like proper sensitivity
  • Core:
    • Restore autoshrink functionality in the rectangle tools
    • Allow smudge to work with dynamic brushes
    • Make sure tool presets and tool options are consistent after loading
    • Add automatic tags for the folders a file lives in
    • Make the default Quick Mask color configurable
    • Fix Color Balance so the "range" setting actually makes a difference
  • Plug-ins:
    • Proper toplevel item sorting in the help browser
    • Use libraries instead of launching programs in file-compressor
    • Use the Ghostscript library instead of launching ghostscript
    • Allow to switch off antialiasing when importing from PDF
    • Embed the page setup in the main print dialog
    • Port Gfig to cairo
  • Libgimp:
    • Add PDB API to modify a lot of paint and ink options
  • Data:
    • Add a new set of default brushes and tool presets from Ramon Miranda
  • Developer documentation:
    • Update everything including app/ so all functions appear again
  • Source and build system:
    • Remove the unmaintained makefile.msc build system
    • Explicitly link plug-ins to -lm when needed
    • Also create .xz tarballs
  • General:
    • Lots of bug fixes
    • Tons and tons of translation updates

Java 7 Handbuch umsonst als Openbook

Im November hatte Openbook bereits Java ist auch ein Insel gratis zur Verfügung gestellt. Im neuen Jahr wird mit Java 7 - Mehr als eine Insel die erfolgreiche Serie fortgesetzt.  

java7

Christian Ullenboom beschreibt auf 1433 Seiten wissenswertes für erfahrene Java Programmierer. Egal ob Swing, XML, RMI,Webservices, JSP, Servlets Reflection, Annotationen, Logging und Monitoring, für jeden Entwickler sollte etwas dabei sein. Das freie Nachschlagewerk kann wie immer online gelesen oder im zip Format heruntergeladen werden.

Über 60 Entwickler Tools für Firefox

Firefox hat seinen Erfolg zum Großteil den vielen Plugins zu verdanken. Erst diese machen den Browser zu einer eierlegenden Wollmilchsau. Mozilla hat auf seinem Entwickler Blog eine kleine Auswahl von über 60 Plugins für Entwickler vorgestellt, die ich euch nicht vorenthalten will. Neben bekannten Plugins sind auch einige Erweiterungen für das Firebug Plugin dabei.

aurora_beta_firefox

Links zu den Erweiterungen findet ihr im Originaleintrag

  • Accessibility Evaluation Toolbar
  • All in One Sidebar
  • Cache Status: Cache Verwaltung
  • CacheToggle: Browser Cache löschen
  • Colorzilla: Farben Manager
  • Console²: ersetzt die JavaScript Console
  • CSS Reloader: CSS einer Seite neu laden
  • DOM Inspector: DOM untersuchen
  • Firefogg: Video und Audio encodieren
  • FireFTP: FTP/SFTP Client für Firefox
  • FireUnit: JavaScript Unit Testing 
  • FoxGuide: Layout Tool
  • FoxyProxy. Proxy Verwaltung
  • Geolocater: Standortbestimmungen anpassen
  • GreaseMonkey: Webseiten modifizieren
  • HTML Validator. Validierungstool
  • HttpFox: HTTP analysieren
  • iMacros for Firefox: Firefox automatisieren
  • Jenkins Build Monitor: Jenkins in der Statusleiste
  • jQuery extension: jQuery und jQuery UI  im Browser.
  • JSONovich: Druckt JSON Inhalte
  • JSONView: JSON Dokumente im Browser betrachten.
  • JSView: JS Dateien einzeln betrachten oder laden
  • Link Widgets: Navigation vereinfachen
  • Live HTTP Headers: Zeigt die HTTP Header einer Seite an
  • LiveReload: Seite neu laden
  • MeasureIt: Lineal für Webseiten
  • Modify Headers: HTTP request Header anpassen
  • NoScript: Scripte blockieren
  • PageSpeed: Web Performance messen
  • PixelZoomer: Screenshot und Pixelanalyse Tool
  • Pixlr Grabber: Screenshot Tool
  • Poster: Web Services testen
  • QuickJava: Java, Javascript, Flash, Silverlight über Statusbar aktivieren
  • Rainbow: Farben Management
  • Regular Expressions: Reguläre Ausdrücke testen
  • Remove Cookie(s) for Site: Alle Cookies einer Seite entfernen
  • Screenshot Pimp: Screenshot Tool
  • SQLite Manager: SQLite Datenbanken verwalten
  • Selenium IDE Buttons: Selenium IDE öffnen
  • SeoQuake SEO extension: SEO/SMO Erweiterung
  • ShowIP: IP anzeigen
  • Stylish: Themes und Skins für Google, Facebook, YouTube, Orkut...
  • Tamper Data: HTTP/HTTPS Header anzeigen und anpassen
  • TAW3
  • Tilt 3D: 3D Visualisierung einer Seite (WebGL)
  • Total Validator: Verschiedene Validierungsprozesse
  • TryAgain: Webseite neu laden
  • User Agent Switcher: Browserbenutzer wechseln
  • Wappalyzer: Backend Technologie einer Webseite anzeigen
  • Web Developer: Entwicklersammlung

Firebug Erweiterungen

  • Acebug: Syntax Highlighting
  • Code Coverage: Javascript code coverage.
  • CSS Usage: Verwendete CSS Regeln betrachten
  • Firecookie: Cookieverwaltung
  • Firefinder: Findet HTML Elemente zum passenden CSS Selektor
  • FirePHP
  • FireQuery
  • friendly bug: Einfachere Verwendung
  • Inline Code Finder: Inline JavaScript events, Inline style oder javascript: links finden
  • FireRainbow: Javascript syntax highlighting
  • NetExport: Daten aus Firebug in  HTTP Archive oder JSON sichern
  • Pixel Perfect: Overlays entwerfen
  • YSlow: Webseitenperformance messen