From Dallas Makerspace
Jump to: navigation, search

I'm a tinkerer by habit. I've been building things out of other things all my life.

By day I'm a software and systems engineer. I am a compulsive student of programming languages, software and systems architecture. I still read non-fiction. Yes, I'm (not so) secretly a nerd. My current focus of study is Scala and digital electronics.


Cognitive Science, Electronics, AI, Interactive Art, 3D, Robotics, Remote Sensing, Group Interaction Dynamics, System Dynamics and Modeling, Visualization, Real-time analysis, and most importantly, Blinky Lights!


Thing Table

Design Philosophy

Makers like to have good tools. Some say that a good craftsman can produce good work given any tool, but that a poor craftsman will produce poor work even with the best tools. When this pertains to tools which have fundamentally equivalent potential, this holds true. There is another category of tools, however, for which it doesn't apply. In modern society, we no longer have simply the tool, the maker, and the product. Complex tool chains fit together in the ways similar to complex ecosystems. In many cases, the tools required to achieve a given output, no matter the quality, are part of a complex flow. Tools are used to make other tools in ways which fundamentally enable new kinds of products and tools to be created. Our industrial success is a direct outcome of mastery of this tool-based system. It has also taken many decades to mature to the current state, with the number of possibilities opening up at an exponential rate.

Once in awhile, someone makes or discovers a tool which enables a fundamentally different approach to the study or manufacture of things. Examples: steam, plastic, dovetail jig, etc. Even more profound examples include lithography, electricity, and quantum theory. These are the types of tools which require other, more primitive tools to attain. The more advanced tools tend to add whole dimensions to the number of things which are possible to create or understand. Most importantly, the arrival of the more advanced tools nearly always represents a leap in conceptual understanding, but usually to a smaller set of the population in general. The tools which enable the few are generally to the benefit of the many, but this is not always the case.

If you take the software of modern society and apply the tool-economy as an analogy, there are many similarities. Instead of the tool, the maker, and the product, you have the language, the programmer, and the program. This is a trite example, but it does illustrate a cohesive relationship between the two domains. You can carry the analogy further to many levels without much difficulty. This carries forward to the point of building more advanced tools. The analogy breaks when it comes to the limiting factors which prevent most people from having access to the most advanced tools. In our time, everyone of moderate means could have access to the most advanced software tools that exist. Another part of the analogy that is tenuous is the tangibility of conceptual understanding. Most people tend to think of creative activities in terms of tangible things. If they can understand how to do something with their hands, they easily remember it in terms of a process. The understanding of new technology with hardware tools comes more naturally than that with software tools.

I believe there is a way to broaden the analogy beyond these limitations. I want to believe that software and hardware have certain conceptual and functional symmetries which are equally useful now and more so in the future. The emphasis is not on emulating virtual representations of tangible things, so much as achieving the conceptual clarity and natural modes of thinking about software behaviors at a high level of obviousness.

TKTILTA, The Kinds of Things I Like to Think About

I'll elaborate more here if these topics pique any interest.

  • Design by Composition, algebra of end-user tool synthesis and understanding
  • Conceptual Clarity, multiplier of use and communication in design
  • Meta Engines and Domain Specific Languages, Partitioning of the so called "Value Proposition"
  • Feedback. Everything depends on feedback. Everything.
  • Feedback modulation in human behavior, AKA active-active communication.
  • Implicit and Explicit Design, taking things for granted for better or worse