Optionals in Swift — Fluch oder Segen?

Viele Programmiersprachen unterscheiden zwischen Wert- und Referenztypen. Werttypen sind für elementare Daten gedacht, vor allem Zahlen. Referenztypen enthalten dagegen Verweise auf Objekte. Sie können null sein, also nicht initialisiert, leer.

Swift unterscheidet ebenfalls zwischen Wert- und Referenztypen. Allerdings ist in Swift vieles ein Werttyp, was in anderen Sprachen ein Referenztyp wäre — Arrays, Dictionaries, Sets etc. Die eigentliche Besonderheit ist aber der Umgang mit dem Zustand null, der in Swift nil heißt:

  • »Gewöhnliche Variablen« — egal, ob Wert- oder Referenztypen — müssen vor vor der ersten Verwendung initialisiert werden; in Klassen muss die Initialisierung im Rahmen der Deklaration oder durch die init-Funktion erfolgen.
  • Nur wenn die Variable zusätzlich als »Optional« gekennzeichnet wird, ist auch der Zustand nil erlaubt. Optionals gibt es gleichermaßen für Wert- und Referenztypen.

Optionals in Swift — Fluch oder Segen? weiterlesen

CentOS: Probleme beim Update von 7.0 auf 7.1

Wenn Sie regelmäßig yum update ausführen, ist aus Ihrer CentOS-7-Installation schon seit geraumer Zeit CentOS 7.1 geworden. Nicht so fleißige Administratoren haben aber Pech: Wenn Sie einige Wochen lang kein Update durchgeführt haben, dann scheitert der Update-Versuch jetzt.

Der Grund: Eine Woche nach dem Update von CentOS 7 auf 7.1 wurden die Mirror-Verzeichnisse umgestellt, von 7.0.1406 auf 7.1.1503. Standardmäßig ist deltarpm aktiv, d.h. die Paketverwaltung versucht, nur Delta-Pakete herunterzuladen. Und das scheitert wegen der Versionsumstellung. Sie erhalten lauter HTTP Not Found Fehlermeldungen.

CentOS: Probleme beim Update von 7.0 auf 7.1 weiterlesen

Raspberry Pi 2: Das ganze GByte RAM nutzen

free zeigt nach einer Raspbian-Neuinstallation aus NOOBs (2015-02-02) auf einem Raspberry Pi 2 einen Gesamtspeicher von nur 744 MByte an. Das ist natürlich besser als bisher, aber weniger als erwartet. Der Pi 2 ist ja mit einem GByte RAM ausgestattet.

free -h
             total   used   free   shared  buffers  cached
Mem:          744M   715M    29M       0B      27M    332M
-/+ buffers/cache:   355M   389M
Swap:          99M     0B    99M

Raspberry Pi 2: Das ganze GByte RAM nutzen weiterlesen