Research
Index: Requirements
Problems Companies
Platforms Languages
Software Research
- Foley's work on specifying metadata about application object interfaces,
function signatures, preconditions and postconditions, to facilitate automatically
generated interfaces, animated help, etc.
- Angelika Leeb's thesis, "A Flexible Object Architecture for Component
Software", at http://larch-www.lcs.mit.edu:8001/~aleeb/.
- Abstract:
This thesis presents a software architecture designed to help end-users
to build small applications efficiently by reusing existing software components.
In my approach, software is structured into flexible components, executable
objects that can be modified and combined at runtime. Flexible components
are based on existing software interoperability standards, such as COM/OLE
or SOM/OpenDoc. They extend conventional component
software by extending the component architecture and the functionality of
the component engine that manages component interoperation. Flexible components
have a component-specific programming interface that allows not only users
but other components as well to modify and extend the functionality of a
component dynamically. Furthermore, the flexible component engine provides
services for addressing, relating, grouping, and composing components in
a flexible way. With these characteristics, flexible components combine
the flexibility and simplicity of dynamic object environments with the reusability
and universality of component software. They promote a new component-centric
development style that unifies multiple languages and paradigms within the
same application environment and supports incremental development of components.
- Some random unorganized thoughts:
- John Schlag pointed out that it's better to err on the side of making
tools too small, than making them too large, since you can't break large
tools up to solve problems they weren't intended to solve, while you can
assemble small tools together to do that.
- Imagine wiring up networks of functional dependencies, that operate
on place-holders for media, and other explicitly adjustable parameters,
and then using an encapsulation mechanism that partially evaluates the functional
network over some sample media and constant inputs, and producing a efficient
compiled implementation of that network, for a particular constrained set
of inputs, such as an OLE control with properties and functions corresponding
to the inputs and outputs.
- Check out the comments about the Distillery partially evaluating
PostScript, in the Acrobat page.
- The natural extension of Video MadLibs is Video Game MadLibs:
create a video game by plugging in your own personal content! Imagine a
game about saving your city from Godzilla, where you insert footage of different
parts of the city, your house, and your family, that are used as backgrounds,
effects, props, and characters in video games. Playing a laser-cannon shoot-em-up
game, defend your house and your neighborhood from Godzilla, and it shakes
as he stomps, to the sound of china smashing, then catches on fire and blows
up if you loose! Your stupid little brother laughs at you whenever you miss
an easy shot. Your proud parents cheer if you save the town. The games could
combine pre-processed personalized video backgrounds with overlayed sprites
and 3d texture mapped interactive graphics.Due to disk space constraints,
you could use still backgrounds, and use live video for special effects
and rewards for completing games. Use background removal to make sprites
and characters out of your friends. Use their images in personalized music
video presentations parameterized by the state of the game. Combine personal
sounds and images and different twitch and puzzle games together into an
interactive music video, in the spirit of Media Band's "House Jam".
- A popular buzzword is "Applet", which is a small
"Application". This "micromonolithic" mentality misses
the point of component technology, but suggests a further direction in which
to take components: A "Componelet" is a small grained component.
- I'll bet that Microsoft called the networked version of OLE
"ActiveX", because if they called it
Distributed OLE, and integrated it with their user friendly graphical interface
for idiots, they would appear to be supporting the Republican Presidential
Candidite, BOB DOLE!
- Deconstructive analysis of "COMPONENT":
- COM-PONE-NT
- COM is the binary standard that
glues components together.
- NT is the operating system that
supports components.
- So what in the world is a PONE???
- I think there's an opportunity here, or at least a good host name:
nt.pone.com
- They're more appealing than THUNKS and CRACKERS,
and more mysterious than HUBS and OLE.
- They're centrally located between the component framework and
the operating system.
- When you put together COM + NT, what's missing?
PONE!
- PONE: Programmable Object Network
Engine.
- PDK: PONE Development Kit, including Visual Pone Definition Language,
Microsoft Foundation Pones, and the Canonical Pone Koan Tome.
- ActivePone + PoneX: The platform formerly known as PoLE.
- PRML: PONE Relationship Marketing Language.
- Plug & Pone. TelePony. SterioPonic. Hooked on Ponics.
- We should patent all these word and sell it to Microsoft. But
play the price way up in a bidding war with Sun.