Thursday, November 29, 2007

Android Platform

Android is an open source mobile phone platform based on the Linux operating system and developed by the Open Handset Alliance. The unveiling of the Android platform on 5 November, 2007 was announced with the founding of the Open Handset Alliance, a consortium of 34 hardware, software and telecoms companies devoted to advancing open standards for mobile devices. When released in 2008, the Android platform will be made available under the Apache v2 open-source license.


Features
Handset layouts
The platform is adaptable to both larger, VGA devices and more traditional smartphone layouts.

Connectivity
Android supports a wide variety of connectivity technologies including Bluetooth, EDGE, 3G, and WiFi.

Messaging
Both SMS and MMS are available forms of messaging including threaded text messaging.

Web browser
The web browser available in Android is based off of the open-source WebKit application framework.

Java virtual machine
Software written in Java can be compiled into Dalvik bytecodes and executed in the Dalvik virtual machine, which is a specialized VM implementation designed for mobile device use, although not technically a standard Java Virtual Machine.

Media support
Android will support advanced audio/video/still media formats such as MPEG-4, H.264, MP3, and AAC.

Additional hardware support
Android is fully capable of utilizing video/still cameras, touchscreens, GPS, compasses, accelerometers, and accelerated 3D graphics.

Posted by Zack at 9:41 AM

Sunday, November 25, 2007

Guide to Digital Media Interaction and Design Part 7

Interaction Style is the design strategies that cohesively organize a system’s functionality, managing user’s input and presenting information.


Types of Interaction Style

- Direct Manipulation
o Continues representation of the objects and actions of interest. Physical actions or presses of labeled buttons instead of complex syntax. Rapid incremental reversible operations whose effect on the object of interest is immediately visible.

§ Design Principles to consider
· Visibility: Make relevant parts visible.

· Affordance: Make what has to be done obvious.

· Constraints: Restricting the possible actions that can be performed and help user from selecting incorrect options.

· Feedback: Provide visual, auditory and tactile feedback compatible with the principle of direct manipulation.

§ Benefits
· Novice User Learn quickly.
· Expert User work rapidly.
§ Problems
· Spatial or visual representation can be too spread out.
· The visual representation may be misleading.


- Menu Selection, Form filling and Dialog Boxes

o Task-Related Organization
§ Single Menu: Binary Menus
§ Single Selection: Multiple Item Menus
§ Multiple Selection: Menus or Check Boxes
§ Pull Down / Pop Up Menus


- Command and Natural Languages
o Commands provide a way of expressing instructions to the computer directly.
§ Benefits
· A fast and powerful interaction style only suitable for experience user.

o Natural Language is a highly desirable mean of communication with a computer system.
§ Problems
· Need to cope with speech recognition problem such as vagueness, ambiguity and ungrammatical construction.
· Usage limited to well-defined domains with a limited vocabulary.


Consideration for choosing an interaction style
- Functionality of the system
- Usability of the system
- Cost of the system


Poor Feedback Message
- Ambiguous Message
- Useless Message
- Incorrect Message


Online User Support
Types of Online Support

- Online Manual
- Context-Sensitive Help
- System-Initiated Help
- Online Tutorial
- Animated Demonstration
- Guides
- FAQs
- Online Communities, newsgroup, email, chat and instant messaging

Posted by Zack at 7:08 PM

Guide to Digital Media Interaction and Design Part 6

Navigation Design

Types of Organization Structure
- Hierarchical: Derived from hierarchical organizational structure
- Ad hoc: Hyperlinks
- Database: Search engines

Effective navigation is a combination of good content organization and good visual organization
The main navigational system is hierarchical with a lot of hyperlinks added.

Posted by Zack at 7:07 PM

Guide to Digital Media Interaction and Design Part 5

Four principles of visual organization

- Proximity: All related items are placed in groups and each group has some physical distance between another groups. Easier for user to find what he/she is looking for.

- Alignment: Place related items along an imaginary line. Align items of equal importance and indent subordinate items.

- Consistency: Makes related items look the same. Consistency is one of the most powerful tools for making a website that is understandable and easy to navigate.

- Contrast: Make different items look differently. Contrast can draw attention to items and reinforce the content hierarchy by creating a visual hierarchy.

Content organization and visual organization go hand in hand an effective layout reinforces a site’s content organization and the result is easy navigation.

The results of visual organization are professional looking website that will inspire user’s confidence make it easier for your user to find what they want.

Posted by Zack at 7:06 PM

Guide to Operation System Part 5

