-
Not All Object Properties Are Created Equal
Part I: Essentials
June 2012
DZone.com
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.
-
Not All Object Properties Are Created Equal
Part II: Says Who!?
June 2012
DZone.com
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!
-
Writing Tests: Don't Make "Not my Job" "Just Business"
Is Morality Eating Your Own Dogfood?
Aug 2010
JavaLobby
DZone.com
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.
-
AJAX from Scratch: Implementing "Real" Classes in JavaScript
And why your JavaScript classes probably aren't
Feb 2007
Gamelan.com
Developer.com
JavaScript developers can use the presented compact implementation to take advantage of most of the features of the Java classes. This will enable the use of robust design patterns needed for AJAX and Rich Internet Applications (RIA).
-
Gravey Framework Home Page
Open production-quality AJAX and Javascript MVC Framework
Sept 2006
gravey.org
This site contains links to code and examples related to the Gravey framework as described in the AJAX from Scratch articles. Gravey is a framework for developing Rich Internet Applications and Single Page Applications using standard OOP design patterns like Component, MVC, Command, AJAX, and REST. It is distinct in being a completely stand-alone JavaScript library, and hence, it does not depend on any particular server frameworks or technologies (e.g. J2EE, .Net, etc). It has been used in major U.S. banking applications.
-
Mutual Exclusion in JavaScript
March 2006
OReilly OnJava.com
Weak JavaScript environments offer the AJAX developer little protection from Cooperative multitasking concurrency dangers, such as one logical thread modifying the DOM while another reads it. Bruce Wallace offers a mutual exclusion implementation for JavaScript.
-
AJAX from Scratch: Implementing Mutual Exclusion in JavaScript
Learn how to keep your XMLHttpRequests from colliding with your Rich Internet Applications
March 2006
Gamelan.com
Developer.com
With the increasingly popular AJAX paradigm, a browser page can make requests for server data “in the background” while the user interface continues to be active “in the foreground”, via Cooperative multitasking, causing problems by accessing common data simultaneously. The classic solutions to this concurrent programming problem are not supplied by JavaScript. This article describes an implementation of a mutual exclusion mechanism that works around the limitations of JavaScript.
-
GanttMagic and reXume XML standards
Open XML Standards (and reference implementations) for representing Gantt Chart and resume data.
Sept 2003
gravey.org
reXume.org
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.
-
Design Markers Home Page
This page contains links to articles and code examples related to Design Markers and Explicit Programming.
-
Design Markers (local copy), (OnJava.com site has gone away)
Explicit Programming for the Rest of Us
March 2003
OReilly OnJava.com
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.
-
Design Markers
Maximize your Design ROI with Marker Interfaces and JavaDoc
March 2003
Gamelan.com
Developer.com
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”.
-
Configuring Authentication and Authorization in BES5.2 with LDAP
Web and EJB security using Borland's BES app server and LDAP
March 2003
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.
-
Java RMI Cheatsheet
A condensed overview of Java RMI
May 2002
-
A Time for Reflection (local copy), (JavaPro site has gone away)
Eliminate burdensome
accept()
methods from your Visitor pattern using Java 1.2's reflection capabilitiesMarch 2001
JavaPro Magazine
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 eliminatesaccept()
methods altogether, with only two lines of code, using new reflection capabilities. -
POP
An Othello (aka Reversi) playing program for the Macintosh and IBM PC.
February 1986
PolyGlot, Inc.
An entrant in the 1986 World Computer Othello Tournament held at CalTech in Pasadena, CA.
-
Louie Louie Marathon
Interview on NPR's "All Things Considered"
22-Aug-1983
All Things Considered (NPR)
An interview regarding Bruce's electronic music submission to the Louie Louie Marathon at Foothill College's KFJC-FM.
-
Introduction to Ada
A seminar introducing the new Dept of Defense computer language: Ada
November 1982
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
October 1981
ADC Associates
It was given a positive review in InfoWorld in the 2-Aug-1982 issue.
-
Using Page Two with Apple Pascal Turtle Graphics
How to do smooth animation with Apple Pascal on the Apple computer
May 1981 Issue
Byte Magazine
-
Asteroids in Space (1980), Meteoroids in Space (1981)
Softalk Magazine named this game program and its sequel an "All Time Classic".
May 1980
Quality Software
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.
-
Build-Up
A walk-thru 3-D maze game for the PLATO system, based on the J. G. Ballard short story, "Build Up".
June 1975
PLATO
Florida State University Computing Center
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.