Skip to main content

engineering in art

In order to continue an explanation of the relationships I see between art and engineering I will expand a bit what I've mentioned in previous posts. The abstractions that are employed to master use of the "objects" of each discipline are the same, the process of solving a problem involves first, isolating the objects and understanding their parameters or attributes in detail, followed by building the solution with the objects , while adhering to the parameters or interface attribute constraints. In the drawing analogy , the idea of shape covers what in programming is expressed by interface.

The final step involves making a view of the objects constructed to solve a particular problem. In software engineering the view defines the scope of the solution, how efficient it should be in a given work domain, how scalable it should be, how intensive in resource utilization it should or should not be. In drawing, the view maps to the visual idea of perspective, how does the physical object appear when observed through a hypothetical camera in a given position given its known physical extent, it's translucence, it's texture or illumination. In both cases we are painting a solution from the vast possibility of options in the problem space by discretization of the properties of the view.

As mentioned in sent2null space: objects , abstractions, symmetry and pop corn??? with practice of creating the object abstractions from the problem space comes an appreciation for using symmetry to vastly reduce the work required during the implementation stage. In art this involves taking advantage of geometrical symmetry, cylindrical, spherical , ellipsoidal characteristics are seen in the objects and transformations on these primitives allow real time computation of intermediate positions of the object from a desired view. In software engineering, the symmetry prevents itself in taking advantage of constraints of the over all design to avoid doing work that is computationally or memory inefficient.

Today I had a discussion where explaining these similarities were hard to come by, though I was some what successful in my endeavor mostly the correlation between solving and art problem and solving a software object problem was hard for the listener to absorb. The difficulty in seeing the connections aside, I think a great deal of effort can be avoided by taking advantage of these ideas in any area of study. Another example should help, this one comes from my training as an electrical engineer. In electrical engineering, the task of designing an electronic or electric device involves the exact same steps of object learning, object building, object symmetry finding and finally solution synthesis.

In the ee design world, the objects are discrete components which not surprisingly have constraints on their behavior when placed in an electrical circuit or circuits. Inductors store magnetic energy as a result of the thickness and length, density and type of windings used, capacitors store electric charge based on the area of plates, their separation and again the type of material. The key to understanding how to build circuits with these components is to first understand intimately the components, what they do when fed a signal and why...this is the same as knowing how the component is "viewed" , to use the drawing analogy again, or of knowing how an object with a given attribute set and return type will behave when fed a given set of values.

Again, the act of solution synthesis involves the same abstractions, as well an eye for symmetry allows simplifications to be revealed ... standard electronic circuit design involving non linear components like capacitors and inductors , diodes and transistors were solved using large sets of simultaneous equations that expressed the instantaneous (time dependent) relationships between the circuit components. Later, methods were developed to take advantage of the continuous time response of the components , these allowed integro differential equations to be solved for specified initial conditions of time and other parameters like frequency, voltage or current and thus expedited solution.

Recognizing the symmetry of frequency in various circuits allowed the application of transformational solutions. The Fourier and Laplace transforms being key methods to reduce the order of complexity for complex electronic circuits and thus make certain hard problems easy and certain virtually impossible problems only hard to solve. Each solution method employed a deep understanding of the object relationships of the component level in conjunction with a recognition of symmetry that allowed solution short cuts to be made.

Today , no modern electronic circuit designer would think of solving complex circuit values without use of the advanced transforms usually in a simulation package like Matlab. So , as in art and software design, electronic design proceeds efficiently from understanding objects, abstracting views, utilizing symmetries and then synthesizing solutions. As I come up with more examples that correlate (one that I think of now off hand is cooking) I'll write a post to show the relationships but hopefully this latest post cleared up the idea some what...well I hope it did anyway. ;)


Popular posts from this blog

Highly targeted Cpg vaccine immunotherapy for a range of cancer


This will surely go down as a seminal advance in cancer therapy. It reads like magic:

So this new approach looks for the specific proteins that are associated with a given tumors resistance to attack by the body's T cells, it then adjusts those T cells to be hyper sensitive to the specific oncogenic proteins targeted. These cells become essentially The Terminator​ T cells in the specific tumor AND have the multiplied effect of traveling along the immune pathway of spreading that the cancer many have metastasized. This is huge squared because it means you can essentially use targeting one tumor to identify and eliminate distal tumors that you many not even realize exist.

This allows the therapy for treating cancer to, for the first time; end the "wack a mole" problem that has frustrated traditional shot gun methods of treatment involving radiation and chemotherapy ...which by their nature unfortunately damage parts of the body that are not cancer laden but …

Engineers versus Programmers

I have found as more non formally trained people enter the coding space, the quality of code that results varies in an interesting way.

The formalities of learning to code in a structured course at University involve often strong focus on "correctness" and efficiency in the form of big O representations for the algorithms created.

Much less focus tends to be placed on what I'll call practical programming, which is the type of code that engineers (note I didn't use "programmers" on purpose) must learn to write.

Programmers are what Universities create, students that can take a defined development environment and within in write an algorithm for computing some sequence or traversing a tree or encoding and decoding a string. Efficiency and invariant rules are guiding development missions. Execution time for creating the solution is often a week or more depending on the professor and their style of teaching code and giving out problems. This type of coding is devo…

AgilEntity Architecture: Action Oriented Workflow

Permissions, fine grained versus management headache
The usual method for determining which users can perform a given function on a given object in a managed system, employs providing those Users with specific access rights via the use of permissions. Often these permissions are also able to be granted to collections called Groups, to which Users are added. The combination of Permissions and Groups provides the ability to provide as atomic a dissemination of rights across the User space as possible. However, this granularity comes at the price of reduced efficiency for managing the created permissions and more importantly the Groups that collect Users designated to perform sets of actions. Essentially the Groups serve as access control lists in many systems, which for the variable and often changing environment of business applications means a need to constantly update the ACL’s (groups) in order to add or remove individuals based on their ability to perform certain actions. Also, the…