Process
A Process is a binary program in execution.
A Process consists of:
- A binary Program
- Data on which the program will execute
- Resources required for execution ( e.g. files, devices which contains or provides the data)
Note: In classic process design, there is only one execution engine for each process. In another word, there is only one thread in a process. However, modern process can consist of multiple execution engines.

Thread
A Thread is a single execution engine capable of performing a series of instruction.
Note: In a multiple Threaded process, each thread needs to maintain its own set of data in order to perform its own series of instructions.
Thread specific data is private to the thread. This data is usually stored in a stack.

A Thread data consists of:
- Program counter
- Status of the thread
- Processor registers
- Stack space

Threads Within the same process shares the same:
- Program code
- Data
- Resources

Note: Sometimes threads are also called lightweight processes.
Process in UNIX

OS Kernel creates a process descriptor to manage process.
Process identifier (PID): User handles for process (descriptor)

Benefits of Multithreaded programming:
- Responsiveness
- Resources Sharing
- Economy
- Utilization of multiprocessor architectures

Process Descriptor
OS creates/manages process abstraction
Descriptor is data structure for each process
- Process ID
- Program counter
- Register values
- Process state
- Type and Location of resources it holds
- List of resources it need
- Security keys
Also known as Process Control Block (PCB)

Context Switching (Itself is a overhead but is a necessity to switch between processes)
When CPU switches between two processes/threads, it is called context switch.
A context switch can only occur when the OS gets control of the CPU through traps or interrupts.

Process States
- Running: Instructions are being executed
- Blocked: The process is waiting for some event to occur ( e.g. I/O completion)
- Ready: The process is waiting to be assigned to a processor
- Done: The process has finished execution

Posted by Zack at 5:29 PM

Wednesday, November 21, 2007

Mini Square Rotational Physics






After hours of thinking and trying, I have finally figured out and created this mini square rotational physics! Partly i have to thank Gemira Auer for his help!

Posted by Zack at 6:15 PM

Sunday, November 18, 2007

Guide to Digital Media Interaction and Design Part 4

Exact Organizational Scheme
- Alphabetical
- Chronological
- Geographical

Ambiguous Organizational Scheme
- Topical
- Task-Oriented
- Audience-Specific
- Metaphor-Driven

Hybrid Organizational Scheme
- Combination of any two and more.

Organizational Structure
- Hierarchy
- Hypertext
- Database

Search uses:
- Controlled Vocabulary (Predetermined set of terms that describe a specific domain)
- Thesaurus (Used in conjunction with a controlled vocabulary)

Research and Interview Techniques
- Card Sorting

Posted by Zack at 1:39 PM

Saturday, November 17, 2007

Guide to Digital Media Interaction and Design Part 3

Generic User Characterization

Learning Style
Do-then-read (an active user believes only wimps read manuals)
Read-then-do (what manual writers seem to assume)

Tool Preference
Different user has different preference of mode of inputting data

Physical Differences
- Age (use larger fonts for older people)
- Gender (consider your target group)
- Vision limitation, such as color blindness
- Etc

Cultural Differences
Education (reading level)
Profession (specialized vocabularies)
Corporate style (what are you trying to convey to whom)


Specific User Characterization

Knowledge of Job
Application Familiarity
- Novice (Faces a frightening unknown; timid, nervous, in no mood to explore your goodies)
- Advance Beginner (Less fear: knows basics; still impatient at having to learn how to do tasks)
- Competent Performance (Can diagnose simple problems and can perform a complex series of tasks)
- Expert (Small group. Can diagnose complex problems. Has a mental model of the application. Not typical users)

Primary User: The person who actively uses the system
Secondary User: The person being served by a primary user

Task Analysis
Technique for gathering task info
- Workflow analysis (how work gets done when several people are involved)
- Job analysis (what a single person does in a day, a week or a month?)
- Task List (Task is one of the components of a job)
- Task Sequence (the order in which the tasks take place)
- Task Hierarchies (main task -> subtasks)
- Procedural Analysis (most detailed. Show individual steps and decisions that a user goes through in carry out a task)

Technique for observing and listening to users
- Thinking Aloud
- Talk Right After
- Role Playing
- Cueing recall with videotape
- Focus Groups
- Mailed Surveys


Environmental analysis (Where do the user use the System)
- Location
- Indoor / outdoor (weather)
- Noise level

Usability Specification
- Performance Measure
- Preference Measure

Posted by Zack at 1:54 PM

Guide to Digital Media Interaction and Design Part 2

Five principles of Gestalt psychology

- Proximity
Group by distance or location

- Similarity
Group by type

- Symmetry
Group by meaning

