Stanford 2014 Highlight

Tim Cook

Wie jedes Jahr ist Objectix auf kleiner, zweiwöchiger Scouting-Tour in San Franzisko und Umgebung. Speziell Stanford hat sich wegen seiner Nähe zu vielen spannenden Unternehmen und der hohen Dichte an Innovationen als kleine Objectix Dependance herauskristallisiert. Nachdem das Office (Starbucks) die Bandbreite extrem verbessert hat (heisst nun auch Google-Starbucks- Wifi), sind wir dort morgens und abends gern gesehene Stammgäste. Auch unsere kulinarischen Vorlieben sind bekannt. Sicher werden wir dort eine Lücke hinterlassen, wenn es am Freitag wieder in die Heimat geht. Das diesjährige Highlight war aber sicher der mehrmalige Kontakte zu Tim Cook. Sehen kann man ihn aber nur vor 6:30, da er gegen 6:00 seinen Latte-Macchiato hier trinkt und E-Mails liest. Tatsächlich ist er sehr unkompliziert und freundlich. Einmal verstörte ihn nur mein am MacBook angeschlosses HTC One, auf dem ich gerade ein Landwirtschaftsprojekt entwickle. Da das Bild aber mit meinem iPhone6 entstand, war er beruhigt.

Weiterlesen

AngularJS: Ein JavaScript-Framework für dynamische Web-Applikationen

AngularJS-largeVor allem das Jahr 2012 hat eine Vielzahl von “produktionstauglichen” MVC-Frameworks für JavaScript hervorgebracht. Neben Frameworks wie Backbone.js oder Ember.js hat niemand geringeres als Google nun sein eigenes Framework ins Rennen geschickt: AngularJS unterscheidet sich deutlich von den “üblichen” MVC-Frameworks in der Art und Weise, wie es funktioniert und wie damit programmiert wird. Nachfolgend sollen kurz die wesentlichen Konzepte von AngularJS erläutert werden.

  • Directives: Unter der Haube ist AngularJS vereinfachend ausgedrückt zunächst ein DOM-Compiler, welcher den durch das ursprüngliche HTML-Dokument definierte DOM in einen anderen DOM transformiert. Diese Transformation beruht vor allem auf sogenannten “Directives”, welche bestehende HTML-Elemente (wie <div> oder <p>) erweitern oder neue Elemente HTML-konform realisieren können. AngularJS selbst baut massiv auf Directives auf, um eine Vielzahl seiner Funktionen zu realisieren.
  • Two-way Data Binding: AngularJS begnügt sich nicht damit, Model-Objekte einzuführen, sondern ermöglicht es dem Entwickler, einzelne Elemente seiner UI auf bi-direktionale Weise an einzelne Elemente eines Models zu binden. Der Clou dabei ist, dass bei einem Update des Models die daran gebundenen UI-Elemente automatisch und ohne weiteres Zutun des Entwicklers entsprechend aktualisiert werden. Umgekehrt werden Anwendereingaben (z. B. solche die in einem <textarea>-Element getätigt werden) automatisch und unmittelbar in das Model übernommen.
  • Scopes: ein Controller in AngularJS sollte niemals den DOM direkt modifizieren, sondern diese Modifikation immer über Directives und Scopes machen. Ein Scope ist das Bindeglied zwischen einem Controller und der durch ihn kontrollierten View (hier verstanden als DOM-Struktur). In ihm werden sogenannte “Watches” realisiert, welche zur Reaktion eines Controllers auf bestimmte Änderungen im Model bzw. in der DOM-Struktur verwendet werden, bspw. die Eingabe eines Textes in ein Texteingabefeld oder die Aktualisierung einer Checkbox infolge einer Änderung im Model). Die Installation der Watches wird dabei durch “Link-Funktionen” implementiert, welche über den Scope DOM-Elemente mit dem Model assoziieren. Scopes sind hierarchisch organisiert, und Directives haben in der Regel ihren eigenen Scope, der allerdings bei Bedarf auch Daten vom  sog. “Parent-Scope” übernehmen kann. Scopes unterstützen damit die Prinzipien der Informationskapselung und der Informationsvererbung.
  • Dependency Injection: besonders erwähnenswert ist die Verfügbarkeit von Dependecy Injection (DI) in AngularJS. Controller bekommen die für sie relevanten Objekte, Models und Services durch den Injector-Service über ihren Konstruktor hineingereicht, anstatt diese selbst zu beschaffen. Ein Controller definiert somit über seinen Konstruktor lediglich, welche Abhängigkeiten er hat und überlässt alles andere AngularJS.
  • Modules: jede größere Web-Applikation sollte in einzelne Module zerlegt werden, um die Übersichtlichkeit und Wartbarkeit zu unterstützen. AngularJS stellt zu diesem Zweck “Modules” bereit, welche quasi als Namespace fungieren. Einem Module kann man Controller, Services und Models zuweisen, welche dann in den HTML-Templates verwendet werden können.

Und wie sieht nun ein einfaches AngularJS-Programm aus? Das werden wir uns im nächsten Post genauer anschauen.

Weiterlesen

ECR 2013 – ein riesiger Erfolg

Die Erwartungen waren hoch und sie wurden mehr als erfüllt. Nach dem ich nun schon auf einigen Kongressen und Messen als Vertreter der jeweiligen Unternehmen und Produkte war, war dieses Jahr der absolute Höhepunkt. Es gab praktisch keine Pausen. Vom Start bis zum Ende wurden wir belagert und zeigten unsere Infrastruktur zum up3coach. Neben vielen neuen Nutzern haben wir auch unsere wichtigsten Partner treffen und sprechen können, die Autoren. Vielen Dank allen Beteiligten!

Standfoto

Weiterlesen

rollup-768x1024-teaser

Objectix auf dem ECR 2013

rollupAuf dem ECR 2013 in Wien werden wir gemeinsam mit University Publisher aus Wien den up3coach vorstellen. Dieses für University Publisher entwickelte System bestehend aus drei Komponenten wird erstmals einer größeren Öffentlichkeit präsentiert. Mit mehreren kostenfreien und kostenpflichtigen radiologischen Fallsammlungen gehen wir an den Start. Unsere Freunde von University Publisher und wir sind sehr gespannt, wie die internationale Fachwelt auf die innovative und neue Art der Wissensvermittlung in der Radiologie reagieren wird. Markus ist mit auf dem Kongress und wird berichten.

Weiterlesen