VIRTUAL REALITY IN
Virtual reality provides an impressive computer interface that makes
the users believe they are inside the computer-generated environment.
In many domains, virtual reality is starting to change the way in
which people use computers to interact with and manipulate digital
information. This course explores the technologies, the underlying
principles, and the potential applications of virtual reality in
architecture. Lectures and lab sections will present the theoretical
and technical information required for developing a number of virtual
reality applications in architecture. There will be no computer
programming background required for this course. However, students
are assumed to have a background in using geometric modeling
applications such as AutoCAD or FormZ. The course is divided into
two segments. The first introduces the principles, tools, and technical
skills that are required for building virtual reality applications. In the
second segment, students will build a virtual reality application that
applies the principles covered in the first segment to architecture.
Introduce the principles and existing technologies of virtual reality
through hands on exercises, explore some of the potential application
in architecture, discuss some of the evaluative criteria that make a
"good" VR application in architecture, introduce a number of
approaches to creating virtual environments.
For Additional Information
For more information on Virtual Reality at the University of
Michigan, please visit the some of the following links:
• The VRL lab at the University of Michigan .
• The VR lab at the Media Union.
Working in groups of two or individually, students were asked to start
from any existing building model or create a new one. In selecting the
projects students were required to demonstrate a number of the
virtual reality techniques that were introduced in the course and be
able to provide more than just a walk through. Each group was
required to write a proposal that described their project, its
objectives, the environments that will be modeled and the expected
user interaction with the environment. The environments were
modeled in AutoCAD r13, FormZ, or 3DS Max. Students used VRML
1.0, Open Inventor, and World Up for the VR interactions.
SAMPLES OF STUDENTS' PROJECTS
(From Arch509-93 Spring 1997)
ples may be available when I find some time to optimize the files.
Fantasy Environment A Partial Virtual Model of a 3d Website
Interactive Walkthrough (Kidosaki House, Tadao
Assembling a Transportable House Ando)
A VR Presentation of a Housing Project
Samples of Student Work
Modeling was done in AutoCAD or FormZ. These projects were
generated by my students in both Spring '95 and Spring '96.
CAD FUNDAMENTALS II
The course focuses on three-dimensional computer-aided modeling
and rendering of architectural forms. It is intended for individuals
with little computer-aided design knowledge who wish to learn how to
use existing architectural CAD software. The course investigates a
number of modeling concepts and rendering techniques through a set
of software packages that are commonly used in professional offices.
The software packages that will be used through the course are
AutoCAD R.13 and FormZ for solid and surface modeling; Auto
Vision and Render Zone for rendering and animation. The main
strengths of FormZ are its robust 3-dimensional modeling
environment and its ease of use. AutoCAD provides an integrated
environment for creating architectural models, manipulating their
elements, and representing their material, thermal, as well as
structural properties into data-bases. Notable examples of
architectural precedent will be the vehicle for introducing the main
topics of this course.
In addition to learning the concepts of three-dimensional graphics
and how to use existing software packages, students will learn how to
convert their models into VRML (Virtual Reality Modeling Language)
the language used to put three dimensional models on the web. The
basic concepts of HTML and VRML will be covered towards the end
of the term.
Note! As the size of AutoCAD and FormZ 3D modeling files can grow
rather quickly you will not be able to use diskettes to store your work.
Instead you need to have an IFS home directory and save all your
work there. If you do not know what IFS is, do not worry you will
soon learn all about it. If you use Mailstrom or Pine to read your
email, then you already have one.
REQUIREMENTS AND GRADING
Each week, we will cover a new set of new modeling commands and
techniques through a number of tutorials and weekly exercises. The
tutorial handouts will usually be distributed at the beginning of each
week and will be explained extensively through the lectures. The
purpose of these tutorials is to help students gain an understanding of
the key concepts and commands that are needed to do the weekly
assignments. The assignments are handed out on Mondays and are
usually due on the following Monday or Wednesday. They are
carefully selected and organized to develop introductory skills,
critical thinking, and aid the integration of knowledge accumulated
through the course. The grading for this course will be based on class
attendance, participation, and the completion of the weekly
assignments and a final project.
• Modeling Assignments (AutoCAD and FormZ) 40%
• Rendering and Animation Assignments (Auto Vision and Render
• VRML Assignment 5%
• Final Project 30%
• Attendance and participation 5%
* (Subject to some adjustments at the discretion of instructor)
Fulfilling the requirements for each assignment on time will
guarantee you most of the full grade (technique and presentation style
count. Make sure you think about them). Extra credit will be given to
students who do more than the basic requirements. As each
assignment builds upon concepts covered in the previous one, late
assignments are strongly discouraged and will be marked down 5%
for each late day.
Computer Human Interfaces
Computer Human Interfaces, ergonomic, etc.
ACM SIGCHI Conference on Human Factors in Computing
Systems Pittsburgh, PA May 15th-16th, 1999
Holds some 10,000 references to literature on human-computer
interaction, including hypertext/hypermedia Journal, Magazines, etc.
International Journal of Human-Computer Studies
The International Journal of Human-Computer Studies
publishes original research over the whole spectrum of work on
both the theory and practice of human-computer interaction and
the human-machine interface. The journal covers the boundaries
between computing and artificial intelligence, psychology,
linguistics, mathematics, engineering, and social organization.
the News Letter on Intelligent User Interfaces
"The Foundations of Web Design"
by Jeffrey Veen
Wired Digital, Feb 1998
Some lessons on site building Associations, ...
Human Factors and Ergonomics Society
European Network for Intelligent Information
i3, the European initiative for intelligent information
interfaces, was created in 1997 in order to take a human-
centred approach to the exploration of new, visionary
interactive systems for people in their everyday activities
Human-Computer Interaction Resource Network. The HCIRN mission
is to advance the practice of human-computer interaction (HCI) by
providing HCI professionals with relevant, accurate and timely
information on HCI theories, methods, practices and resources.
Development of Man-machine-Systems by understanding human
behavior, both from a cognitive and an ecological point of view.
Build-It At Ethz Man-Machine-Interaction
BUILD-IT is a planning tool based on computer vision
technology, with a capacity for complex planning and
composition tasks. The system enables users, grouped around
a table, to interact in a virtual scene, using real bricks to
select and manipulate objects in the scene.
TOOLS AND TOOLKITS
The SAGE Project (CMU)
The SAGE Project involves the automatic and interactive design of
graphical presentations of information.
User Interface Software Tools
A very good list of products related to the design of CHI
A free C++ library for building plateform independant interfaces
• Visual Languages and Visual Programming
International Conference on Adaptive Hypermedia and Adaptive Web-
28-30 August 2000
"Exploiting user models for personalizing news presentations"
Liliana Ardissono, Luca Console, Ilaria Torre
Proceedings of the 2nd Workshop on Adaptive Systems and User
Modeling on the WWW, 1999.
This paper presents a framework for the generation of
adaptive hypertexts for accessing on-line news servers. The
aim of this system is to present the most appropriate set of
news (and advertisements) to each user, choosing the "right"
detail level for each news item. This is obtained by using
knowledge representation, user modeling and flexible
"ADAPTS: Adaptive hypermedia for a Web-based performance
by Peter Brusilovsky
2nd Workshop on Adaptive Systems and User Modeling on the WWW,
ADAPTS provides an intelligent, adaptive electronic
performance support system for maintaining complex
equipment. ADAPTS maintains a dynamic characterization of
a technician's knowledge, experience, and preferences in the
form of a user model. This model influences the diagnostic
strategy, technical information content, and navigation
support offered to a technician.
PROJECTS & SYSTEMS
from Open Sesame!
Open Sesame tells you about brand-new books, CD's, movies, and
upcoming concerts, events, and TV shows that interest you.
As you interact with the system, eGenie learn more about you and
adapt its interface. (the agent learns about you by observing your
Open sesame as been acquired by Allaire Corp.
User Adaptive Web-Based Systems & Personalized Interaction in
Project Avanti (ACTS EC project)
AdaptiVe and Adaptable INteractions for
The project has in particular developed a User Model Server
Decision support systems, etc.
provides Q&A hyperbook interactions with experts in business strategy.
StrategyWeb is a free resource for market analysts and researchers, strategic
planners, and others involved in market knowledge management.
FORECASTING BUSINESS CONNECTION
The objective of this page is to provide academic researchers and
business users with convenient access to a growing body of material
DecisionNet is a WWW based information system that offers easy access to a
distributed network of modeling and decision support systems.
It allows providers of modeling and decision support services to have their
services (data, decision models, algorithms, and decision support packages)
publicised, browsed, and executed over the WWW.
The Decision Support Laboratory. DSS Lab provides clear
empirically-grounded information on DSS-related tools, technologies
and architectures within a real world problem-solving context.
• Decision Support Systems
• Decision Sciences Web
Decision Sciences Journals and Handbooks
• Archive of Columns on Decision Support
The University of California Institute on Global Conflict & Cooperation
Labs, research groups, etc.
The Harvard Decision Systems Group (DSG)
The overall goal of the DSG is the creation of software environments
that facilitate problem-based, integrative access to information, to
facilitate decision making, for health care providers, health care
managers, and the public.
CMU Department of Social and Decision Sciences
Mary Frances Luce
Consumer decision making under stress and negative emotion; medical decision
making from the patient/consumer perspective; effects of stress and emotion on
reactions to advertising
Sequential decision tasks appear in many practical real-world
problems including control, resource allocation, and routing. ...
Note: Make use Genetic Algorithms and Neural Networks.
Group Decision Support Systems, Inc.
GDSS provide expertise in decision-making technologies and group
Think Tools is a software-based support system for qualitative reasoning,
decision-making and knowledge management.
Logical Decisions for Windows is decision support software for
evaluating choices. Logical Decisions (LDW) lets users evaluate
choices by simultaneously considering many variables, separating
facts from value judgments, and explaining their choice to others.
LDW provides five methods for assessing attribute weights, provides
many results displays and has many sophisticated features. It uses
techniques from the field of decision analysis to help you make better
and more logical decisions.
from Kikkup int.
Decision support systems for electronic commerce (customers)
Decision Alchemy is a software tool that helps people identify the
right choice from a large number of possible options. They have
specifically designed it to help an individual choose and buy the best-
fit products for their needs in the smallest amount of time. It can be
tailored to almost any product category, from cars to cameras to
Lumina Decision Systems, Inc.
Lumina Decision Systems develops, markets, and supports Analytica,
a software package for creating, analyzing and communicating
quantitative business models.
DSP Development Corporation
Author of DADiSP.
Business Software & Consulting
Business Decision Wares
The Engineering Spreadsheet
From DSP Development Corporation.
A graphical data analysis software program for scientists and engineers.
Die Denkfabrik GmbH (Butzbach - Frankfurt, Germany)
Distributor of MBA-ware (DPL, Forecast Pro, ...)
Contact Larry Moffett firstname.lastname@example.org
"The Open DSS Protocol "
His Website is to provide information on an Open DSS protocol that
has been proposed to facilitate the discovery of Decision Support
Systems (DSS) on the WWW.
Microsoft Belief Network Tools
Tools for Bayesian Inference
A Windows application is freely available for research purpose. This
application allows the creation, assessment and evaluation of
Bayesian belief networks.
Artificial Intelligence :
Rule based systems, etc.
The International Journal of Applied Expert Systems
"You can call Compaq's virtual technician "Al"
by Joe Wilcox
CNET News.com , September 28, 1999
Compaq Computer plans to pack a virtual self-help technician, "Al," in every
new Presario Internet PC
Expert System Shells
Jess, the Java Expert System Shell.
Jess is a rule engine and scripting environment written entirely in Java
The CruXpert range of products provide a complete, user-friendly tool kit that
enables the development of Intelligent Interactive applications, even by a person
with no programming skills. Typical application areas include trouble-shooting,
diagnosis, product selection/configuration, Help-desk, training and so on.The
visual graphical design interface permits intuitive development of knowledge-
rich, multi-media enabled applications with point-and- click ease. CruXpert
automatically generates the application in Java , thus making it a truly portable
and versatile Internet/Intranet application.
• --- other
A deductive object manager for meta databases
ConceptBase is a multi-user deductive object manager mainly intended for
conceptual modeling and coordination in design environments. The system
implements O-Telos, a dialect of Telos which amalgamates properties of
deductive and object-oriented languages. (free software available)
"Applying Expert System technology to enhance sort performance"
by Dr. Peter Liu, Syncsort Incorporated
The need to automate performance tuning has grown because of the
shortage of skilled personnel, the increasing complexity of computer
systems, and the overwhelming amount of performance-related data
supplied by new reporting tools. To meet this need, performance
analysts have shown a strong interest in using expert system
technology. Because of the importance of the system sort product in
improving overall system performance, a prototype expert system
designed to enhance sort performance was developed. When
embedded in the system sort utility, the prototype optimized the CPU
Evergreen Internet, Salt Lake City, UT, US
InteliQuest is offering "The World's 100 Greatest Books--Audiocassette
Collection"(TM)(C) for purchase online. This collection encompasses
many of the great classical works of literature. The Instant Expert
Learning System(TM)(C) is designed to help you retain the information
contained in the works.
Discussions, News, ...
• Strong Software Inc.
This Java powered site is focused specifically on displaying important Java
dates and events. Java news site
It contains links to articles from various online ezines and press releases
concerning all aspects of java and is typically updated daily.
The main source of information for Java
A Directory and Registry of Java Resources
The main source of information about Java applications
• Java in the Yahoo Classification
• Inside Java
This site deals with advanced java topics and examples, as well as
the latest Java news and developments.
• The World Wide Web Virtual Library: The Java Programming Language
Groups, associations, etc.
• Club Java
Le Club a pour vocation de promouvoir la technologie Java et de la
mettre en avant sous forme d'actions de péedagogie, d'aide et d'assistance
pour ses adhérents.
• Java Cyber Club France
"Get smart with proxies and RMI. Use dynamic class loading to implement smart
proxies in RMI"
by M. Jeff Wilson
Javaworld , November 2000
RMI enables developers to either get a remote reference to a
distributed object, in which all method calls are forwarded to the
server object, or get a copy of the remote object and invoke on it
locally. Sometimes, however, it is desirable to combine those
approaches, so that some method calls execute locally, while others
execute on the remote object. This article describes a method to
accomplish that in a way that is transparent to the client code.
by Todd Sundsted
Javaworld , August 1999
"How to drag and drop with Java 2"
By Gene De Lisa, Javaworld , March 1999.
Explore the Java platform's new drag and drop classes.
"Sun spills beans on future EJB releases"
By Jeff Walsh, InfoWorld Electric , Feb 3, 1999
The specifications for the next release of EJB, code-named Moscone, will be
available in the second quarter of this year, with a reference implementation
due by the end of the year, Chandra said. "The major focus of the Moscone
release is to tighten up [EJB] 1.0 and to use XML for deployment
"XML and Java: Siblings or rivals?"
by Dana Gardner, Javaworld , December 1998.
Can the Sun technology continue to rally as a platform in the face of the new
markup language's rapid ascent?
• A Free Book: Thinking in Java
• Java and the Enterprise
1997, by Zona Research Inc.
An Independent Assessment Commissioned by Softbank Forums.
Servlet (Server side java)
• Java Web Server interest mailing list
• Servlet Taverne
Daily news from the Java Server Side World
Javacorporate offers a collection of Open Source and Commercial Java
servlet based eBusiness web applications - ALL with source code and the
advantage of a collaborative infrastructure.
Servlet Central is the Server-Side Java Magazine. Each month you'll
find in depth articles and columns written by people using servlets,
Enterprise JavaBeans, object request brokers, and other server-side
Java technologies to build next generation internet/intranet sites and
• JRun Magazine
For JRun Developers and Users
• "Developing Server-Side Web Applications with JavaServer Pages and
VisualAge for Java"
by Sheldon B. Wosnick and Anita M. Huang, 1999
see also WebSphere development articles
• "XML and servlets"
by Piroz Mohseni
Gamelan Tech Focus , June 2, 1999
XML has certain qualities that make it a nice fit for servlet-based
applications. Along with its related standards, XML provides a way for
representing data and interacting with it.
• "Welcome to the Wonderful World of Servlets"
by Alan Williamson, Servlet Central , Oct-Nov 1998.
Alan Williamson kicks off his first column by walking through HTML form
processing with servlets.
• "Introduction to Database Programming with Servlets"
by Paul Colton, Servlet Central , Oct-Nov 1998.
One of the single most important applications for server-side
computing today is database access. Databases serve as the
information center for your server-side applications. In this issue,
Paul Colton steps through building a generic JDBC servlet which
returns its results as an HTML table.
• "Build servlet-based enterprise Web applications"
by Paul Philion, Javaworld , December 1998.
Learn to build better, faster servlets with advanced servlet techniques.
• "Introducing the new Servlet API 2.1"
by Jason Hunter, Javaworld , December 1998.
A complete description of what's changed since 2.0.
• "A beginner's guide to Enterprise JavaBeans: An introductory overview of
the Java server-side application component standard "
by Mark Johnson, Javaworld , October 1998.
• "Developing 3-Tier Database Applications with Java Servlets"
by Chad Darby, Java Developer's Journal , Volume: 3 Issue: 2, 1998.
a list of EJB products that are available, now or in the future.
Enterprise JavaBeans allows developers to create scalable, multitier, distributed
applications, and makes possible the creation of dynamically extensible
read also: "A beginner's guide to Enterprise JavaBeans: An introductory
overview of the Java server-side application component standard " , Mark
Johnson, Javaworld , October 1998.
An Open Template-Based Servlet System a flexible template based servlet system.
If you are looking for an easy way to add database driven pages on your intranet
or web site.
read also "OTembo - an Open Template-Based Servlet System" , by Gene
McKenna, Servlet Central , Oct-Nov 1998.
• Java web server
Jini technology enables spontaneous networking of a wide variety of
hardware and software - anything that can be connected.
from Live Software
JRun Servlet Engine, is a web server extension that adds the
functionality of Java Servlets (server-side Java) to your current web
High quality, free, open source Java servlets. Powerful enough for demanding
web developers, simple enough for new servlet users.
An Open Source implementation of the JavaTM Servlet API
• Servlet tools for web statistics
• Purple Servlet FAQ
• The Java Language, from the Yahoo Classification
The Java Programmer's Guide
Tutorial on the AWT toolkit
Java compilers and virtual machines
Jdk and other java tools.
from IBM AlphaWorks
A faster Java compiler that adheres to Java language and virtual machine
VisualAge for Java
see also to the VisualAge for Java Tips and Tricks Home Page
• Symantec Cafe
• Java Workshop (Sun )
from Source Craft
from Allen System Group
• ---- corba
• Black Widow
from PostModern Computing
an Object Request Broker that connects Web browsers to CORBA objects
• HORB Home Page
• CorbaBeans Proof-of-Concept
• ---- databases
• ---- other
The project PageSpace aims at supporting networked applications which
require interaction between distributed software components and active
processing. It is based on the Internet and the World Wide Web but
introduces a notion of active Web-pages that are capable of executing
A project funded by the EU in the ESPRIT Open LTR programme
• JavaAgents using SUN's Java language
• Network application using Java
• Tower Technology
Propose an optimizing java native compiler.
WebL is a scripting language for automating tasks on the World-Wide
Web. It is an imperative, interpreted language that has built-in support
for common web protocols like HTTP and FTP, and popular data types
like HTML and XML.
WebL's implementation language is Java, and the complete source code is
Concurency in Java
"Programming Java threads in the real world"
by Allen Holub
JavaWorld , September 1998 (and later)
A Java programmer's guide to threading architectures is a serie of
articles that discusses the things you need to know to program threads
in the real world.
"Shooting Fish in a Barrel"
by Jonathan Knudsen
To prove how easy it is to write network applications, Jonathan shows
you an Internet chat system. You'll learn about Java's network
capabilities as well as threaded programming.
"How the Java virtual machine performs thread synchronization"
by Bill Venners
Javaworld , July 1997
Concurrent Programming in Java
This is the supplement to the book Concurrent Programming in Java: Design
Principles and Patterns by Doug Lea
"Concurrency and Synchronization"
Chapter 7 of the book "Tricks of the Java Programming Gurus" , by b y Glenn L.
Vanderburg. et al., 1996
"Mini Course: Threads of Control"
by Richard G Baldwin, 1998
"Concurrent Programming in Java Tutorials and design patterns"
by Doug Lea.
Java Software components
• Java TechTips
• Java Beans
InfoBus enables dynamic exchange of data between JavaBeans components
by defining a small number of interfaces between cooperating Beans and
specifying the protocol for use of those interfaces.
Tools, Libraries, etc.
AlphaBeans, a new section devoted to JavaBeans-in-progress. Like all
products posted to AlphaWorks, these JavaBeans are free of charge and not
part of IBM AlphaWork .
Java site that includes Java Applications, Classes, Servlets, Beans and
hundreds of other Java projects.
• ACME Java - Software
• Java Generic Library
• JavaClass Warehouse
The Java Class Warehouse, was created to provide a large
repository of free, reusable, user-contributed classes for Java.
• Doug Lea "Collection" Package
• Class wb.WBCanvas
A set of class implementing the MVC paradigm
Check out NetComponents, free for commercial use.
does FTP, NNTP, SMTP, POP3, Telnet, TFTP, Finger, Whois, and other
frequently used Internet protocols.
• The Bean Factory, LLC
Platform Independent Distributed Computing with Java 2 and XML
• Programming Languages for the Java Virtual Machine
A list of programming languages for the Java virtual machine aside of Java
Javaworld , August 1999
Voyager provides an agent framework architecture.
• Jumping Beans
Jumping Beans is a new technology to build mobile applications. A
mobile application can pick itself up entirely from one machine while
it is running, move to another machine, and continue execution on the
Inter Java beans communication.
iBus is a novel Java middleware aimed at supporting intranet
applications such as content delivery systems, groupware, fault-
tolerant client-server systems, and multimedia applications. iBus
provides multicast channels that allow Java applications to
interact by a push/pull/subscribe communication model. The system
is conceived to run atop of IP multicast, although other protocols
can be supported as well. Applications running in separate
intranets can be bridged by iBus TCP message spoolers.
• PSE for java
Persistance in java.
from Objective Software Solutions, Inc.
Java Framework (OSSCF) that supports any ODMG 2.0 database
system, and currently uses ObjectSpace's Voyager technology.
• Beans By Design
online marketplace for JavaBeans.
The process combines technologies like those used in online
auction, matchmaking, and recruiting systems.
• Cetus Links
Thousant links on Objects & Components
• LOTUS ESuite
The components include Calculating Grid, Rich Text Processor,
Library of Charts, Gantt Chart, Graphics Applet, Messaging,
Calendar, Address Book, and Data Access.
• ICE Browser
The ICE Browser is an embeddable HTML browser for
• OpenCube Inc.
XML (& Java)
• see also Software Architecture
• "IBM adds Java and XML messaging, JVM for Linux. IBM says
XML "growing faster than Java""
by James Niccolai,
SunWorld , June 1999
• Web Techniques Special Issue: "XML & Java: An Obvious Match."
Web Techniques , June 1999
• "XML JavaBeans"
by Mark Johnson, Javaworld , February 1999.
This article describes just one possible application for XML: making
JavaBeans mobile and interoperable by representing them as XML
documents. Follow along as columnist Mark Johnson describes XML,
defines his own custom markup language, and creates a class that
converts XML files to JavaBeans running in memory.
• XP - an XML Parser in Java
• XML from IBM
As part of the initiative, IBM is releasing for free nine XML
development tools and applications that, among other things, use Java
to create an XML visual editor, convert data to JavaBean classes, and
convert XML to a printable format.
• XML Servlet
from Cerium Component Software
• for more information about XML tools, see also "The Whirlwind
Guide to SGML & XML Tools and Vendors"
• "Extracting Links from an HTML File"
Java TechTips, September 23, 1999.
see in particular how to use the HTMLEditorKit
• "File Choosers"
Java TechTips, June 15, 1999.
JFileChooser is a class found in JavaTM Foundation Classes
(JFC) Project Swing that allows a user to select a file.
Applications, Demos, etc.
Java Applet ReviewS
Another similar site
• Applets review
Prototypes developed at INSEAD - CALT
AWSDKJava is an encapsulation in java of the bots library of
the Active Worlds multi-users virtual reality system.
• A little simulator
very Old !!!
This prototype used the Graph layout example as a starting point.
However the simulator relies on a MVC (Model View Controler)
Cafe del Sol
The Sun Microsystems New Media Marketing Lab's exibition of Java
Applets. A collection of sophisticated Java applets complete with
source code and directions for adding these to your own home page.
Small applications to put in a web page
• LED applet
Includes an interactive bouncing ball demo
An abacus, and tutorial on using an abacus. Good educational
• Bouncing ball
Note: Application developed on a Mac.
A great interactive Java application that creates an impressionist
version of an existing digital image.
The NPAC Visible Human Viewer
Select and view high-res slice images of a human body. Then use your
mouse to select and view a slice.
Applications in Finance
from BulletProof Corp
An Internet investor's site using Java extensively to provide stock
quotes, stock searching, charting and portfolio management.
dynamic auctioning game
Play in real time over the net against other people.
MKTVIEW is a freeware Java applet that allows you to chart stock
prices and volume over time
• Dynamic Billboard
• Digital Signal Processor (DSP)
C|net home page
Great source for late breaking Web related technology news. Click on
a story headline in the scrolling window applet to go to that story.
Companies doing contract Java development
• InterNetivity Inc.
Nice demos (jumping rabbit, Slot Machine, Pinball, etc.)
• Integris Java Developer Island
This page contains a Java animation applet and links to some Free
Java programming examples
Applications with source code
• Open Source Java WebRing
• A Binary Hopfield Neural Network Applet
Iced Java is a Dimension X's 3D graphics package for use with Sun's
HotJava web browser. The first applications which has been written
to take advantage of Iced Java is Liquid Reality , a VRML browser and
toolkit. See also The VRML page
A rtificial Intelligence :
Prolog, ML, VDM, etc.
Events, Conferences, etc.
Prolog and Java
A High Performance Prolog for Internet Programming
Jinni 2000 also includes a Java Based Prolog Cpmpiler and
Intelligent Mobile Agent Programming ToolKit
W-Prolog is a simple Prolog interpreter written in Java. jProlog
jProlog is close to Clocksin-Mellish Prolog, with lots of the
typical builtins.You need a Prolog system (SICStus, BinProlog,
BIMprolog are ok - SWI doesn't work apparently)
• see also
MUSE Virtual Presence can provide the
supporting hardware and software for
University programs in VR and computer
graphics, and also specializes in providing
the best, most affordable VR systems and
integration services for multi-seat labs. We can even advise your
University on course content for VR and computer graphics studies.
MUSE Virtual Presence can assist in bidding processes, either
through national (EPSRC, JIF, HEFC etc), European (FrameworkV,
etc) or other initiatives. We can also offer matched funding for many
such processes, or act as a commercial partner throughout the
For more information on how MUSE Virtual Presence can assist your
University's efforts in VR and computer graphics, please contact Ben
Bishop at our Manchester office.
Object Technologies :
Software design best practices, design pattern,
UML, OOA, OOD, OMT, etc.
• Patterns Home Page
• Patterns area of the AG Communication Systems
An antipattern presents an approach that sounds good but
doesn't work! (by experience).
Learn how you can create software which is easy to maintain
and evolve using Adaptive Programming (AP).
Research in Information Systems Excellence
RISE is an INSEAD initiative which objectives are:
To provide a focus for research in technology excellence
To develop educational activities that stimulate the development
of new coursework and pedagogical materials related to
To lead the debate on technology excellence with a specific
focus on its management implications.
The Zachman Institute for Framework Advancement
The Zachman Institute for Framework Advancement (ZIFA) is a
network of information professionals who understand the critical
role of enterprise architecture in the ability of the enterprise to
successfully participate in the global economy of the 21st century.
To this end, the mission of ZIFA is to promote the exchange of
knowledge and experience in the use, implementation, and
advancement of the Zachman Framework for Enterprise
• Platinum Enterprise Resource Center.
"More programmers going "Extreme""
by Cecily Barnes
CNET News.com , April 3, 2001
Welcome to a new world of computer programming--and say goodbye
to the image of the solitary code jockey working late into the night on
a diet of cold pizza and warm cola. Better yet, Extreme Programming
can help produce software that is not only of higher quality, but is
produced much more quickly than is the norm.
• "Benchmarking European Software Management Best
Dutta, S., S. Kulandaiswamy and L.N. Van Wassenhove,
Communications of the ACM, 1998. 41(6): pp. 77-86.
• "Do It, Then Fix It: The Power of Prototyping"
by Derek L. Dean and Robert E. Dvorak, The McKinsey
Quarterly , 1995 Number 4.
• "Five Myths that Slow Down Software Development"
by John Parkinson,
Perspectives on Business Innovation , Ernst & Young, Issue I.
• "The Cathedral and the Bazaar"
by Eric S. Raymond.
I anatomize a successful free-software project, fetchmail, that was run
as a deliberate test of some surprising theories about software
engineering suggested by the history of Linux. I discuss these theories
in terms of two fundamentally different development styles, the
``cathedral'' model of most of the commercial world versus the
``bazaar'' model of the Linux world. I show that these models derive
from opposing assumptions about the nature of the software-
debugging task. I then make a sustained argument from the Linux
experience for the proposition that ``Given enough eyeballs, all bugs
are shallow'', suggest productive analogies with other self-correcting
systems of selfish agents, and conclude with some exploration of the
implications of this insight for the future of software.
This article provides some of the guiding principles to Mozila.org
Methods & Approachs
• Extreme Programming
Extreme Programming, or XP, is a lightweight discipline of software
development based on principles of simplicity, communication,
feedback, and courage. XP is designed for use with small teams who
need to develop software quickly in an environment of rapidly-
changing requirements. See also extremeprogramming.org
Unified Modeling Language
The Dynamic Systems Development Method (DSDM) is a framework
of controls for the development of IT systems to tight timescales. It is
independent of any particular set of tools and techniques and can be
used with object-oriented and structured analysis and design
approaches in environments ranging from the individual PC to global
--- non OO approachs
Integration Definition for Function Modeling A structured approach
to enterprise modeling and analysis
• BuildPrototype Pattern
Architectures & frameworks
see also Software architectures
Reuse Library Interoperability Group
• Component World
• Christopher Alexander: An Introduction for Object-Oriented
by Doug Lea
• AGCS Patterns Home Page
• Christopher Alexander's The Nature of Order
a book review by Nikos A. Salingaros
• An HTML 2.0 Pattern Language
• --- articles
• "Application design with patterns,
Which object-oriented design patterns best respond to today's
ever-changing business architecture?"
By Mark Stason, SunWorld January 1999
In designing flexible software, it's essential that encapsulation
and the isolation of responsibility be followed -- and it's always
easier to extend a design by isolating those things that vary. IT
Architect Mark Stason describes specific design patterns that
can be used to capture the varying parts of an application
architecture to support this extension.
• --- pattern library
• Portland Pattern Repository
• Some Design Patterns
Different categories of pattern are covered: Creational Patterns
(BuilderPattern, etc.), Structural Patterns (BridgePattern, etc.),
Behavioral Patterns (CommandPattern, etc.).
• Patterns from Doug C. Schmidt
• Organizational Patterns
• --- other
• Use Case Maps
• The Object People
Training in object technology
• Expersoft Corporation
Expersoft Corporation was established in 1989 to address the
emerging new market for distributed object management
software. The company develops and markets XShell, a
distributed object management environment (DOME)
comprising XShell Distributed ORB, and a suite of integrated
tools that address many of the problems associated with
building and managing distributed systems in large-scale
• PLATINUM Paradigm Plus
from Object International
• SELECT Enterprise
from SELECT Software Tools.
• Software through Pictures
UML editor. (java)
• Object Domain
Object Domain 2.0 is an object-oriented modeling tool based on
UML and developed in Java providing a scalable, platform
independent, user extendable CASE tool.
• San Francisco
SanFrancisco is an IBM application business components
framework for Java.
read also "More Java components from IBM" , By Randy
Weston, news.com , September 29, 1998
read also the white paper: "Lotus and IBM SanFrancisco
Business Components: Delivering Business and Groupware
Applications to your Desktop"
Object Technologies :
Object Oriented Languages
Smalltalk, java, C++, Objective C, Eiffel, etc.
• Smalltalk at uiuc
• Smalltalk FAQ
At The Experimental Computing Facility (XCF), Berkeley
• Puget Sound Smalltalk and Object-Oriented Database User
A volunteer organization of developers, users, vendors, and
others who are interested in exchanging information about
Smalltalk and object-oriented databases.
• ESUG (European Smalltalk User Group)
o ESUG (fr)
o ESUG (nl)
o Summer School
• Belgian Smalltalk User Group (BSUG)
• Smalltalk Industry Council (STIC)
The products Smalltalk/80 and VisualWork
Also hosts the Digitalk line of products
• Quasar Knowledge Systems
The product SmalltalkAgents
And the ftp site is here (login: ftp)
• Object Connect
• HotSpot and Strongtalk
from Animorphic Systems
mixe smalltalk and java.
• Visual Instance for Smalltalk
Visually edit Smalltalk objects, etc.
Squeak is an open, highly-portable Smalltalk-80 implementation
whose virtual machine is written entirely in Smalltalk, making it
easy to debug, analyze, and change. To achieve practical
performance, a translator produces an equivalent C program
whose performance is comparable to commercial Smalltalks.
• The Manchester Smalltalk Archive (via gopher)
• Carleton University, Ottawa Canada
About Little Smalltalk
• The C++ Virtual Library
• Unofficial C++ Home Page
• Enrique Urzais Page
• SIGPLAN, C++
Libraries (software packages)
• Collection of programming tools and libraries for the C++
• Heterogeneous Container Class Library
The container models in HCCL includes classes for a general
container, a bag, a set, a relation, and a function.
• Borland information resources
Virtual Reality in Oceanography
This document describes ongoing research at the Center for Coastal
Physical Oceanography directed towards utilizing virtual reality
methods in studying oceanographic data from the Chesapeake Bay
and other regions.
Why Virtual Reality?
The emerging technology of virtual reality and immersive techniques
will change the way data is viewed and analyzed, as well as the way
models will be developed and the results interpreted. The current
visualization process for three-dimensional data renders plots which
may be difficult to understand in a total context due to the size of the
vector fields or the complexity of the system being portrayed.
However, using virtual reality methods to create and navigate through
an artificial world based on the dataset provides an actual sense of
presence to the user. While in this virtual environment, direct
interaction with the data or with the model producing the fields being
viewed via some sort of widget-based interactive user interface is then
possible. For example, we could visualize the small scale 3D structure
of the first few meters of the ocean surface, watch a simulation of
momentum transfer from wind to waves, and then examine the
processes from different length scales by interactively changing a
model parameter during the visualization.
The Electronic Visualizatiopn Lab at the University of Illinois at
Chicago, (EVL) , has developed the CAVE (Cave Automatic Virtual
Environment) to enable scientists to interact with virtual worlds that
have been created from observed data or simulations. The CAVE is a
high-resolution projection-screen virtual reality system powered by a
Silicon Graphics Onyx parallel-processor computer. The screens are
arranged in a 10 foot cube with computer-generated images projected
on three walls and a floor. A viewer wears a 6-degrees of freedom
head tracker device and stereo-shutter glasses so that the correct
projections and perspectives are presented as the viewer moves inside
the CAVE. A wand (essentially a computer mouse) held by the viewer
allows interaction with the virtual environment. Also available is
CAVE simulator software which allows one to develop applications
for the CAVE on local platforms.
CCPO at SIGGRAPH '94
SIGGRAPH is an annual meeting hosted by the Association for
Computing Machinery (ACM) and is devoted to the art and science of
computer generated graphics. The initial results of CCPO's VR
research effort were presented in the VROOM (Virtual Reality Room)
at SIGGRAPH '94 in Orlando the end of July, 1994 by Glen Wheless
and Arnoldo Valle-Levinson , both Research Assistant Professors at
CCPO, as the project entitled `A Walk Through The Chesapeake Bay'.
A fine-grid bathymetry of the Chesapeake Bay was used to create a
3D virtual domain which was then displayed in the CAVE. Viewers
were then able to "fly" through this 3D environment and navigate
their way through the often abrupt bathymetry of the Bay. Semi-
transparent 3D isosurfaces derived from monthly observations of
surface salinity were displayed and animated, showing the seasonal
change of salinity throughout the Bay.
Visit the Electronic Visualization Lab at the University of Chicago
to find out more about this project including an animation of a
CCPO at SuperComputing '94
Supercomputing '94 , the latest conference in the series on high
performance computing and communications, took place November
14-18, 1994, at the Washington D.C. Convention Center. The
Chesapeake Bay VR Project was showcased at the National Science
Foundation's MetaCenter booth. A major addition to the Bay VR
exhibit was the display and animation of time dependent salinity fields
obtained from a three-dimensional circulation model of the Bay.
These fields were rendered as isosurfaces and overlaid upon the
graphical representation of the bathymetry. The Princeton Ocean
Model, a fully three-dimensional hydrodynamical circulation model
with an embedded Mellor-Yamada 2.5 level turbulence closure scheme
was used to generate the salinity data.
The Chesapeake Bay Virtual Ecosystem Model
Researchers at CCPO have fostered a strong collaboration with NCSA
scientists and are Chesapeake Bay virtual ecosystem model (CBVE)
using the CAVE technology. Wheless and Eileen Hofmann , Associate
Professor, have the lead on the CBVEM project. The visualization
framework displayed at SIGGRAPH will serve as the base upon which
simulation results from linked submodels of Bay circulation,
biological behavior and sediment transport will be displayed. Users
will have real-time interactivity with this ecosystem simulation and
will be able to control and steer the model as it is running.
Back to to CCPO or back to My Home
Virtual Memory is a concept used in some large computer
system that permit the user to construct programs as though a large
memory space were available, equal to the totality of auxiliary
memory. Each address that is referenced by the CPU goes through an
address mapping from the so-called virtual address to a physical
address in main memory. Virtual memory is used to give programmers
the illusion that they have a very large memory at their disposal, even
through the computer actually has a relatively small main memory. A
virtual memory system provides a mechanism for translating
programs generated addresses into correct main memory locations.
This is done dynamically, while programs are being executed in the
CPU. The translation or mapping is handled automatically by the
hardware by means of a mapping table.
Relation Between Address & Memory Space In A Virtual Memory System
In a multi-program computer system, programs and data are
transferred to and from auxiliary memory and main memory based on
demands imposed by the CPU. Suppose that program 1 is currently
being executed in the CPU Program 1 and a portion of its associated
data is moved from auxiliary memory into main memory shown as
under. Portions of programs and data need not be in contiguous
locations in memory since information is being moved in and out, and
empty spaces may be available in scattered locations in memory.
In a Virtual Memory System, programmers are told that they
have the total address space at their disposal. Moreover, the address
field of the instruction code has a sufficient number of bits to specify
all virtual addresses. In our example, the address field of an
instruction code will consist of 20 bits but physical memory address
must be specified with only 15 bits. Thus CPU will reference
instructions and data with a 20 bits address, but the information at
this address must be taken from physical memory because access to
auxiliary storage for individual words will be prohibitively long. A
table is then needed shown as under to map a virtual address of 20
bits to a physical address of 15 bits. The mapping is a dynamic
operation, which means that every address is translated immediately
as a word is referenced by CPU.
Virtual mapping table may be stored in a separate memory or in
Adress Main memory
register Memory Main
(15 bits) Memor
Memory memory buffer 44
table buffer register
In first case, an additional memory unit is required as well as one
extra memory access time.
In second case, the table-take space from main memory and two
accesses to memory are required with the program running at half
ADDRESS MAPPING USING PAGE
Page & Block:-
The address mapping is simplified if the information in the
address space and the memory space are each divided into groups of
fixed size. The physical memory is broken down into groups of equal
size called blocks, which may range from 64 to 4096 words each. The
term page refers to groups of address space of the same size.
If a page or block consists of 1K words, then, using the previous
example, address space is divided into 1024 pages and main memory
is divided into 32 blocks. Although both a page and a block are split
into groups of 1K words, a page refers to the organization of address
space, while a block refers to the organization of memory space.