- Continuity (alignment)
Group by flow of lines

- Closure
Perceive shapes that are not (Completely) there

Posted by Zack at 1:53 PM

Guide to Digital Media Interaction and Design Part 1

Goals of Human Computer Interaction (HCI)
- Safety
Safety of Users and Safety of Data

- Utility
What services a system provides

- Effectiveness
User’s ability to achieve goals e.g. finds desire information

- Efficiency
A measure of how quickly users can accomplish their goals

- Usability
Ease of learning and use

- Appeal
How well users like the system e.g. first impression and long term satisfaction


Usability Evaluation Criteria
- Time to learn
- Speed of performance
- Rate of errors by users
- Retention over time
- Subjective satisfaction


Stages of User-centered development
- Needs analysis
Summarizes the nature and purpose of the system

- User and task analysis
Characterizes the people who will use the site and what user will do

- Functional analysis
Functionality or computer services that user will need and what will be automated

- Requirement analysis
Describe the formal specification required to implement the system e.g. data dictionary, ER diagram

- Setting usability specifications
Performance measure and Preference measure

- Design Prototyping
Organization and Appearance
Low and High Fidelity

- Evaluation

Posted by Zack at 1:51 PM

Thursday, November 15, 2007

Guide to Operation System Part 4

Disk Optimizations
- First-Come-First-Serve (FCFS)
- Shortest Seek Time First (SSTF)
- SCAN / Circular SCAN (C-SCAN)
- LOOK / Circular LOOK (C-LOOK)



Size of the disk: 0 - 200
Request queue: 90 40 45 120
When disk head is at 50 previously at 20

FCFS: 50 90 40 45 120

SSTF: 50 45 40 90 120

SCAN: 50 90 120 200 45 40
C-SCAN: 50 90 120 200 0 40 45

LOOK: 50 90 120 45 40
C-LOOK: 50 90 120 40 45

Posted by Zack at 2:31 PM

Tuesday, November 13, 2007

Guide to Operation System Part 3

The Von Neumann Architecture
It has a fixed set of electronic parts which can be manipulated to perform various tasks determined by a variable program.

It consists of:
- A central processing unit ( CPU )
- A primary memory unit
- A collection of I/O devices
- Buses to interconnect the components


Central Processing Unit
- ALU: it is Responsible for performing arithmetic and logical operations

- Control Unit: it causes a sequence of instructions stored in memory to be retrieved and executed.

CU comprises
- Fetch Unit: Fetches an instruction from memory- Decode Unit: Decode an instruction
- Execute Unit: Signal ALU to execute instruction
- Instruction Register (IR): Contains a copy of current instruction
- Program Counter Register (PC): Contains the memory address of the next instruction the unit is to load

Note: It works on fetch-execute cycle

Primary Memory Unit (RAM)
it consists of 3 registers in order to interact with the CPU.

- Memory Address Register(MAR): stores address of data to be read from or written to
- Memory Data Register(MDR): stores data that is read or to be written
- Command Register(CMD): stores the command to be executed

Device Controller Interface
It includes the following as part of the interface:
- Data Register
- Command Registers
- Status flags with includes Done, Busy and Error Code

Two ways CPU initiate I/O
- Polling
Simplest way for CPU keeps polling the device to see the state of the I/O. If I/O not done then CPU executes a busy-wait command to wait for the I/O to end.
Note: this method will waste precious processor cycle

- Interrupt
A more complicated way is to have CPU implement an interrupt request flag. When I/O is done interrupt request flag is set to signal the end of I/O.
The Interrupt handler usually needs to perform a Context Switch to save the state of CPU at the time, so that it can be reused later.

Direct Memory Access (DMA)
Transfer data to and from primary memory address without CPU intervention.

It relieves CPU of data transfer operation. CPU can start a DMA block transfer and then perform other work in parallel with DMA operation. This significantly increase machine I/O performance and increase CPU throughout.

Posted by Zack at 11:26 PM

Monday, November 12, 2007

Guide to Operation System Part 2

Operating System Offered Services
- User Interface
GUI, Batch interface and command line interface

- Program execution
Able to load, run and terminate a program

- Input/output operations
CD/DVD drive and Display Device

- File-System manipulation
Create/read/Write/Delete files and directories
Permission management

- Communications
Local/Remote inter-process communication

- Error Detection
Able to detect error and take proper action to ensure consistent computing

- Resource allocation
Resources to be allocated among multiple users fairly
Different algorithms for different resources

- Accounting
Keep track of usage statistics e.g. CPU, Printer, HDD quota
Reconfigure system to improve computing services

