• About
  • Projects
  • Sources
  • Tools

Oliver Steele

Languages of the real and artificial

Home ::

Constraint Diagrams

By oliver - Posted on October 10th, 2004
Tagged:  
  • Systems Thinking
  • Visualizations

Decisions involve tradeoffs. Time at work subtracts from time with your family; money saved for the future subtracts from goods and services now; many food choices trade off among taste, convenience, price, and nutrition.

Some tradeoffs in computer science are the cost to update versus the cost to search, and execution time versus memory consumption. Tradeoffs in software development include implementation time versus execution time, and compilation time versus object code quality. Tradeoff in project management include resource pool size versus communications overhead, and cost versus time versus quality. These tradeoffs are some of the tradeoffs, respectively, in such tasks as choosing a data structure, algorithm, or cache size; choosing a programming language, a compiler and compiler settings; and choosing a project team size and personnel.  read more »

  • oliver's blog
  • 1 comment

Responsive Interfaces and Effective People

By oliver - Posted on September 11th, 2004
Tagged:  
  • Essays
  • Systems Thinking

Patrick Roberts has written a fascinating post on Responsive User Interfaces. It’s easy to make a specific application responsive, through careful coding and by limiting what the user can do. An architecture for doing this, with arbitrary functionality, is one of the holy grails of GUI frameworks. Patrick’s post is a step towards this.

Patrick defines responsive as “the UI never locks up and provides at least partial results ASAP, not that every operation is completed instantaneously”. His design uses a UI thread that runs performs fast operations, and pushes slow operations onto a queue. A background thread runs these operations in priority order.  read more »

  • oliver's blog
  • 2 comments

Tablehood Watch

By oliver - Posted on September 8th, 2004
Tagged:  
  • Systems Thinking

Tucker asked me if there was a name for the phenomenon where someone you don’t know asks you to watch over their possessions. I’m asked to do this a few times a day, for anything from books to laptops, at the ERC. (At the yuppie establishments that I also frequent, I’m not asked at all.)

If you’re worried that a total stranger might steal your belongings, why is it safe to ask a total stranger to guard them? There are at least two reasons.  read more »

  • oliver's blog

Hard Questions

By oliver - Posted on July 27th, 2003
Tagged:  
  • Systems Thinking

These are some hard questions my kids asked me when they were very young, with answers below:  read more »

  • Why are far away things small?
  • Why is it easier to pull a stroller (along a driveway with large gravel) than to push it?
  • Why can we breath air but not dirt?
  • oliver's blog

The Other OO

By oliver - Posted on July 27th, 2003
Tagged:  
  • Software Development
  • Systems Thinking

I’ve been reading about Col John Boyd’s OODA Loop —- Observe, Orient, Decide, and Act —- and I realized that some of the thinking based on this theory articulates intuitive reasons I’d had for liking zero defect milestones. Strategies such as “shortening your loop” and “getting inside” the enemy’s loop are those that zero defect milestones facilitate. If “Act” is the process of shipping a release, keeping the software in a shippable state preserves the ability of an organization to change the length of its loop based solely on external schedule requirements, without added constraints due to the accumulation of quality and other technical debts.  read more »

  • oliver's blog

Adaptors

By oliver - Posted on June 16th, 2003
Tagged:  
  • Systems Thinking

Two of the most useful metaphors I know are that of an adaptor, and impedance matching. They’re useful in software design, but beyond that in problem solving in general: these concepts allow you to use a components approach to solve real-world problems.

For example, recently I’ve had to repeatedly dry large leaks. The first few times I did this, I looked for a batch of newspaper. You can make a lot of paper mache this way, but eventually, you run out of newspaper.

A towel is a mechanism for removing water, but it’s also a device for moving water from one place to another. (The towel, unlike some of the places that water collects, and unlike the water itself, is portable.) You can think of it as something that mixes with water to make it portable.  read more »

  • oliver's blog

Overlapping Abstractions

By oliver - Posted on May 4th, 2003
Tagged:  
  • Systems Thinking

Software is built on abstractions. So are organizations, but there’s a fundamental difference in the way the abstractions are arranged.

Perhaps the most common software architecture is the layered architecture, where the behavior of each layer acts as an abstraction for the layer above it. Eric Sink has illustrated this recently for programs written in Java and .NET.

Joel Spolsky has illustrated how this principle is honored in the breach.

The

 read more »

  • oliver's blog

Declarative Directions

By oliver - Posted on May 4th, 2003
Tagged:  
  • Systems Thinking

I’ve noticed that there’s two ways of giving directions to a location (say, when a driver pulls over to ask you how to get to a restaurant). Declarative directions specify where a location is relative to the current location; for example, “Two blocks ahead and across the street.” Procedural directions specify the steps that have to be taken to reach a location; for example, “Go straight three blocks, take a u-turn, go one block, and it’s the first building on your right.”
 read more »

  • oliver's blog

Recent

  • Latin Agreement and Case
  • Smiley Socket
  • Commit Policies
  • My Git Workflow
  • Pneumococoa
  • My No TV
  • The Biofuel Economy
  • Ambimation
  • jQuery Profile Plugin
  • The Shadow of a Legacy
more

Categories

  • Amusements (10)
  • Essays (20)
  • Family (8)
  • General (9)
  • Health (1)
  • Illustrations (11)
  • Inventions (2)
  • JavaScript (24)
  • Libraries (21)
  • Math Education (9)
  • OpenLaszlo (31)
  • Programming (7)
  • Programming Languages (6)
  • Projects (23)
  • Python (3)
  • Ruby (7)
  • Software (3)
  • Open Source (4)
  • XML (6)
  • Software Development (8)
  • Systems Thinking (6)
  • Technology (7)
  • Tips (5)
  • Visualizations (13)
  • Words (9)

Navigation

  • Recent posts
  • Tools

Syndicate

Syndicate content

About

Oliver Steele lives in Western Massachusetts and commutes to downtown LA, where he is bringing an operating system from handwaving to reality. He was the architect of OpenLaszlo, the author of PyWordNet and other open source projects. His interests include programming languages, knowledge representation, information visualization, and math education. [more]

Tools

  • reAnimator
  • reWork

Amusements

  • Aargh
  • foldr
  • WideURL.com

Popular

  • Functional JavaScript
  • JavaScript Memoization
  • Overloading Semicolon
  • reAnimator
  • The IDE Divide
  • Visualizing Basic Algebra
Copyright 1995-2008 by Oliver Steele. All rights reserved.