Design Principles

From “Design Principles Behind Smalltalk”:http://users.ipa.net/%7Edwighth/smalltalk/byte_aug81/design_principles_behind_smalltalk.html

* Personal Mastery: If a system is to serve the creative spirit, it must be entirely comprehensible to a single individual.
* Good Design: A system should be built with a minimum set of unchangeable parts; those parts should be as general as possible; and all parts of the system should be held in a uniform framework.
* Purpose of Language: To provide a framework for communication.
* Scope: The design of a language for using computers must deal with internal models, external media, and the interaction between these in both the human and the computer.
* Objects: A computer language should support the concept of “object” and provide a uniform means for referring to the objects in its universe.
* Storage Management: To be truly “object-oriented”, a computer system must provide automatic storage management.
* Messages: Computing should be viewed as an intrinsic capability of objects that can be uniformly invoked by sending messages.
* Uniform Metaphor: A language should be designed around a powerful metaphor that can be uniformly applied in all areas.
* Modularity: No component in a complex system should depend on the internal details of any other component.
* Classification: A language must provide a means for classifying similar objects, and for adding new classes of objects on equal footing with the kernel classes of the system.
* Polymorphism: A program should specify only the behavior of objects, not their representation.
* Factoring: Each independent component in a system would appear in only one place.
* Leverage: When a system is well factored, great leverage is available to users and implementers alike.
* Virtual Machine: A virtual machine specification establishes a framework for the application of technology.
* Reactive Principle: Every component accessible to the user should be able to present itself in a meaningful way for observation and manipulation.
* Operating System: An operating system is a collection of things that don’t fit into a language. There shouldn’t be one.
* Natural Selection: Languages and systems that are of sound design will persist, to be supplanted only by better ones.

Reading List: Design Patterns

“Design Patterns by GoF”:http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612

It is definitely an important book. I helped to popularize the concept of design patterns, good solutions for certain frequent-seen problems. And really, it is all about design patterns. I cannot help but thinking the book make the concept much more academic than it is. The authors presented patterns in a elaborate way of a scientific paper; and again design patterns are no science. Recently, I think many design patterns are the direct result of language weaknesses. For example, the book used C++ to illustrate examples, however many patterns will be redundant if you use Python. The reason of many patterns is due to the weakness of current programming languages, particularly C++.

Align Cafe

A new cafe in 1st Ma May street, Hanoi, by my friend Viet Phuong of the 3DHanoi.com. Very cool place to hang out. The drink is OK, they need to improve a lot on cocktails. However, the waiters are well-trained, you don’t find that good services in Hanoi often. The design is really cool. They managed to embedded many elements of old Hanoi into a new modern design. The owner is very detailed oriented, after many visits, I was sometimes surprised by some good design.

Align Cafe

Duyên Dáng Việt Nam 19

Duyen Dang Vietnam

I am the right-most person in the picture. For those don’t know about “Duyên Dáng Việt Nam”, it is a music-fashion combo concert, pretty popular in Vietnam. They also did some shows outside Vietnam. In this coming 19th show, they will use some 3D models of Old Hanoi which as developed by “3D Hanoi Group”:http://3dhanoi.com/. Autodesk funded software for the group in another project in which those models are built. I “represented” Autodesk in one of their meetings.

“Link”:http://www1.thanhnien.com.vn/Vanhoa/2007/12/25/220396.tno

Principles of New Urbanism

My dream city must follow the following principles:

“http://www.newurbanism.org/newurbanism/principles.html”:http://www.newurbanism.org/newurbanism/principles.html

1. Walkability
2. Connectivity
3. Mixed-Use & Diversity
4. Mixed Housing
5. Quality Architecture & Urban Design
6. Traditional Neighborhood Structure
7. Increased Density
8. Smart Transportation
9. Sustainability
10. Quality of Life

I have lived in Hanoi and Singapore; spent some time in San Francisco. I like San Francisco best. Hanoi used to be very nice place to live, however it has been expending very fast recently, and copying many “bad” ideas from Singapore. Singapore is a clean very safe city with a good public transportation. However, it does not score very well according to above principles.

Weak intellectual-property laws and strong innovation

bq. Designers’ frustration at seeing their ideas mimicked is understandable. But this is a classic case where the cure may be worse than the disease. There’s little evidence that knockoffs are damaging the business. Fashion sales have remained more than healthy–estimates value the global luxury-fashion sector at a hundred and thirty billion dollars– and the high-end firms that so often see their designs copied have become stronger. More striking, a recent paper by the law professors Kal Raustiala and Christopher Sprigman suggests that weak intellectual-property rules, far from hurting the fashion industry, have instead been integral to its success. The professors call this effect “the piracy paradox.”

bq. The paradox stems from the basic dilemma that underpins the economics of fashion: for the industry to keep growing, customers must like this year’s designs, but they must also become dissatisfied with them, so that they’ll buy next year’s. Many other consumer businesses face a similar problem, but fashion–unlike, say, the technology industry–can’t rely on improvements in power and performance to make old products obsolete. Raustiala and Sprigman argue persuasively that, in fashion, it’s copying that serves this function, bringing about what they call “induced obsolescence.” Copying enables designs and styles to move quickly from early adopters to the masses. And since no one cool wants to keep wearing something after everybody else is wearing it, the copying of designs helps fuel the incessant demand for something new.

“Link”:http://www.newyorker.com/talk/financial/2007/09/24/070924ta_talk_surowiecki via “Boingboing.net”:boingboing.net

Reading List: The Inmates Are Running the Asylum

I have just finished the book “The Inmates Are Running the Asylum”:http://www.amazon.com/Inmates-Are-Running-Asylum-Products/dp/0672316498 it is a interesting enough. What I take home after reading the book is that you have to write spec before coding a new software. There are many good reviews in Amazon site, so I won’t write a long one. I have few problems with the book:

* It is too much like a rant; I feel the book can be shorted by half without losing any information.
* The illustrative pictures are plain ugly and childish; they look like clip arts taken from PowerPoint. I have not talked about typography yet.
* Many points the author raised in the book don’t have substantial data/analysis to back up. They are just his personal opinions.

Overall, it is still worth to read; a good book instead. He mentioned many important concepts of interactive design which I fully agree with. I wish the author can shorten the book into half, cut out his personal rants, find some beautiful-meaningful illustrative pictures.