- Protection and security
Security of system from outsiders
Ensure access to all system, resources is controlled
Audit trail of access

4 Major groups of basic functions of an OS
- Device Management
- Process, Thread and resource Management
- Memory Management
- File Management


Key OS Functional Requirements
- Provide resource abstraction
o Process abstraction of CPU/Memory
o Resource abstraction(anything a process can request can block, if is unavailable)
o File abstraction of secondary storage use

- Manage resource sharing
o Time/Space multiplexing
o Exclusive use of a resource (allows processes to use a resource exclusively)
o Isolation (allows a resource to save information without being modified or tampered)
o Managed sharing


Three basic mechanisms to achieve the functional requirements
- Processor modes
o Supervisor
§ It can execute all instructions including privileged instructions such as I/O instruction, memory related instructions and processor mode change instructions.
§ It can access all memory locations both System (aka. Kernel, used by OS) and User space(used by application processes)

o User
§ It can execute only non-privileged instructions.
§ It can only access User space


- Kernels
It is part of the OS and is critical to the correct operation (trusted software).
A trap instruction is used to switch from user to supervisor mode.

- Methods of calling system services
To execute a privileged instructions, a user program has to active routines in the kernel which then OS will execute them on user program’s behalf.
The two techniques:

o System Call
§ OS provides stub function which the user program can call and once called the stub function will switch processor to supervisor mode by trap instructions.
§ The user process gains ability to execute privileged instruction

o Message Passing
§ Os provides send() system call which user programs can call and waits for the result with receive() operation.
§ The System function is executed by the kernel process.(user process do not gain ability to execute privileged instruction)


Note: System calls are more efficient than message passing because message passing has cost of message formation or copying and process multiplexing and while system call just requires a trap command.

Posted by Zack at 4:06 PM

Sunday, November 04, 2007

Guide to Software Engineering Part 1

Definition of Software Engineering
It is a systematic approach to building (maintaining / operating) high quality software using a disciplined process.


Software Engineering Building Blocks




Tools: Programming Language, IDE (Eclipse), word processor, rational rose etc.

Methods: Skill set, OOP, OOAD, SDLC tasks like requirement, analysis, design and code.

Process Model: Defines a framework on how to go about doing things, such as Waterfall model and prototyping model.

Quality Focus: Activities that ensures there is quality in every step of software engineering process.


Definition of Software Process
It is a series of steps to produce a piece of quality software.

Software Process Framework



Software Process Models
Waterfall Model
A Systematic sequential approach to development

Disadvantage:
unrealistic as changes are inevitable
Working version available only at the end


RAD Model
High speed version of waterfall model and it is a component based approach. COTS and automatic code generator are heavily used during the development.

Disadvantage:
Require more human resource
Good modularization required Technical Risk


Prototyping Model
This approach is used when requirements are “fuzzy”. Where users are unclear of detailed business processes and developers require more understanding.

Disadvantage:
different perspective between user and developer
User – working version
Developer – quick and dirty prototype
Developer tends to cut corners and talking shortcuts to make something work.



Posted by Zack at 1:40 PM

Saturday, November 03, 2007

Guide to Operation System Part 1

Definition of Operation System (OS)
Definition: OS is a program that acts as an intermediary between user and computer hardware. It provides an environment in which user can run programs in a convenient and efficient manner but provides no useful function by itself (Note: OS is a pure overhead of real work).


Types of Software
Application Software: It is intended to solve a specific problem or provides generic tools to end users

System Software: It provides a general programming environment where programmers can create specific application.


OS seen as Resource Manager
-An OS creates resource abstraction
Resource abstraction is when OS hides the actual tasks needed to manage and use resources by providing simpler commands to access these resources. However this simplified usage limits flexibility.

-An OS manages resource sharing
There are two kinds of sharing, the first kind is Space-multiplex sharing and the second kind is Time-multiplex sharing.

Space-multiplex sharing is achieved by dividing a resource into two or more distinct units and allocates each to a different process.

Time-multiplex sharing is achieved by allocating an entire resource to a process for a period of time. E.g. CPU

Resource isolation is a technique which prevents unauthorized access of resources in a process by another process. E.g. RAM

Multiprogramming is a technique for sharing of CPU among runnable processes.However it does not improve any single process’s performance but can improve the overall system performance.

Multiprogramming Performance
Maximum(t1,t2…,tn) When overlap nicely
T > Maximum(t1,t2…,tn) When does not overlap nicely but with a number overlaps
T < t1+t2+…+tn When does not overlap nicely

Posted by Zack at 6:13 PM