Tobias Nebel
18. Jun, 2008
PNAs (Personal Navigation Assistant / “Navi”) sind seit geraumer Zeit in immer mehr Formen, Farben und Ausführungen von verschiedensten Herstellern erhältlich. Diese Geräte haben einen eingebauten GPS-Empfänger und benötigen deshalb keine zusätzliche Hardware. Doch es steckt noch viel mehr in diesen Geräten: In der Regel ist auf solchen Geräten ein MS Windows Mobile oder MS Windows CE installiert. Deshalb verfügen die meisten dieser Geräte auch über zusätzliche Features, wie beispielsweise die Funktion als Multimedia-Player.
Doch es geht natürlich auch andersherum: Man kann jedes gängige Betriebssystem mit einem externen GPS-Empfänger, einer so genannten GPS-Maus, ausstatten. Diese Geräte sind mit allen erdenklichen Schnittstellen zum Endgerät, wie beispielsweise RS232, PCMCIA, USB und seit neuestem auch Bluetooth, erhältlich (wobei letztere drei Varianten ebenfalls einen virtuellen RS232-Port zur Verfügung stellen). Mit entsprechender Software lassen sich dann die meisten PCs, Notebooks, Handhelds und sogar neuere Mobilitelefone in Navigationsgeräte “verwandeln”.
Weiterlesen »
Schlagworte: Bluetooth •
GPS •
Logistik •
NMEA •
RS232 •
USB
Tobias Nebel
19. Mai, 2008
Viele objektorientierte Programmiersprachen wie Java behandeln Daten als Objekte, welche ihrerseits Instanzen von Klassen darstellen. Jedes Objekt ist dabei eindeutig über seine Referenz identifizierbar. Beim Aufruf einer Methode werden nicht die Objekte selbst übergeben, sondern nur deren Referenzen. Eine Zugriff auf das Objekt mittels der übergebenen Referenz ist daher von überall aus durchführbar.
Dennoch kennt Java aufgrund seiner Abstammung aus der C-Familie auch primitive Datentypen wie int, long, float, double etc. Wird einer Methode ein Argument eines primitiven Datentypens übergeben, erhält diese jedoch keine Referenz, sondern nur den Wert der Variablen (call-by-value). Primitive Datentypen können mit der Hilfe spezieller Klassen wie Integer, Long , Float, Double usw. in Objekte verwandelt werden. Diese Klassen werden Wrapper genannt. Den Vorgang des Ein- und Auspackens der primitiven Variablen in Wrapper bezeichnet man als boxing bzw. unboxing. Boxing und unboxing sind z.B. erforderlich, wenn primitive Datentypen in einer Liste gespeichert werden sollen, da die von Java zur Verfügung gestellten Containerklassen nur Objekte unterstützen. Weiterlesen »
Schlagworte: Java
Tobias Nebel
18. Apr, 2008
Analyse, Generierung oder auch Manipulation von Java-Programmen zur Laufzeit sind nützliche Technologien in der Java-Softwareentwicklung. Durch diese Funktionen können beispielsweise Ansätze wie die Aspekt-orientierte Programmierung (AOP) werden. Dabei können diese Funktionalitäten sowohl am Quellcode, als auch an bereits compiliertem Bytecode realisiert werden. Der Vorteil der Bytecode-Manipulation besteht darin, dass kein erneutes Compilieren des Quellcodes notwendig ist. Zu genau diesem Zweck existieren verschiedene Bibliotheken mit jeweils verschiedenen Ansätzen und Zielen. Die wohl bekanntesten Bibiotheken sind ASM von ObjectWeb, BCEL von der Apache Software Foundation und Javassist als Unterprojekt von JBoss. In diesem Beitrag sollen Eigenschaften dieser Bibliotheken kurz beleuchtet werden.
Weiterlesen »
Schlagworte: AOP •
ASM •
BCEL •
Bytecode •
Javassist •
Performance