Part I: Essentials
Did you know that 2500 years ago, philosophers like Plato and Aristotle were doing Object-Oriented Analysis and Entity-Relationship Modeling? More surprisingly, they were already more sophisticated than software developers are now! Why? Well, for one thing, they already understood that the properties of an object are not all created equal. Western Philosophy has big ideas that programmers need to know in their day to day software development. This article is part 1 of one of those big ideas: There are many flavors of object properties.
Part II: Says Who!?
Of the many subcategories of properties that Western Philosophers have come up with, an important pair are what John Locke named Primary and Secondary Properties. This article is Part 2 of one of Western Philosophy's big ideas that programmers need to know: Some object properties are in the eye of the beholder, not the object itself!
Is Morality Eating Your Own Dogfood?
Philosophy and economics have something to say about Unit Testing. There are two schools of thought about whether programmers should have to write tests to verify their own code (in addition to writing the code itself). The philosophy of economics, and psychology, and morality, all overlap in studies that show how people will readily abandon moral responsibilities if they are given ways to avoid the stigma of doing so. This leads me to feel more justified in my belief that programmers do a poorer job of reading, understanding, and implementing a specification when someone else has the responsibility of verification.
Learn how to keep your XMLHttpRequests from colliding with your Rich Internet Applications
GanttMagic and reXume XML standards
Open XML Standards (and reference implementations) for representing Gantt Chart and resume data.
The GanttMagic standard (as documented in its RDDL file) provides for representing Gantt Chart data in an XML format. The reXume standard provides for representing resume data in XML format. The reference implementation and demo files for each were implemented as Java Web Apps. They were combined in a Java Web App system that allowed interactive search and filtering on reXume data producing HTML, Text, and graphic image rendering of "Experience Diagrams", i.e. Gantt Chart summaries of which skills were used during which time periods.
This page contains links to articles and code examples related to Design Markers and Explicit Programming.
Explicit Programming for the Rest of Us
Explicit Programming seeks to better link designs with their implementations, but until now it has been tied to experimental research tools. Bruce Wallace introduces the Design Markers technique which provides many of the benefits of Explicit Programming but only relies on standard Java and JavaDoc.
Maximize your Design ROI with Marker Interfaces and JavaDoc
There are many choices made at design time which cannot be directly expressed in today's implementation languages. These choices must be implemented via programming & naming conventions. As will be shown, two consequences of this limitation conspire to erode your wise investment in design. The author has coined the term Design Markers to label the technique shown that leverages un-extended JavaDoc with Marker Interfaces to tie the “what” and “how” of the code to the “why”.
Web and EJB security using Borland's BES app server and LDAP
This white paper describes the steps needed to reproduce a proof of concept project that demonstrates Web and EJB container security using Borland's JBuilder8 Enterprise IDE and BES5.2 J2EE app server with a test LDAP server. There are some interim tests that are produced via test programs that are not per-se part of the final proof of concept system. However, they provide the reader with the ability to verify the setup in increments.
A condensed overview of Java RMI
accept()methods from your Visitor pattern using Java 1.2's reflection capabilities
In the November 2000 issue of Java Pro, James Cooper surveyed the well-known Visitor pattern. He explained that every element to be visited needs to cooperate by providing an
accept()method. This constraint can sometimes be very burdensome. However, Bruce Wallace presents a technique in Java 2 that eliminates
accept()methods altogether, with only two lines of code, using new reflection capabilities.
An Othello (aka Reversi) playing program for the Macintosh and IBM PC.
An entrant in the 1986 World Computer Othello Tournament held at CalTech in Pasadena, CA.
Interview on NPR's "All Things Considered"
An interview regarding Bruce's electronic music submission to the Louie Louie Marathon at Foothill College's KFJC-FM.
A seminar introducing the new Dept of Defense computer language: Ada
CGW & Associates
Developed the course book, and presented seminars based on it, at the LeBaron Hotel, San Jose, CA.
VisiTran (1981), EzTran (1982)
An Apple program and its sequel that transfered data between Applesoft BASIC programs and VisiCalc spreadsheets
It was given a positive review in InfoWorld in the 2-Aug-1982 issue.
How to do smooth animation with Apple Pascal on the Apple computer
Asteroids in Space (1980), Meteoroids in Space (1981)
Softalk Magazine named this game program and its sequel an "All Time Classic".
The product was voted into the Top 5 favorite programs for the Apple microcomputer. It rose into Softalk magazine's monthly Top 10 List of microcomputer software sales. Its manual and screen images are archived in online history sites.
A walk-thru 3-D maze game for the PLATO system, based on the J. G. Ballard short story, "Build Up".
The program was one of the very first 3-D walk-thru games. The maze itself was also 3-D, having holes in the floor and ceiling.