The nature of design is equally as complex as that of technology. Archer wrote that:
“Design is that area of human experience, skill and knowledge which is concerned with man’s ability to mould his environment to suit his material and spiritual needs.” 1
Design is essentially a rational, logical, sequential process intended to solve problems or, as Jones put it:
“initiate change in man-made things” 2
For the term “design process,” we can also read “problem-solving process”, which in all but its abstract forms works by consultation and consensus. The process begins with the identification and analysis of a problem or need and proceeds through a structured sequence in which information is researched and ideas explored and evaluated until the optimum solution to the problem or need is devised.
Yet, design has not always been a rational process; up until the Great War design was often a chaotic affair in that consultation and consensus were barely evident. Design was not a total process. The work of participants in the process was often compartmentalised, each having little if any input in matters which fell outside the boundaries of their specific expertise. Thus, participants explored their ideas unilaterally, with one or another participant, through virtue of their “expertise”, imposing constraints upon all others. In this way, the craftsman has a veto on matters to do with skill or availability of materials, the engineer had a veto on technological considerations, and the patron alone could impose considerations of taste and finance.
During the inter-war years the Bauhaus movement attempted to knit the design process into a coherent whole in that students were encouraged to study design in a way that was both total and detailed. That is, designers were expected to balance all the considerations that came to bear upon the design of particular artefacts, systems and environments. In this way, though, design quickly evolved into a closed activity - an activity in which all but the designers themselves has little if any valid input to make on questions of materials, taste . . . and so on. Designers came to exist within a social bubble, consulting no-one but other designers. The result was that many designs conceived particularly during the immediate post-Second World War period did little to satisfy the needs of users. Such designs were exemplified by the disastrous housing policies adopted by many local authorities in the UK who built residential tower block after residential tower block. These were essentially realisations of dreamy design concepts rather than solutions to the social, cultural and environmental needs of the local populations.
Recent years have marked a sharp reaction against the design movement, which has perhaps been personified by Prince Charles and has crusade against architectural “carbuncles”. Likewise, individuals within society have sought to express their own tastes, their own individuality, personal style and personal self-image through what they use and purchase. Thus it is that design is not an activity solely for engineers and designers but is a shared activity between those who design artefacts, systems and environments, those who make them and those who use them.
Thursday, October 30, 2008
What is Design ?
Posted by wan_one at 7:24 AM 0 comments
TCP/IP The Language of the Internet
TCP/IP (Transport Control Protocol/Internet Protocol) is the ``language'' of the Internet. Anything that can learn to ``speak TCP/IP'' can play on the Internet. This is functionality that occurs at the Network (IP) and Transport (TCP) layers in the ISO/OSI Reference Model. Consequently, a host that has TCP/IP functionality (such as Unix, OS/2, MacOS, or Windows NT) can easily support applications (such as Netscape's Navigator) that uses the network.
Open Design
One of the most important features of TCP/IP isn't a technological one: The protocol is an ``open'' protocol, and anyone who wishes to implement it may do so freely. Engineers and scientists from all over the world participate in the IETF (Internet Engineering Task Force) working groups that design the protocols that make the Internet work. Their time is typically donated by their companies, and the result is work that benefits everyone.
IP
As noted, IP is a ``network layer'' protocol. This is the layer that allows the hosts to actually ``talk'' to each other. Such things as carrying datagrams, mapping the Internet address (such as 10.2.3.4) to a physical network address (such as 08:00:69:0a:ca:8f), and routing, which takes care of making sure that all of the devices that have Internet connectivity can find the way to each other.
Understanding IP
IP has a number of very important features which make it an extremely robust and flexible protocol. For our purposes, though, we're going to focus on the security of IP, or more specifically, the lack thereof.
Attacks Against IP
A number of attacks against IP are possible. Typically, these exploit the fact that IP does not perform a robust mechanism for authentication , which is proving that a packet came from where it claims it did. A packet simply claims to originate from a given address, and there isn't a way to be sure that the host that sent the packet is telling the truth. This isn't necessarily a weakness, per se , but it is an important point, because it means that the facility of host authentication has to be provided at a higher layer on the ISO/OSI Reference Model. Today, applications that require strong host authentication (such as cryptographic applications) do this at the application layer.
IP Spoofing
This is where one host claims to have the IP address of another. Since many systems (such as router access control lists) define which packets may and which packets may not pass based on the sender's IP address, this is a useful technique to an attacker: he can send packets to a host, perhaps causing it to take some sort of action.
Additionally, some applications allow login based on the IP address of the person making the request (such as the Berkeley r-commands )[2]. These are both good examples how trusting untrustable layers can provide security that is -- at best -- weak.
IP Session Hijacking
This is a relatively sophisticated attack, first described by Steve Bellovin [3]. This is very dangerous, however, because there are now toolkits available in the underground community that allow otherwise unskilled bad-guy-wannabes to perpetrate this attack. IP Session Hijacking is an attack whereby a user's session is taken over, being in the control of the attacker. If the user was in the middle of email, the attacker is looking at the email, and then can execute any commands he wishes as the attacked user. The attacked user simply sees his session dropped, and may simply login again, perhaps not even noticing that the attacker is still logged in and doing things.
For the description of the attack, let's return to our large network of networks in Figure 4. In this attack, a user on host A is carrying on a session with host G. Perhaps this is a telnet session, where the user is reading his email, or using a Unix shell account from home. Somewhere in the network between A and G sits host H which is run by a naughty person. The naughty person on host H watches the traffic between A and G, and runs a tool which starts to impersonate A to G, and at the same time tells A to shut up, perhaps trying to convince it that G is no longer on the net (which might happen in the event of a crash, or major network outage). After a few seconds of this, if the attack is successful, naughty person has ``hijacked'' the session of our user. Anything that the user can do legitimately can now be done by the attacker, illegitimately. As far as G knows, nothing has happened.
This can be solved by replacing standard telnet-type applications with encrypted versions of the same thing. In this case, the attacker can still take over the session, but he'll see only ``gibberish'' because the session is encrypted. The attacker will not have the needed cryptographic key(s) to decrypt the data stream from G, and will, therefore, be unable to do anything with the session.
TCP
TCP is a transport-layer protocol. It needs to sit on top of a network-layer protocol, and was designed to ride atop IP. (Just as IP was designed to carry, among other things, TCP packets.) Because TCP and IP were designed together and wherever you have one, you typically have the other, the entire suite of Internet protocols are known collectively as ``TCP/IP.'' TCP itself has a number of important features that we'll cover briefly.
Guaranteed Packet Delivery
Probably the most important is guaranteed packet delivery. Host A sending packets to host B expects to get acknowledgments back for each packet. If B does not send an acknowledgment within a specified amount of time, A will resend the packet.
Applications on host B will expect a data stream from a TCP session to be complete, and in order. As noted, if a packet is missing, it will be resent by A, and if packets arrive out of order, B will arrange them in proper order before passing the data to the requesting application.
This is suited well toward a number of applications, such as a telnet session. A user wants to be sure every keystroke is received by the remote host, and that it gets every packet sent back, even if this means occasional slight delays in responsiveness while a lost packet is resent, or while out-of-order packets are rearranged.
It is not suited well toward other applications, such as streaming audio or video, however. In these, it doesn't really matter if a packet is lost (a lost packet in a stream of 100 won't be distinguishable) but it does matter if they arrive late (i.e., because of a host resending a packet presumed lost), since the data stream will be paused while the lost packet is being resent. Once the lost packet is received, it will be put in the proper slot in the data stream, and then passed up to the application.
UDP
UDP (User Datagram Protocol) is a simple transport-layer protocol. It does not provide the same features as TCP, and is thus considered ``unreliable.'' Again, although this is unsuitable for some applications, it does have much more applicability in other applications than the more reliable and robust TCP.
Lower Overhead than TCP
One of the things that makes UDP nice is its simplicity. Because it doesn't need to keep track of the sequence of packets, whether they ever made it to their destination, etc., it has lower overhead than TCP. This is another reason why it's more suited to streaming-data applications: there's less screwing around that needs to be done with making sure all the packets are there, in the right order, and that sort of thing.
Posted by wan_one at 7:20 AM 0 comments
Memory In Computer
A computer's memory can be viewed as a list of cells into which numbers can be placed or read. Each cell has a numbered "address" and can store a single number. The computer can be instructed to "put the number 123 into the cell numbered 1357" or to "add the number that is in cell 1357 to the number that is in cell 2468 and put the answer into cell 1595". The information stored in memory may represent practically anything. Letters, numbers, even computer instructions can be placed into memory with equal ease. Since the CPU does not differentiate between different types of information, it is up to the software to give significance to what the memory sees as nothing but a series of numbers.
In almost all modern computers, each memory cell is set up to store binary numbers in groups of eight bits (called a byte). Each byte is able to represent 256 different numbers; either from 0 to 255 or -128 to +127. To store larger numbers, several consecutive bytes may be used (typically, two, four or eight). When negative numbers are required, they are usually stored in two's complement notation. Other arrangements are possible, but are usually not seen outside of specialized applications or historical contexts. A computer can store any kind of information in memory as long as it can be somehow represented in numerical form. Modern computers have billions or even trillions of bytes of memory.
The CPU contains a special set of memory cells called registers that can be read and written to much more rapidly than the main memory area. There are typically between two and one hundred registers depending on the type of CPU. Registers are used for the most frequently needed data items to avoid having to access main memory every time data is needed. Since data is constantly being worked on, reducing the need to access main memory (which is often slow compared to the ALU and control units) greatly increases the computer's speed.
Computer main memory comes in two principal varieties: random access memory or RAM and read-only memory or ROM. RAM can be read and written to anytime the CPU commands it, but ROM is pre-loaded with data and software that never changes, so the CPU can only read from it. ROM is typically used to store the computer's initial start-up instructions. In general, the contents of RAM is erased when the power to the computer is turned off while ROM retains its data indefinitely. In a PC, the ROM contains a specialized program called the BIOS that orchestrates loading the computer's operating system from the hard disk drive into RAM whenever the computer is turned on or reset. In embedded computers, which frequently do not have disk drives, all of the software required to perform the task may be stored in ROM. Software that is stored in ROM is often called firmware because it is notionally more like hardware than software. Flash memory blurs the distinction between ROM and RAM by retaining data when turned off but being rewritable like RAM. However, flash memory is typically much slower than conventional ROM and RAM so its use is restricted to applications where high speeds are not required.
In more sophisticated computers there may be one or more RAM cache memories which are slower than registers but faster than main memory. Generally computers with this sort of cache are designed to move frequently needed data into the cache automatically, often without the need for any intervention on the programmer's part.
Posted by wan_one at 6:58 AM 0 comments
12 Basic Principles Of Animation
1. Squash and stretch
The most important principle is "squash and stretch", the purpose of which is to give a sense of weight and flexibility to drawn objects. It can be applied to simple objects, like a bouncing ball, or more complex constructions, like the musculature of a human face. Taken to an extreme point, a figure stretched or squashed to an exaggerated degree can have a comical effect.In realistic animation, however, the most important aspect of this principle is the fact that an object's volume does not change when squashed or stretched. If the length of a ball is stretched vertically, its width (in three dimensions, also its depth) needs to contract correspondingly horizontally.
2. Anticipation
Anticipation is used to prepare the audience for an action, and to make the action appear more realistic. A dancer jumping off the floor has to bend his knees first; a golfer making a swing has to swing the club back first. The technique can also be used for less physical actions, such as a character looking off-screen to anticipate someone's arrival, or attention focusing on an object that a character is about to pick up.

