wiki:dgf

Version 11 (modified by dgf, 8 years ago) (diff)

javascript live editing

Danny Gräf

bottlenecks, todos, changes, ...

  • blueprints API compatible mehtagraph
    • multi tenancy (brain)
    • database independent
    • large data sets (titan <-> casandra|hbase)
    • remote graph access, especially in test environment
  • websocket support (OSGi <-> ActiveMQ <-> camel <-> stomp <-> socket.io)
  • webclient
    • inline editor (ace)
      • field, page and map renderer
      • client interaction (repl)
    • UI binding with view model and template renderer that supports live editing
    • map and topic live collaboration (needs websocket)
    • spreadsheet renderer (include dm4-webclient prototype)
    • navigation and routing support (sammy)
    • association type editor and customizable renderer
    • svg map renderer
      • browser interaction
      • styling a unique topic
    • mini- and uglify (require amd)

dmx DeepaMehta X Enterprise

verteilte asynchrone Server / Client Lösung mit beliebigen P2P Verbindungen

minimale Integration von Standardkomponenten

ANY Device Plattform mit APPs auf unterschiedlichsten Plattformen

Map-basierte individualisierbare generische UI

Server

kann von mehreren Anwendern genutzt (z.B. Teams, Büros, Firmen)

externe Graph DB über blueprints: Neo4j, Titan (hbase, Cassandra), OrientDB, ...

Load Balancing: Aufsplittung in Daten-, Worker-, Query-, Filter-, Web-, Message-, ...-knoten

AAA Authentication + Accounting: LDAP, OpenID Authorization: ACL Umsetzung

Polyglot Persistence

http://martinfowler.com/bliki/PolyglotPersistence.html

externe Datenquellen: SQL, Dateisystem, Java Content Repository JCR (Apache Jackrabbit)

externer Index und Suchservice: Solr

verteilte Transaktionen mit Java Transaction API JTA

Client

kann auf dem Desktop einfach gestartet und lokal genutzt werden

Web Application Archive WAR

kann einfach in einem Servlet Container gestartet werden

semantische Datenhaltung

kollaboratives verteiltes Content Management (shared editing, PGP signed)

zusätzliche Topic Informationen wie Geo Daten automatisch zuordnen

Traversierung API (Adaptierung von blueprints pipes?)

Query Cache, Result Paging, Sequence

Referenzierung von Textzeilen, -absätzen, -teilen

Versionierung

http://patrick.wagstrom.net/weblog/2011/09/22/graph-databases-and-revision-history/ Alle Transaktionen als Commit Knoten in einer Sequenz ablegen (git nutzbar?)

generischer Webclient

Modellierungswerkzeug (Typen und Instanzen interaktiv ändern)

Association Type Editor (Richtung, Farben)

SVG Renderer mit Map Overlay / Layern und Hierarchie Beispiele:

  • durchsichtige Rahmen die das Fenster der anderen User auf der Map anzeigen
  • Polygone, Notiz Zettel
  • Komponenten-, UML-Diagramme

HTTP Push Kommunikation zw. dezentralem Backend und Webclient über Messages (EIP, JMS, Stomp, ...)

generische Fehlerbehandlung! keine Nachrichten sind Gute!

Script Topic Editor

Mit dem Datentyp Skript können Renderer und andere Client Komponenten als Topics gespeichert und im Browser bearbeitet werden (AMD, reload mit processing.js)

Framework

modulares App Framework (Plugin, Bundle, Module)

Rapid Application Development RAD

Feature basierte Orchestierung mit in-line Plugin Management und Repository

Client Bibliotheken mit nativer API in mehreren Sprachen: Java, PHP, JavaScript?, ...

Core Plugins in mindestens zwei Sprachen: Java, Jruby, Scala, ...

Hot Deploy and Development

Equinox OSGi runtime (in Eclipse live)

Dateibasierte Bearbeitung mit live sync, wie Vertices in vert.x oder wie Play!

Personal Information Management PIM

alle auf Smart Phone unterstützten PIM Daten synchronisieren: Kontakte, Termine, Bilder, Musik, ... wie iTunes, iGoogle, ...?

SMTP, IMAP, Active Sync, iCal, ...

Domain / Workspace

können im Peering synchronisiert (Kopie) und für live Zugriffe (Proxy) frei gegeben werden

Live Coding Environments

Recherche und kleiner geschichtlicher Rundblick, die meisten Projektseiten enthalten kurze Intro Videos

Mit Lisp und Scheme fing alles an und auf SmallTalk bauen nahezu alle Desktop Paradigmen seit den 80'er.

sehr aktiv ist durchgehend die musikalische und visuelle Künstlerszene, ein Portal mit aktuellen Entwicklungen und vielen Video Beispielen ist TOPLAP

Begriffsklärungen:

  • Live Coding = in der laufenden Umgebung die Welt ändern
  • Homoikonizität = Selbstabbildung

Lisp

eine aktuelle JVM basierte Implementierung ist Clojure

SmallTalk

es gibt einige kommerzielle Implementierungen

seit langem gibt es die Open Source Umsetzung Squeak und darauf basierend einige Kollaborationsplattformen OpenCobalt und OpenCroquet

eine Modularisierung von Squeak, mit der Bestrebung eine reproduzierbare und kontinuierlich testbare Umgebung zu schaffen, ist im Projekt Pharo realisiert

live im Browser kann SmallTalk auch:

von !VMware supported gibt es mittlerweile GLASS (GemStone, Linux, Apache, Seaside, and !Smalltalk) Auszug aus dem Programming Guide

GemStone provides a wide range of services to help you build objects-based information systems. GemStone:

  • is a multi-user object server
  • is a programmable server object system
  • manages a large-scale repository of objects
  • supports partitioning of applications between client and server
  • supports queries and indexes for large-scale object processing
  • supports transactions and concurrency control in the object repository
  • supports connections to outside data sources
  • provides login security and account management
  • provides services to manage the object repository
  • provides comprehensive statistics and charting for performance tuning

REALLY NICE talk: http://www.youtube.com/watch?v=YX3iRjKj7C0

HyperCard

Vorgänger vieler dynamischer Oberflächen mit dem fast natürlichsprachlichen HyperTalk Eine Suche nach Videos zeigt wie weit die IT schon mal war...

Es gab auch Versuche die bestehenden Anwendungen ins Web zu bekommen, das Projekt TileStack ist dabei leider organisatorisch gescheitert

LiveCode

LiveCode ist eine kommerzielle Entwicklungsumgebung

multi Plattformen mit HyperTalk ähnlicher Sprache, trotz des Namens aber eher semi live ;-)

Lively Kernel

Lively Kernel JavaScript basierte Web IDE im SmallTalk Stil, aktuell weiter entwickelt am Hasso Plattner Institut (ist auch sehr aktiv in der Community, z.B. Seaside Guide und setzt SmallTalk in der Lehre ein)

spannende Entwicklung allerdings fehlt Kollaboration usw.

sehenswerte Videos

Text Interface

Acme

Plan 9 Editor der die Ausführung und Verlinkung von Text dynamisch ermöglicht.

Xiki

Xiki ist eine moderne Umsetzung von Acme auf Linux mit Erweiterungen u.a. für Datenbankzugriff und Browsersteuerung

Music Development

alle eine Videosuche wert, Wahnsinn was alles so geht ;-)

  • Fluxus Sound und 3D Game Engine (Lisp)
  • PureData grafisches programmieren inkl. Hardware Anbindung
  • Overtone Audio Environment (Clojure, graphischer Editor in Arbeit)
  • Gibber live im Browser (JavaScript) - try it!

Attachments