April 7, 2005
  New website design, website host
  Hey, a new website design. It's been 7 years, seems like it is was about time.

Lunarpages is our new host. A lot more disk space and bandwidth for a lot less money.

  Mica is evolving and delegating its generic data modeling to the Obsidian Framework
  Mica classic will still be around, but Mica 2.0 will be stripped down, partitioned into separate libraries, and with the MiModel front end replaced with the binders and generic data structures of Obsidian - and all accessible from declarative XML.
  MiUML is going away
  MiUML has some unique GUI behavior, but wasn't used all that much. And, anyway, UML has serious flaws resulting from using the same representation for both a high-level modeling language and a down-and-dirty visual programming language.
  The antique downloads are going away
  However, many of these framework's design techniques and architectural approaches will be incorporated into Obsidian.


A Java XML-driven pluggable data-service-controller framework with support for 100% persistence data and micro-versioning and deep GUIs.
Supports innovative, aesthetic, fun, explorable user-interfaces
Manages human-recognizable, application-friendly, evolution-capable, 100% persistent and versioned data and data structures
Full in-the-field upgradeability, expandability, elasticity, and longevity through a 3rd-party-friendly open-source plug-in architecture
Contagious robustness, simplicity and implementability

Yeah, it reads like it's only missing a kitchen sink, but Obsidian has a lot of potential, being a cleaner implementation of 1995's Cadabra, which had most of these features but with too little structure it was too amorphous, too general. Frameworks should narrow the choices down to a few very good very chewy morsels and then help the coder to eat them.




A Java Object-Oriented 2D Vector Graphics and User Interface Framework. Includes diagramming and network graphics editors. Free with source code.
Mica is a 2D, high-level, full-featured, object-oriented, hierarchical, structured, resolution-independent, mixed graphics and user interface widget library with multiple levels of drawing abstraction written completely in Java.

The system provides extensive support for rendering and manipulation of vector and raster graphics in two dimensions

A highly-customizable 'Graphics Window Object' is provided that supplies much of the functionality associated with 2D drawing programs. A Graphics Object Model is also provided that abstracts general node-link data structures.

Many graphics shapes, user interface widgets, interactors, and demo applications are included.

All graphics shapes, user interface widgets, interactors, layouts, connections, etc. are objects and sub-classable by the programmer.

Graphics shapes and user interface widgets can be arbitrarily arranged in container-part and reference-part directed acyclic graphs.

Graphics shapes and user interface widgets can be connected together with first-class connection objects into any number of directed or undirected (network) graphs.

The sizes and locations of graphics shapes and user interface independent widgets are specified in device-resolution-independent floating point coordinates and so have the same appearance and relative size regardless of the size or dots-per-inch of the particular screen or printer used for display.

Mixed graphics
Graphics shapes and user interface widgets share the same coordinate space, the same API and are of the same basic type.

Multiple levels
A variety of functionality/performance trade-off options are available from heavy-weight, full-featured graphics shapes to very-light-weight simple graphics shapes to an immediate rendering mode (in resolution-independent coordinates).

Written in Java
The robustness, ease-of-use, portability and the other buzzwords of Java are inherited by this software.



Copyright 1998 - 2005