Anticipation: A baseball player making a pitch prepares for the action by moving his arm back.
For special effect, anticipation can also be omitted in cases where it is expected. The resulting sense of anticlimax will produce a feeling of surprise in the viewer, and can often add comedy to a scene. This is often referred to as a 'surprise gag'.
3. Staging
This principle is akin to staging as it is known in theatre and film. Its purpose is to direct the audience's attention, and make it clear what is of greatest importance in a scene; what is happening, and what is about to happen. Johnston and Thomas defined it as "the presentation of any idea so that it is completely and unmistakeably clear", whether that idea is an action, a personality, an expression or a mood. This can be done by various means, such as the placement of a character in the frame, the use of light and shadow, and the angle and position of the camera. The essence of this principle is keeping focus on what is relevant, and avoiding unnecessary detail.
4. Straight ahead action and pose to pose
These are two different approaches to the actual drawing process. "Straight ahead action" means drawing out a scene frame by frame from beginning to end, while "pose to pose" involves starting with drawing a few, key frames, and then filling in the intervals later. "Straight ahead action" creates a more fluid, dynamic illusion of movement, and is better for producing realistic action sequences. On the other hand, it is hard to maintain proportions, and to create exact, convincing poses along the way. "Pose to pose" works better for dramatic or emotional scenes, where composition and relation to the surroundings are of greater importance. A combination of the two techniques is often used. Computer animation removes the problems of proportion related to "straight ahead action" drawing; however, "pose to pose" is still used for computer animation, because of the advantages it brings in composition. The use of computers facilitates this method, as computers can fill in the missing sequences in between poses automatically. It is, however, still important to oversee this process, and apply the other principles discussed.
5. Follow through and overlapping action
These closely related techniques help render movement more realistic, and give the impression that characters follow the laws of physics. "Follow through" means that separate parts of a body will continue moving after the character has stopped. "Overlapping action" is when a character changes direction, and parts of the body continue in the direction he was previously going. A third technique is "drag", where a character starts to move and parts of him take a few frames to catch up. These parts can be inanimate objects like clothing or the antenna on a car, or parts of the body, such as arms or hair. On the human body, the torso is the core, with arms, legs, head and hair appendices that normally follow the torso's movement. Body parts with much tissue, such as large stomachs and breasts, or the loose skin on a dog, are more prone to independent movement than bonier body parts. Again, exaggerated use of the technique can produce a comical effect, while more realistic animation must time the actions exactly, to produce a convincing result.
Thomas and Johnston also developed the principle of the "moving hold". A character not in movement can be rendered absolutely still; this is often done, particularly to draw attention to the main action. According to Thomas and Johnston, however, this gave a dull and lifeless result, and should be avoided. Even characters sitting still can display some sort of movement, such as the torso moving in and out with breathing.
6. Slow in and slow out
The movement of the human body, and most other objects, needs time to accelerate and slow down. For this reason, an animation looks more realistic if it has more frames near the beginning and end of a movement, and fewer in the middle. This principle goes for characters moving between two extreme poses, such as sitting down and standing up, but also for inanimate, moving objects, like the bouncing ball in the above illustration.
7. Arcs
Most human and animal actions occur along an arched trajectory, and animation should reproduce these movements for greater realism. This can apply to a limb moving by rotating a joint, or a thrown object moving along a parabolic trajectory. The exception is mechanical movement, which typically moves in straight lines.
8. Secondary action
Adding secondary actions to the main action gives a scene more life, and can help to support the main action. A person walking can simultaneously swing his arms or keep them in his pockets, he can speak or whistle, or he can express emotions through facial expressions. The important thing about secondary actions is that they emphasise, rather than take attention away from the main action. If the latter is the case, those actions are better left out. In the case of facial expressions, during a dramatic movement these will often go unnoticed. In these cases it is better to include them at the beginning and the end of the movement, rather than during.
9. Timing
Timing in reality refers to two different concepts: physical timing and theatrical timing. It is essential both to the physical realism, as well as to the storytelling of the animation, that the timing is right. On a purely physical level, correct timing makes objects appear to abide to the laws of physics; for instance, an object's weight decides how it reacts to an impetus, like a push. Theatrical timing is of a less technical nature, and is developed mostly through experience. It can be pure comic timing, or it can be used to convey deep emotions. It can also be a device to communicate aspects of a character's personality. 
Anime figures are characterised by exaggerated facial features, in particular the large eyes.
10. Exaggeration
Exaggeration is an effect especially useful for animation, as perfect imitation of reality can look static and dull in cartoons. The level of exaggeration depends on whether one seeks realism or comedy. The classical definition of exaggeration, employed by Disney, was to remain true to reality, just presenting it in a wilder, more extreme form. Other forms of exaggeration can involve the supernatural or surreal, alterations in the physical features of a character, or elements in the storyline itself. It is important to employ a certain level of restraint when using exaggeration; if a scene contains several elements, there should be a balance in how those elements are exaggerated in relation to each other, to avoid confusing or overawing the viewer.
11. Solid drawing
The principle of solid — or good — drawing, really means that the same principles apply to an animator as to an academic artist. The drawer has to understand the basics of anatomy, composition, weight, balance, light and shadow etc. For the classical animator, this involved taking art classes and doing sketches from life. One thing in particular that Johnston and Thomas warned against was creating "twins": characters whose left and right sides mirrored each other, and looked lifeless. Modern-day computer animators in theory do not need to draw at all, yet their work can still benefit greatly from a basic understanding of these principles.
12. Appeal
Appeal in a cartoon character corresponds to what would be called charisma in an actor. A character who is appealing is not necessarily sympathetic — villains or monsters can also be appealing — the important thing is that the viewer feels the character is real and interesting. There are several tricks for making a character connect better with the audience, for likable characters a symmetrical or particularly baby-like face tends to be effective.
Posted by wan_one at 5:25 AM 0 comments

