text:
Collaborative Learning

Collaborative learning has taken on many forms. One form is Collaborative Networked Learning for the self-directed adult learner.

Dr. Charles Findley,Ph.D., began exploring and coined the term Collaborative Networked Learning (CNL) in the mid 1980's as part of the work on designing the classroom of the future for the knowledge worker.

Collaborative Networked Learning (CNL) is that learning which occurs via electronic dialogue between self-directed co-learners and learners and experts. Learners share a common purpose, depend upon each other and are accountable to each other for their success. CNL occurs in interactive groups in which participants actively communicate and negotiation meaning with one another.

Three important considerations motivate the focus on CNL in this resource.

=CNL is sound educational practice.=

Researchers and educators have contrasted collaborative activities with two other categories-- competitive and individualistic. Competitive activities, for example, include those in which only one person can win, or where learners compete for grades, rank, or status, rather than when all members focus on achieving mastery or competence. Individualistic activities, for example, include working in isolation with no interaction with others, or when a learner interacts only with a self-paced manual or CBI, rather than when all members share ideas with each other.

The overwhelming conclusion of research in the goals of learning environments is that collaborative,cooperative goal directed activities lead to higher achievement. Overall higher achievement translates into higher productivity.

=CNL is sound business practice.=

Much work in the information age enterprise involves collaborative, team oriented tasks. Learning workers share information with one another in order to accomplish common tasks in a small group. Professionals share information with each other, and learn something about each others' specialization in order to reach consensus on a common problem. Assembly line workers have increased productivity when workers learned from each other how their different individual parts of the task fit together to produce the whole. All of these different learning workers are engaging in activities which involve collaboration.

Life-long learning in the workplace is becoming a necessity rather than an ideal. The need for collaboration is great and will continue. By facilitating collaborative methods of learning, we could help workers acquire individually and collectively the rapidly, changing knowledge required in the high-tech workplace.

=Collaboration is a condition of learning in the information workplace.= While the worker in the industrial era factory learned how to manipulate objects and memorized actions, the worker in the modern organization learns how to think, learn and apply information to a task.
 * 1) Workers need to engage in activities that allow them to approach problems from different vantage points, testing out assumptions,and redefining meanings,i.e.creative thinking in order to develop new viewpoints.
 * 2) Workers need to engage in the social,collaborative exchange of ideas in order to pose hypothetical problems, general hypotheses, conduct experiments and reflect on outcomes.

Basically, workers are learning in groups to make meaning out of information. Not only do workers need to make meaning out of the information but in order to actually perform their jobs they need to be able to share that meaning with others.

This guide is to serve as a basic resource for individuals planning, implementing, and participating in Collaborative Networked Learning (CNL) communities as co-learners. The general guidelines provided here draw upon published research and from experience with successful applications of different CNL models.

=Collaboration in Groups: Intra-personal and Interpersonal Communication= Collaborative Learning, therefore, would occur in the context of a group with a mission or agreed-upon-purpose. The work involves the structuring and restructuring of conceptual knowledge. The final product is a message, an external artifact of the group knowledge at a particular point in time, which communicates the knowledge of the group. The message might take the form of a program, a report, a strategy document, a diagram, a drawing etc. Learning-work involves the cognitive processes of assimilation--intake of information from the environment, accommodation--restructuring to fit new into the old, present structure, and integration--directly fitting information into existing structure. And most importantly it involves the resolution of conflict between old and new structures,which can lead to innovation.

Two communication processes or type of dialogs are involved in collaborative learning: (1) Intra-personal communication--integration, and accommodation--involves processing within the individual. (2) Interpersonal communication involves assimilation-- the intake of information from the environment--and representation of one's knowledge structure in a form and medium that can be shared with another person. As one person shares ideas with another person, the process becomes an on-going loop from assimilation through representation of knowledge structures.

At any point the learner may represent his/her ideas in order to test out hypotheses to gain agreement or validation. When members of a mission oriented group create shared knowledge structure and produce an artifact such as a written report or a software program, for example, they engage in learning to created a product which is their collective knowledge.

=Collaboration--Across Time and Distance=

Channel Selection
Electronically networked group involves different communication channels than when working one to one. Selecting an appropriate channel for the each tasks may accomplish the objectives. Adler and Elmhost (2005) consider five important factors to help one decide when, where and how to communicate, such as the time required to receive feedback, amount of information conveyed, sender’s control over the message, control over receiver’s attention and effectiveness for detailed message. In order to determine when to meet face-to-face or when to send e-mail or perhaps when to send a simple instant text message, consult Table 1.1 page 13 in Adler and Rodman, Understanding Human Communication 9th edition for guidance.

Feedback Strategy: Feedback messages without nonverbal clues
As part of a face-to-face group individuals are constantly reading the nonverbal communication such as gestures, facial express, voice tone, and change in body position. In essence, the communicators are monitoring the interaction looking for feedback that says "how things are going." These feedback messages are both verbal and non-verbal. Communicators become accustomed to reading the nonverbal messages for level of understanding, agreement, or meaning that is shared among the participants in the interaction. In many collaborative networked environments, the non-verbal messages are reduced or non-existent. Participants develop special strategies for eliciting and sharing feedback in networked environments. For example, in an electronic network involving only text-based computer mediated communication (CMC) the feedback is more restricted than in other networks.

Process Facilitation—how are we doing as a group
While any participant may assume responsibility for eliciting feedback and confirming meaning from other participants, all members of the learning group share the responsibility for clarification and confirmation. Each individual participates actively to let others know their current level of understanding or acceptance. David and Roger Johnson (1994) offer some general advice for providing feedback which will help create a group context which supports group communication. Based on their research in collaborative group learning environments, they offer the following ground rules for providing effective feedback:

Effective feedback is as immediate as possible; rather than allowing misunderstandings to multiple and continue through a series of exchanges, members check for understanding regularly.

Effective feedback focuses on description and personal interpretations of messages rather than judgment or evaluation.

Effective feedback focuses on the particular message or behavior of the participant rather than imagined personality traits.

Effective feedback is personal such as I perceive... or I understand rather than impersonal such as The general perception is..... or The level of understanding is ......

Effective feedback provides only the amount of information that can be understood or is meaningful at the time, rather than a dissertation.

Effective feedback is specific and focused rather than general and abstract. It is meaningful within the present context of the group communication.

Feedback about group process is important.
One often neglected aspect of feedback is the collaborative process itself. The Johnsons suggest that members of a group who are attempting to engage in collaborative group work focus feedback on group process as well as the specific content of the group efforts. Elaine Kerr (1985,p.16) " Small task-oriented groups need to occasionally pause to talk about the process itself: participant rates, the tone of the conversation, conflicts, feelings about the process, impacts, observations and problems of using the system, equipment..." Creating a special time or electronic space for this type of feedback is vital to the on-going success of the collaboration.

If the team is to continue to collaborate and grow as a group, then it will need to focus on its own interaction as a group. Sharing observations about process in the group can help group members become aware of where the group is collectively and how individuals have contributed to that direction. Observation of this nature provides the feedback necessary for groups to improve their overall productivity and satisfaction.

Collaborative Group Productivity suggestions
Get to Know the members

Review the background introduction profiles Share fears, success and concerns about collaborative team work Group Memory

As part of the work process it is important to create a group memory or repository of content date.

Use the chat room with “record” selected to archive the decisions and discussion. Use the discussion forum conference to post and discuss ideas rather than sending individual attachment emails. Project Management Hints Create time tables for different phases.

Set expectations about individual and group deliverables.

Follow-up discussion and meetings with summarized agreements and 	reminders of timelines.

=References=
 * Adler, Ronald B. and J. M. Elmhorst. Communicating at Work: Principles and Practices for Business and the Professions, 8th ed. (New York, McGraw-Hill, 2005) Pp. 32-33.

 * Adler, Ronald B. and George Rodman. Understanding Human Communication. 9th ed. (New York, Oxford University Press, 2006) p. 13.

Learning Together and Alone: Cooperative, Competitive, and Individualistic learning(4th edition) Allyn & Bacon, Boston, 1994.
 * Bransford, John et al.1986. " Teaching Thinking and Problem Solving" American Psychologist. 41,10,pp.1078-1088.
 * Friedman, Thomas. 2005. The World is Flat: A brief History of the Twenty-first Century. New York, Farrar, Straus and Giroux
 * Findley, Charles A. 1989. Open Communication Systems Beyond the Classroom. Presentation at World Future Society, July 16-20, Washington, D.C.
 * ________________. 1989. Collaborative Learning-work. Presentation at the Pacific Telecommunications Council 1989 Conference, January 15-20, Honolulu, Hawaii.
 * _________________. 1988. Collaborative Networked Learning: On-line Facilitation and Software Support,  Digital Equipment Corporation. Burlington, MA.
 * _________________. 1987. Integrated Learning and Information Support Systems for the Information Age Worker. Presentation at World Future Society Conference, Cambridge, MA., November 1987.
 * Johnson, David W. and Roger T. Johnson

A Guide to Moderating On-line Conferences," IEEE Transactions on Professional Communications, Vol. PC 29, No 1, p.16.
 * Kerr,Elaine. 1985. "Electronic Leadership:
 * Levy, Frank and Richard J. Murnane. 2005. ‘’The New Division of Labor: How Computers Are Creating the Next Job Market’’ Princeton, New Jersey, Princeton University Press.

 * Peters. Thomas J. and Robert Waterman (1982). In Search of Excellence. New York: Harper and Row.
 * Peters, Thomas J. (2006). Re-Imagine!: Business Excellence in a Disruptive Age (Paperback).  New York: Dorling Kindersley Adult.

=Appendix=

This provides some more substance and documentation for  the  general listing of trends.

LONG RANGE
1) There will be a shortfall of approximately 50 million jobs by 2010. (Alan Porter, FUTURIST,Sept/Oct 1986)

2) The "job" is the cornerstone of our social structure. It  provides for  economic,  social,  and  psychological  needs.   Take it away and society   could   collapse--unless   we   plan   ahead.(Alan   Porter, FUTURIST,Sept/Oct 1986)

(3) Self-learning programs will be on the market in specific  domains so  that   they   can  generalize  from  experience,i.e.   learn  new information; therefore, individual will not have to learn content but how to  access  new knowledge (information) from the learning machine supporting the work.

MID RANGE
(1)The first jobs to be replaced will be the procedural since they are the easiest  to be automated,e.g.  robotics in manufacturing,assemble line work. (2) More  and  more  intelligent,  self-monitoring  and self-diagnosing programs  on  microprocessors  are  being included in products. (3) New  jobs  will  require  workers  who   can   make decisions, solve problem  and  think  independently  since the routine control, monitoring,  and  procedural  tasks  will  be  performed  by intelligent machines.

PRESENT
Industrial era has ended; we have moved into  a  post-industrial  era with a central focus on information and service.

GM uses programmable controllers in manufacturing; GM is making a substantial long-term investment in Automation. American corporations reduce manufacturing staff. IBM offers early retirement options beginning at age 45. Bundled solutions with SW/HW products.

QUESTIONS:

What trends  do  you  see  in  product  strategy,  job  descriptions, personnel policies etc. that reinforce or contradict this trend?

LONG RANGE
Csq. adapts to you, knows you, and  adapts,  intelligent  C  sq. becomes interactive partner in on-going dialog

(1)Knowledge processing schemes with parallel processing, associative memory, and inference/knowledge  processing rather than stored-program schemes of von-Neumann computer architectures

(2)Japanese  Fifth   Generation--smaller, more powerful, and more intelligent 1991 projections Report

1)Very High Performance Computer Systems--100gates/chip    2)Seven-Dimension VLSI 3) Biocomputers--modeling of Human brain, biochips, and new computer    architecture using human brain as model [e.g. study of connectionist      theory relevant at this level]     (Hideo Aiso, Chair Fifth Generation Computer Systems Project, speech "Research Topics in Japanese national Projects for Information Technology" presented October 10, 1986 at Digital Equipment Corp. Hudson, Mass.

(3)New Computing machines could not only be much faster and  cheaper, but  could   achieve   the   elusive  goals  of  recognizing  images, understanding speech,  and  exhibiting  more  intelligent   behavior. (Michael L.   Dertouzos,  The  Multiprocessor Revolution:  Harnessing Computers Together, TECHNOLOGY REVIEW, February/March 1986)

MID-RANGE
1)mini-computers, micro-computers, to lap-top, to knee-top all with the same power,.e.g.  more memory on a chip--more power and memory in smaller size (e.g.  follow product strategy from  floor  model  TV  to hand held "Watchman.")

2)all data-types(including but not limited to real time audio,video, text, graphics) will be processed and transmitted as part of the home and office infosphere.

3) "Whether you're talking about the office or  the  home,  I  don't think you'll be able to tell the difference between your telephone and your  computer  as  time  goes  on."  John  Roach,  Tandy  Corporation Chairman, PERSONAL COMPUTING, Sept.  1985

4)Computer Aid  Communication  (CAC)   becomes   common   place   in organizations.   (See  Chandler  Stevens,ELECTRONIC  ORGANIZATION  and EXPERT NETWORKS, report   5.41.011  from  Management  in  the  1990's project at MIT.)

PRESENT
(1)"A revolution is taking place within the  information  revolution. It  involves  harnessing  hundreds,  thousands,  or  even  millions of computers to work together on a single task.   The  technological  and economic  forces  spurring  this  revolution  arise form two important trends.  On the one hand is the dramatic improvement over the past two decades  in  very-large-scale-integrated  (VLSI)  circuits,  which now incorporate some hundred-thousand components on a silicon  chip.   The cost  of  computational  power  has  dropped  an average of 30 percent annually.  For less  than  $100  manufacturers  can  now  fabricate  a microprocessor--the  computational  core  of  a  computer  etched on a single chip-- capable of performing more than a  million  instructions per  second." (Michael L.  Dertouzos, The Multiprocessor Revolution: Harnessing  Computers  Together,  TECHNOLOGY  REVIEW,   February/March 1986,p45.)

(2)Local and  wide-area  networks  marketed. ('Power,status' based  on  withholding information breaks down.  (See discussion of information society.)

(3)Video-phone's on the market using voice over internet or cable

(4)Phone slave project at MIT

(5)In 1984, 40% of the Fortune 500 Industry and Service companies had local area  networks, projected to be 72% 1985. It is clear from the study that respondents have a good understanding of  word  processing equipment and personal computers. But there is a lot of confusion as to the linkage between these tools. (The Office Automation Challenge: American Business  Responds  prepared  by the OMNI GROUP, reported in COMPUTER WORLD April,1984) (6)Electronic mail (e.g. mail and gateways  to  the  world  from office or home terminal) and electronic conferencing (e.g.  Conferencing, public  and private bulletin boards and collaborative information creation)

QUESTIONS (1)F. S. engineers working with  networks  need  different type of problem-solving analysis, and independent thinking skills than their counterparts. (How was this  addressed  and  are  their  other indicators that education and training will change?)

(2)Did training change to adjust to the market in 1984? Also the level of  training  required  shifts  from the clerical worker to the system administrator did it?

LONG RANGE
(1)Using Toffler's framework, the Third Wave, based on information and electronic technology  with mature and become clearly dominate in the next 10 years. Another period of innovation  and  high  growth  will occur, lasting  about  25  years. A third  period  of  Third  Wave innovation will take off and last us until about 2045, at which point the economy will decline until the next wave of technology comes into dominance: the Cybernetic Wave. (H. Alan  Raymond.   Management  in the Third Wave.  THE FUTURIST.  Sept./Oct.  1986.  p.  15-17.  (2) The rate of change is increasing  and  continuous.   (See  Alvin  Toffler. 1980. THE THIRD WAVE. Bantan Books,New York.)

MID RANGE
(1)Individual's are  becoming  more  specialized  in  their  area  of endeavor. Problem-solving and  decision  making require integration from number of specialized.

(2)Multiple dissimilar databases can be searched without changing the structure of the representation within the individual databases. (See notes on Hudson seminar and I 3 work)

(3)" The increased  adoption  of  knowledge-distribution  technology, super-  imposed  on  the geometrically increasing knowledge base, will necessarily result in a knowledge  environment  that  is  dramatically more  munificent  (  or  burdening)  than  is that of today.  " George Huber. The Nature  and  Design  of  Post-industrial  Organizations. MANAGEMENT SCIENCE Vol 30, 8, Aug 1984, p.,931

(4)Corporations will invest in the workers and technologies that best extract and process information resources.

PRESENT
(1)The information age of the post-industrial era  has  replaced  the industrial  era. New  demands   for  information,  its  creation, management, use and distribution are needed.

(2)Providing access to  more  information  is  prevalent  vs.   right information to meet demand is waiting for solution.

(3)Work is underway to design Collaborative Working environment tools MCC conference in December 1986 Debbie Tatter's group at Xerox PARC GDSS ( Group Decision Support Systems) are being designed to     help facilitate the need for shared information within organizations. AS typical GDSS consists of a meeting room with a conference table. Each seating position has a small CRT terminal. Input at these terminals is by keyboard, touchscreen, mouse, or some combination of these devices.

The meeting's participants are able to create displays on their CRT's    and to select portions of their 'personal' display for forwarding to a public display screen. George Huber, Issues in the Design of Group Decision Support Systems, MIS QUARTERLY, September 1984 p.195.

(4)Life-cycle of information--the information explosion is continuing at an  every  expanding  rate. Product training is outdated before printed because of  the  faster  rate  and  number  of  new  products introduced into  the  marketplace. For example, training groups develop courses printed 1600 pages of material on products for new hire training. It was  outdated before delivered to the audience. (Reference key points from  Huber  and  Ackoff  about  organizations, information, and post-industrial society).

QUESTIONS (1)What database solutions are people developing to  handle information needs? What complaints are their about too much/or not enough information? (2)Is information  being  managed  as  a  Corp. resource? (3)Are the right people getting the information they need to perform their tasks?

Key trends in individual thoughts and Values
A premium was placed upon obedience and  loyalty  in  the  industrial organizational structure. Thinking and innovation only upset rigid, planned structures and  were  not  highly  valued. Tasks including management with  simplified down to their lowest level so that almost anyone do them. People, like  parts,  were  interchangeable  and standardized.

A new monetary premium is being placed on the individual, on thinking and on  innovation,  and  on  the  speed  and precision of execution. Decision making  and  responsibility  are  again  required   of   the individual who  may less easily pass the buck and must be financially responsible for  his  area  or  product,  as  the  corporate  pyramid flattens, i.e.   four  levels of management from the bottom to top is goal of many organizations today. [Look at  your  organization  and count the levels.] Decisions in a faster-paced economy cannot wait for endless committee meetings and analysis that  would  only  allow  the competition to  win. Fast decisions require a maximum of information and instant and precise analysis. This, in turn, requires better and more highly  educated personnel, who also must be innovative in using new technology. Individuals are becoming less easily interchanged and more intrinsic to the business. (H. Alan Raymond.  Management in the Third Wave.  THE FUTURIST.  Sept./Oct.  1986.  p.  15-17.

Marilyn Ferguson. 1980. THE AQUARIAN CONSPIRACY:PERSONAL AND  SOCIAL TRANSFORMATION IN THE 1980's.

Sherry Turkle. 1984. THE  SECOND  SELF:   COMPUTERS  AND  the  HUMAN SPIRIT.

Long Range Goals:Key Themes in Learning Environments
Holistic approach to person and process with less focus  on  product. Product will be more intelligent and will help you use it.

Needs analysis and problem definition tools such as decision  support for manager  and  instructional  design  will  become much, much more sophisticated than today  taking  into  consideration  all  variables effecting total solution for client.

Needs analysis becomes interactive and self monitoring rather than  a discrete part of dead end process.

Methods will not just be limited  to  text  based  but  will  include multiple sensory inputs with simulations.

More sophisticated matching of means with ends in terms of "training" solution.

New ways of testing/indicating knowing--suggest looking  at  paradigm such  as   (1)doesn't   know  (2)consciously  aware  of  knowing  (3) unconsciously conscious of  knowing,  DON'T  TEST  'HOW  TO'  CONTENT instead PERFORMANCE defined in broad since related to job, not trivial performance as in behavioral objectives.

===More learning on job with intelligent systems that are adaptable  and tolerable to individual===

Possibly less learning on the part of the individual and more learning from computer,  so  that  computer  monitors job tasks and strategies employed becomes more intelligent and thus becomes intelligent job aid for worker  who  just has to use the computer, e.g.  self-referential programs.

Need to consider not only the physical dimension, but the social  and task/ knowledge requirements of any learning situation.

Instructors can not possibly know everything about a particular  area thus the  "instructor"  is  not  a  disseminator of information but a facilitator, guide or coach for the learner, i.e.  equality of learner with the human or machine manager of learning environment.

Content has to change to help learner move beyond rote  memorization, stress process, learning how to learn, visualization, decision making, thinking and problem solving.

Social environment of designer of learning environments and experience has to change drastically because the social environment is reflected in the tools, e.g. top down, structured  programming  in  an  era  of object- oriented programming, parallel processing, and networks.

The user controls the learning process rather than the process  being controlled by an outside designer, teacher or system.

The learning environment knows about itself and the user within it
System is maintained by a "maintenance librarian" program.

Content (is process) is flexible and evolving, need processes in place to replace outdated information automatically, need ways to know what the learner doesn't need to be learning anymore.

There is a spectrum of solutions, for any learning  problem--need  to have way of analyzing situation and recommending solution.

title: Collaborative Learning


text:
Talk:Collaborative Learning

The section on CNL is one part of a larger history of collaborative learning before use of computer networking. I assume it will include a discussion of cooperative learning (perhaps the work of David and Roger Johnson) and include classroom learning as well as learning for the knowledge worker in the modern workplace whose job it is to collaboratively work with others to construct new knowledge.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Talk:Collaborative Learning


text:
User:Mathwizard1232~enwikibooks

I'm a new user of Wikibooks, I'm hoping to add to the programming sections a bit. I'm mostly active on wikipedia, see here.

title: User:Mathwizard1232~enwikibooks


text:
File:Haiku Logo.png

Official logo of the Haiku Project

title: File:Haiku Logo.png


text:
Guide to X11/Political History

Political History

 * This section needs checking for correctness and details.

There were 10 versions of X, corresponding to 10 versions of the protocol between clients and server. Then came the eleventh version, X11. This version sustained many additions and continues in use today.

Control of the X11 spec and reference implementation passed between several organizations: MIT X Consortium, X Consortium, Open Group, and X.org. The OS vendors (mostly Unix and VMS) would take the reference implementation, modify it, add an X server for their OS, and give the modified version a non-free license. These non-free versions deployed themselves on servers and workstations.

XFree86
As home computers with cheap Intel 386 processors (helped by Microsoft DOS and Windows) spread, so did cheap or free Unix implementations (Minix, Xenix, Linux, FreeBSD, NetBSD) for them. Thus Thomas Roell and Snitily Graphics Consulting Service created the X386 server and donated it to X11R5, that is X version 11 release 5 of the reference implementation. From there, XFree86 produced an X11 implementation with a free license, thus the "Free" in its name. Eventually, XFree86 added ports to Alpha, PowerPC, and SPARC. XFree86 spread to several free and commercial Unix variants including Mac OS X and Cygwin.

Window managers and widgets
Meanwhile, as X11 spread, several persons wrote software for it, including window managers. The reference implementation contained "twm", a simple window manager. Several persons wrote window managers either by modifying twm or starting from nothing. Many of these window managers, such as fvwm, afterstep, and windowmaker, had free licenses. These were distributed and maintained separately from X11 or XFree86. Some Linux distributions provided several of them.

The reference implementation also contained the Xt (X toolkit) framework and the Xaw (Athena) widgets using this toolkit. The primitive, black-and-white buttons, scroll bars, and menus used by Xaw dissatisfied Macintosh and Windows users. So some persons made variations like Xaw3d and distributed them as patches to X11. Others rejected Xt and made their own widgets, creating toolkits like FOX, FLTK, GTK+, and Qt. OpenOffice.org still uses its own widgets.

Motif and CDE
The OS vendors at the Open Group combined efforts and created the Motif window manager and widget toolkit. From there, the vendors made a Common Desktop Environment. Though Motif and CDE appeared in several commercial OS distributions, they had a non-free license, so many Linux and *BSD users avoided it. As Linux and XFree86 advanced, Motif and CDE waned.

GNOME and KDE
The K Desktop Environment, based on the Qt widget toolkit, and the GNU Network Object Module Environment, based on the GTK+ widget toolkit, became freely licensed alternatives to Motif and CDE. The GNOME and KDE developers encouraged improvements to XFree86 and also cooperated through http://www.freedesktop.org. Eventually, XFree86 and freedesktop.org displaced x.org for development of X11.

Other toolkits and window managers also took notice of freedesktop.org and continue to compete against GNOME and KDE.

License crisis and forking
The Open Group ended free licensing for the X11 reference implementation. They later reintroduced the free license, but most X11 development had already moved to XFree86, which remained free for an extended period of time.

In February 2004, The XFree86 Project adopted with XFree86 4.4.0 a license change from an MIT License to XFree86 License 1.1 which contained a credit clause similar to the original BSD license, which the Free Software Foundation considered incompatible with GPLv2.

This license change caused a dispute amongst core XFree86 developers and incentivised most Linux distributors and OpenBSD to abandon XFree86 in favor of a fork. Eventually, the X.Org Server became the official reference implementation of X11. The first version of X.Org, X11R6.7.0, was forked from XFree86 version 4.4 RC2 to avoid the XFree86 license changes, with X11R6.6 changes merged in.

Most of the open-source Unix-like operating systems have adopted the X.Org Server in place of XFree86, and most of the XFree86 developers have moved to X.Org.

While there is fragmentation out of a multitude of desktop environments and window managers, X servers and clients from different developer and user communities work well together. Development within X.Org is steady, and use of X.Org between desktop distributions remains firmly in place.

The fragmentation between desktop and windowing environments is not necessarily a bad thing, as this allows users more choice and adaptation to different usage scenarios with varying requirements.

In some use cases, X has been supplanted by Wayland, which is used in Sailfish and Tizen mobile operating systems and in the Hawaii desktop environment. Wayland also has preliminary support in GNOME, KWin (KDE), Enlightenment and Mate desktop environments, and the Fedora distro.

title: Guide to X11/Political History


text:
Guide to X11/Window Managers

Window Managers
A window manager is a program which draws the frames around windows and allows the user to move, resize, iconify, and otherwise manage windows. Unlike with some other window environments, one can find many window managers for X11.

 * /Features and Facilities of Window Managers/

Using X11 Without a Window Manager
One can also use X11 without a window manager. Typically, one writes a session script which starts an "xterm" at a "-geometry" location. Keyboard-oriented users may start a keyboard shortcut daemon like xbindkeys and manage windows through Xresources geometry hints or with tools like xdotool.

See the resources at http://github.com/patrickhaller/no-wm

0-9, a, b, c

 * /2wm/ An initial version of the stereo window manager written by Anselm Garbe.
 * /3dwm/ 3D Workspace Manager is a compositing window manager by Niklas Elmqvist and Robert Karlsson.
 * /4dwm/ The window manager that is normally used on Silicon Graphics workstations running IRIX
 * /9wm/ An emulation of the Plan 9 Window Manager
 * /aegis/ a scriptable window manager written in C++ (in development)
 * /aewm/ a minimal X window manager written in C
 * /aewm++/ Based on /aewm/, but rewritten in C++
 * /afterstep/ A /stacking/ window manager is a continuation of the BowMan window manager... based on /fvwm/
 * /ahwm/ a small stacking window manager by Alex Hioureanu
 * /alloywm/ A stacking window manager based on /aewm/
 * /alptwm/ A small fast window manager based on /dwm/
 * /amaterus/ A /GTK+/ based /stacking/ window manager
 * /amiwm/ An X11 window manager that tries to make your display look and feel like the Amiga Workbench
 * /anarchy/ A lightweight window manager written in scheme
 * /antico/ A fast and simple window manager based on Qt libraries
 * /antiwm/ A minimal full screen keyboard driven window manager
 * /asclassic/ A classic window manager based on /afterstep/
 * /awesome/ A highly configurable, next generation /dynamic/ window manager primarily targeted at power users, developers
 * /awm/ The Ardent Window Manager was an early window manager for the X Windowing System.
 * /azalea/ A /gnustep/ window manager based on openbox3
 * /badwm/ A window manager based on /evilwm/
 * /beryl/ A legacy Xgl compositing window manager, which was later merged with /compiz/
 * /blackbox/ a small fast and efficient stacking window manager with simple to use menus.
 * /bluetile/ a dynamic window manager
 * /blwm/ FreeBSD: "Portuguese derivative of qvwm, simplified to conserve resources"
 * /braintop/
 * /bspwm/ An alternative window manager which uses tree-like spacing and changes are triggered with bspc shell commands.
 * /calmwm/
 * /clementine/ FreeBSD: "Has title bars, iconizing, and styles (unstable)"
 * /clfswm/
 * /compiz/ Xgl accelerated amazing modular window manager, which matches Apple's Expose, uses a cube for the four desktops, and adds neat effects like window fading, transparent alt-tab window selection, and window warping when dragging at high velocity. After installing, look up shortcut keys.
 * /ctwm/ - Claude's Tab Window Manager is an extension to twm, that provides multiple desktop support and other facilities
 * /cwm/ Included in OpenBSD. Excellent code base, very minimal system requirements. OpenBSD: "cwm has several novel features, including the ability to search for windows. It features a very simple and attractive aesthetic."

d, e, f, g

 * /dtwm/ - the CDE window manager
 * /dwemo/
 * /dwm/ - dynamic window manager
 * /dxwm/ - a window manager used on DECwindows workstations
 * /e16/
 * /e17/
 * /echinus/
 * /eclipse/
 * /ecomorph/
 * /ede/ includes a window manager, FreeBSD: "Equinox Desktop Environment"
 * /efsane/
 * /enlightenment/ has expensive graphics, OpenBSD: "Enlightenment goes beyond this, not just Managing Windows, but providing a useful, good looking graphical shell from which to work."
 * /epiwm/ FreeBSD: "Another fast, small, configurable window manager"
 * /euclidwm/ a minimalistic tiling window manager
 * /evilpoison/
 * /evilwm/ a lightweight minimalistic window manager for the X windowing system
 * /expocity/ FreeBSD: "A metacity spin-off with Expose(tm)-like features"
 * /exwm/ a full-featured tiling X window manager for Emacs
 * /failsafewm/
 * /firebox/
 * /fluxbox/ — "Looks like blackbox and handles styles, colors, window placement and similar thing exactly like blackbox (100% theme/style compability)"    http://fluxbox.org/     (Package size: 681 KiB, plus its dependencies (OpenBSD 4.1))
 * /flwm/ A lightweight window manager that utilizes the FLTK toolkit.
 * /framer/
 * /fvwm/ the F Virtual Window Manager (meaning of F is uncertain), a twm derivative with nice appearance, virtual desktops, but obscure text configuration files
 * /fvwm2/ a newer version of fvwm, OpenBSD: "Fvwm... provides a virtual/multiple disjoint desktop, a 3D look for windows decorations, shaped/color icons.... A nice button-bar can be used to provide convenient access to frequently used functions or programs."
 * /fvwm95/ feels like Windows 95 (similar to AnotherLevel for fvwm2), OpenBSD: "It tries to emulate the good features of a well known product without bloating the regular fvwm code."
 * /fxwm/
 * /golem/ OpenBSD: "Design goals are that it be fast and lightweight, as well as very customizable in any way that will not prevent the first goal from being realized."
 * /gwm/ A Generic Window Manager with a builtin lisp interpreter (from Bull)
 * /gwml/

h, i, j, k, l, m, n, o

 * /HackedBox/ FreeBSD: "Hackedbox is a small and fast window manager based on Blackbox"
 * /haze/
 * /heliwm/ A compact window manager with minimal memory consumption
 * /hpwm/ this window manager from Hewlett Packard offers a 3d look
 * /i3/
 * /icewm/ a small window manager that one configures by editing text files or using third-party tools, OpenBSD: "Optimized for "feel" and speed, not looks. Features multiple workspaces, opaque move/resize, task bar, window list, clock, mailbox, CPU, Network, APM status."
 * /integrity/
 * /interfacewm/
 * /ion/ OpenBSD: "Ion is a new kind of window manager that brings a text-editorish, keyboard friendly user interface to window management. Ion simply divides the screen into frames that take the whole screen."
 * /ion/2
 * /ion3/
 * jwm Linux: "Joe's window manager". http://joewing.net/programs/jwm/  Used in Puppy Linux.
 * /kahakai/ A window manager with scripting language support (based on /"waimea"/)
 * /karmen/ A simple lightweight window manager with no additional dependencies other than xlib
 * /kwin/ the window manager for KDE (formerly called kwm)
 * /larswm/ FreeBSD: "Tiling Window Manager for X"
 * /lucca/
 * /luminosity/
 * /lunchbox
 * /lwm/ FreeBSD: "A lightweight window manager"
 * /maewm/
 * /matchbox/ FreeBSD: "Window manager suitable for low-resolution screens"
 * /mavosxwm/ A minimal stacking window manager in early stages of development
 * /MaXX Interactive Desktop/; formerly "5dwm".
 * /metacity/ a common GNOME window manager
 * /miwm/ The Microscopic Window Manager written in C++
 * /mlvwm/ FreeBSD: "Macintosh like window manager for X11"
 * /monkeywm/
 * /mosquito/
 * /mpwm/
 * /mswm/
 * /multicursorwm/
 * /musca/
 * /mutter/
 * /mvwm/
 * /mwm/ Motif Window Manager included with Motif or OpenMotif, also found with the commercial Common Desktop Environment (CDE)
 * /ncdwm/
 * /novawm/ FreeBSD: "A window manager for X, developed with speed, size, and style in mind"
 * /olvwm/ - OPEN LOOK virtual window manager adds virtual windows to olwm
 * /olwm/ - The OPEN LOOK window manager from Sun Microsystems for OpenWindows
 * /omegawm/
 * /openbox/ OpenBSD: "Openbox is a standards compliant, fast, light-weight, extensible window manager."
 * /orion/ FreeBSD: "An X11 window manager written in Scheme"
 * /oroborox/
 * /oroborus/ OpenBSD: "Oroborus is a really minimalistic X11 window manager. It provides good default key bindings, full keyboard controls (in addition to the mouse!), ..."
 * /oswm/

p, q, r, s, t

 * /parti/
 * /pawm/ FreeBSD: "The Puto Amo Window Manager"
 * /pekwm/ OpenBSD: "Pekwm is a fork of aewm++ which includes new features such as window grouping (a la fluxbox/pwm) a configurable keygrabber, Xinerama support, pixmap themeing and configurable buttons."
 * /perlwm/
 * /phluid/
 * /piewm/ OpenBSD: "This is piewm, a tvtwm with "pie" (i.e., round) menus."
 * /plwm/
 * /plpwm/
 * /pmwm/
 * pswm The postscript window manager from Sun Microsystems
 * /puppet/ A keyboard driven window manager with no window decorations. Written in Java
 * /pwm/ OpenBSD: "PWM is a lightweight window manager for X11 with emphasis on usability. It was the first window manager to implement "tabbed frames"."
 * /pwm2/
 * /pycawm/
 * /pywm/ PyWM is small, fast and extensible with Python. It's based on /flwm/. http://www.freenet.org.nz/python/pywm/
 * /qlwm/
 * /qtile/
 * /qlwm/ OpenBSD: "A window manager that takes advantage of qt to stay small and maintainable."
 * /quarkwm/
 * /qvwm/ OpenBSD: "Qvwm is a Windows 95/98/NT like window manager..."
 * /ratpoison/ similar to GNU screen, a tiling window manager which dislikes the mouse (see Wikibook Using Ratpoison)
 * /rox/
 * /rtl/ A tiling window manager used by Siemens
 * /sapphire/ FreeBSD: "Small window manager"
 * /sawfish/ an efficient and configurable window manager that was formerly default for GNOME, OpenBSD: "Sawfish is an extensible window manager which uses a Lisp-based scripting language."
 * /scrotwm/
 * /scwm/ The scheme constraints window manager
 * sigmawm The sigma window manager
 * /sithwm/ A minimalist window manager based on /evilwm/ with menus and multiple desktops
 * /skatoswm/
 * /smallwm/ FreeBSD: "Window manager for low-memory systems, with title bars and shading" http://www.small-window-manager.de/
 * /spookwm/
 * /stumpwm/ is intended as the successor of ratpoison. Written in Common Lisp, and designed from the ground up to be customizable.
 * /subtle/ is a another tiling window manager with a very flexible and dynamical layout, support for window tagging, mouse and keyboard control as well as an extendable statusbar. http://subforge.org/projects/subtle
 * /sugar/
 * /swm/ Solbourne Window Manager
 * /talwm/
 * /tecwm/
 * /tinywm/ FreeBSD: "Ridiculously tiny window manager"
 * /toyd/
 * /treewm/ OpenBSD: "From the README:... In addition to the client windows the user can create desktops which can themselves contain windows and desktops."
 * /tritium/
 * /trswm/
 * /tsubasa/
 * /tvtwm/ OpenBSD: "tvtwm is a version of twm which incorporates virtual desktops, similar to vtwm and swm."
 * /twindy/
 * /twm/ the Tab Window Manager included with X11

u, v, w, x, y, z

 * /UDE/ a window manager with a unique design (get used to it), developed by the "Unix Desktop Enviroment" project http://udeproject.sourceforge.net/
 * /ultimate/ window manager
 * universalwm An outdated window manager that it is still popular because of its speed
 * /unwimp/
 * /uwm/ Ultrix Window Manager
 * /vtwm/ FreeBSD: "Twm with a virtual desktop and optional Motif-like features"
 * /vuewm/
 * /w9wm/ FreeBSD: "A hack of 9wm to give virtual screens"
 * /waimea/ OpenBSD: "It uses Blackbox image rendering engine (Blackbox styles support) and can use Xft library for font rendering (anti-aliased font support)."
 * /weewm/ FreeBSD: "Fast and ultra light window manager with total keyboard control"
 * /whim/ A multiple desktop window manager written in tcl
 * /whimsy/
 * /wimpwm/
 * /windowlab/ FreeBSD: "A small window manager for X11"
 * /windowmaker/ a NextStep-like window manager that works well with GNUstep and has configurable themes
 * /wm/ a simple titlebar window manager
 * /wm2/ a very minimal, small, fast window manager
 * /wmaker/
 * /wmfs/ a tiling window manager
 * /wmg/ FreeBSD: "Small GTK-based GNOME-compliant window manager"
 * /wmi/ OpenBSD: "WMI... attempts to combine the best features of LarsWM, Ion, evilwm and ratpoison into one window manager.... WMI is the vim among the window managers..."
 * /wmii/ FreeBSD: "The next generation of WMI window manager"
 * /wmx/ OpenBSD: "It is based on wm2... but in place of wm2's minimal functionality, it offers many of the features of more conventional managers in the most simplistic implementations imaginable."
 * /wwm/ Weird Window Manager
 * /xcompmgr/
 * /xd640/ a stacking window manager
 * /xdswm/
 * /xfce-wm/ part of desktop environment called XFCE (Cholesterol-Free Desktop Environment which also has a toolbar and file manager, and uses less system resources than GNOME or KDE), FreeBSD: "XFce 4 window manager"
 * /xige/ xilicius desktop environment
 * /xfwm/ a compositing window manager
 * /xmonad/ is a tiling window manager for X. Windows are arranged automatically to tile the screen without gaps or overlap, maximising screen use.http://xmonad.org
 * /xpwm/
 * /xswm/
 * /xwem/
 * /xwm/
 * /yawm/ FreeBSD: "Has title bars, iconizing, maximizing, taskbar, placement, clock"
 * /yeahwm/ A stacking window manager
 * /zwm/ Written in C++, and available under the GNU General Public Licence

title: Guide to X11/Window Managers


text:
Guide to X11/Building

Building
X11, from the reference implementation to Xorg 6.9, uses its own "imake" build system. The clients, server, and libraries are in one build tree. (It is very difficult to build only one part of the tree; the entire tree must be built.) Some things, like Mesa and Freetype, are hacked to optionally be part of the tree.

Xorg 7.0 replaces this with a set of modules based around GNU autoconf build system. This creates a complex system of packages and dependencies. Problems with implementing two systems for the simultaneous Xorg 6.9rc1 and Xorg 7.0rc1 delayed release candidate 1.

Imake system
In order to build Xorg with imake, you first need to download and extract the source tarball. The tarball for Xorg 6.9rc1 was called xorg-x11-6.8.99.901.tar.bz2 and is available from here. Now that the final versions of Xorg 6.9 and 7.0 are available, you can find them using the list of mirrors here.

A rough outline of the build system:
 * 1) Create a "host.def" file (which is optional).
 * 2) Do "make World" to configure and build the tree.
 * 3) Do "make install" and "make install.man" to install everything.

You can use the "host.def" file to customize your build. If you do not create one, then you use the default settings, which should already be tuned to your operating system.

The file xc/BUILD describes the build in more detail.

Yes, you must build the entire tree to build one part. The exception is that sometimes you can do a server-only or server-less build. See our section on and xc/config/cf/xorgsite.def.

Example build
In the following example, root has given us the write access to /usr/local/src. We downloaded Xorg 6.9 release candidate 1 (/usr/local/src/xorg-x11-6.8.99.901.tar.bz2).

We already have Xorg 6.8.2 installed. We are running it during the build, so we have multiple xterms to type shell commands in.

Using an "xterm", extract the source to /usr/local/src, creating /usr/local/src/xc: $ cd /usr/local/src $ bzcat xorg-x11-6.8.99.901.tar.bz2 | pax -rv

As xc/BUILD explains, we can use lndir to create a shadow tree of symbolic links to the source. (This prevents objects from appearing in the source tree.) Because "lndir" is part of X, and we have Xorg 6.8.2 already, we can run "lndir": $ mkdir xcbuild $ cd xcbuild $ lndir ../xc

Note that the current directory is <tt>/usr/local/src/xcbuild</tt> now. We will skip creating the <tt>config/cf/host.def</tt> and use the default configuration. It is now time to call the Makefile. We must run <tt>make World</tt> because there is no other correct way to configure and start the build. If we run Bourne shell: $ make World > World.log 2>&1

The "xterm" running "make" is now busy. To watch the log, we run "tail" in a second xterm: $ cd /usr/local/src/xcbuild $ tail -f World.log

Eventually, the log announces that the build of Xorg is complete.

We install (to the default <tt>/usr/X11R6</tt>, thus overwriting most of Xorg 6.8.2): $ sudo make install $ sudo make install.man

Note:
 * 1) If we do not have "sudo" working on our system, then we would use "su".
 * 2) One can exit from X11 before doing the install. The other option is to overwrite most of X11 while it is running. This can work, but is slightly less safe.

If necessary, exit from X and run <tt>xorgcfg</tt> to make a config file.

Building a static server
One can hack the tree to build only a static X server. This is useful if you need better hardware support from an X server in the newer version of a tree. Also, this skips over building the libraries, clients, and separate server modules. (X11 protocol is very stable, so newer servers work with older libraries and clients.)

OpenBSD provides an example <tt>host.def</tt> for that. Their example <tt>host.def</tt> is the basis of the next scenario. If you have some reason to static-build an X server, you would do something similar to the next scenario.

''Scenario: We have installed Xorg 6.8.2. We need the better "ati" driver in Xorg 6.9rc0 (release candidate 0), but we need to skip most of the 6.9rc0 tree to avoid errors.''

Solution: We will static-build a 6.9rc0 server.

Create this file at <tt>config/cf/host.def</tt> in the tree. If you have a shadow tree, put it in the shadow tree. The file is: /* * you may also restrict the drivers that are built by editing and * uncommenting the line below */
 * 1) define InstallEmptyHostDef
 * 1) define BuildServersOnly       YES
 * 1) define XF86CardDrivers             wsfb ati
 * 1) define UsbMouseSupport                NO
 * 2) define DoLoadableServer               NO
 * 3) define XnestServer                    NO
 * 4) define XVirtualFramebufferServer      NO
 * 5) define XprtServer                     NO
 * 6) define BuildGlxExt                    NO
 * 7) define BuildGLXLibrary                NO
 * 8) define BuildGLULibrary                NO
 * 9) define BuildRenderLibrary             NO
 * 10) define BuildLBX                       NO
 * 11) define BuildType1                     NO
 * 12) define BuildFreeType                  NO
 * 13) define BuildXTrueType                 NO
 * 14) define BuildSpeedo                    NO
 * 15) define BuildFonts                     NO
 * 16) define BuildXFree86ConfigTools        NO

The "XF86CardDrivers" line is changed to specify only "wsfb" and "ati". Our driver is "ati". We have a second driver which avoids advanced hardware features, in case "ati" fails us. The "wsfb" driver on OpenBSD uses the kernel framebuffer instead of reconfiguring the hardware. At Linux, the framebuffer driver is "fbdev". On i386 hardware, "vga" and "vesa" might be good choices. Use one of the following lines:
 * 1) define XF86CardDrivers             wsfb ati
 * 2) define XF86CardDrivers             fbdev ati
 * 3) define XF86CardDrivers             vga ati
 * 4) define XF86CardDrivers             vesa ati

Now start the build: $ make World > World.log 2>&1

The build eventually stops with an error because some "XlibConf.h" is missing; our host.def is skipping that step. (This is a bug; Xorg 6.8.2 did not need an "XlibConf.h" file.) That file probably would have been generated by building libX11, which we skipped. For the server, we actually do not need it. Create an empty file at <tt>xc/lib/X11/XlibConf.h</tt>: $ touch lib/X11/XlibConf.h

Now resume the build: $ make Everything >> World.log 2>&1

Eventually the build finishes. The server appears at <tt>xc/programs/Xserver/Xorg</tt>. Because this file is statically linked, it is the only file to install. We install at <tt>/usr/X11R6/bin/Xorg69</tt> to complement our Xorg 6.8.2 installation at <tt>/usr/X11R6</tt>: $ cp -p programs/Xserver/Xorg /usr/X11R6/bin/Xorg69

Now we need to test the server. First, if we are running X now, exit from X to the console. Then make our new server setuid root so it can use video hardware: $ cd /usr/X11R6/bin $ chown root:wheel Xorg69 $ chmod a+xs Xorg69

Generate the new config file with Xorg69 -configure, then test it with xinit -- /usr/X11R6/bin/Xorg69. If it works, make Xorg69 the default server by changing the <tt>/usr/X11R6/bin/X</tt> symbolic link: $ cd /usr/X11R6/bin $ rm X $ ln -s Xorg69 X

We might want to chmod a-x /usr/X11R6/bin/Xorg to prevent anyone from using the old "Xorg" with the new config file that relies on a "Xorg69" driver.

title: Guide to X11/Building


text:
Ancient History/Greece/Sparta

Because of the large amounts of material available on Spartan society, this essay is simply designed as an overview. All of this information, and more, can be found in any text relating to ancient Greece.

Sparta was a Dorian civilization located in the Peloponnese. One thing that made Sparta different from other poleis is that it was a military state for most of its history.

Early Sparta
In the Dark Ages (the era after the fall of Mycenae) Dorians built Sparta as a military encampment, and it remained as such until the Spartans incorporated nearby settlements on the Laconian plain.

By the end of the Dark Ages, Sparta had become pre-eminent in Greece. Spartan lords endeavored to conquer more land, for their population was growing exceedingly large. Those whom the Spartans conquered were enslaved and called Helots, and they eventually revolted against the small Spartan army and Sparta herself was almost destroyed. In light of this, King Lycurgus established a military aristocracy.

Lycurgus
In the early 7th century BCE, Lycurgus rose to power. He was the great lawmaker of Sparta, having written its constitution and laying down the law that made Sparta such a military power. Under Lycurgus' laws, Sparta had political equality for all Spartan citizens. At the time Sparta controlled all of the Peloponnesos.

Managing Sparta
Managing Sparta was no small task. Thanks to its military might, there were massive amounts of conquered territory, which, though citizens managed it privately, remained the property of the state. Most subjects of those conquered lands were enslaved by the Spartan government and were known as helots. Though the helots were viewed as state property, individual Spartans – presumably those who managed the conquered land – took half the responsibility of the helots' protection, while the other half reverted to the state.

Because of the amount of conquered territory under Spartan rule, there were numerous helots. The helots identified themselves as one race, although they previously belonged to different city-states. This unified them and sowed seeds of discontent. Helots' unity made the risk of an uprising a very real possibility, which furthered Sparta's drive to remain a military state. As well as acting as a deterrent, Spartan military power would provide the means to quash any rebellion.

Not all natives of subjugated lands were reduced to the position of being helots. Some of the more important communities in conquered regions were given some level of independence in their own domestic affairs. These peoples were called perioikoi (which translates as "neighbors") and received somewhat better treatment than helots. In spite of their better treatment, however, these peoples were not happy to be under Spartan rule, even if they were less likely to rise up against Sparta.

Sparta's Militarism and Politics
From the ages of seven to 60, Spartan males were required to serve in the military. During that time, they lived in military barracks. After twenty-five years of service, it was common for them to spend their days in military training and evenings with other military companions. This military lifestyle made a home life next to impossible. The men weren't allowed to marry until the age of 20 (which some took wives by force), but were unable to have a household until the age of 30. Spartan women were treated unusually well, they had many rights and were not subjected to the common roll of women found in other civilizations, namely, stay at home and keep the children. Spartans citizens in general had a great deal of freedom.

Because Sparta's military state was so firmly established, it was sufficient to maintain a tradition of a military monarchy. Other poleis began with this form of leadership, but grew away from it as time passed. Sparta's kingship was hereditary, but also dual; that is to say, there were two kings from two different families. Sometimes these kings got on well and worked well together, but sometimes, of course, they did not.

The Spartan Constitution
Under Lycurgus' constitution, Spartan citizens did have some basic rights. The constitution also mapped out Sparta's political structure. There were always two kings, both military leaders. The kings worked with a council of aristocrats referred to as Gerousia. The Gerousia also handled political and judicial decisions. Another governing body was the homoioi ("equals"). The homoioi was comprised of Spartan citizens who had survived their required military service, received state land (conquered territories) with helots to work it, and continued to obey Spartan rules. This assembly met regularly and made final decisions on most of the important issues related to Spartan government. Also there were the 'ephorites', the spiritual leaders with a 'connection' to the Gods, which had the power to dispose of a King, or over-turn his will.

The Spartan Citizen
In Sparta, a citizen was a member of society who was automatically entitled to certain – albeit few – rights Citizens also shared a basic sense of community. That this sense was based on fear of helot uprisings or the desire to profit from them (or both) wasn't important. This communal equality, however, was a minimum. That all Spartans owned their land privately while others had been granted use of state land was irrelevant. It didn't matter that some were high-ranking nobleman and others were 'mere mortals' as all were Spartan citizens, so all enjoyed those same basic rights.

title: Ancient History/Greece/Sparta


text:
Signals and Systems/Introduction

What is this book for?
The purpose of this book is to begin down the long and winding road of Electrical Engineering. Previous books on electric circuits have laid a general groundwork, but again: that is not what electrical engineers usually do with their time. Very complicated integrated circuits exist for most applications that can be picked up at a local circuit shop or hobby shop for pennies, and there is no sense creating new ones. As such, this book will most likely spend little or no time discussing actual circuit implementations of any of the structures discussed. Also, this book will not stumble through much of the complicated mathematics, instead opting to simply point out and tabulate the relevant results. What this book will do, however, is attempt to provide some insight into a field of study that is considered very foreign and arcane to most outside observers. This book will be a theoretical foundation that future books will build upon. This book will likely not discuss any specific implementations (no circuits, transceivers, filters, etc...), as these materials will be better handled in later books.

Who is this book for?
This book is designed to accompany a second year of study in electrical engineering at the college level. However, students who are not currently enrolled in an electrical engineering curriculum may also find some valuable and interesting information here. This book requires the reader to have a previous knowledge of differential calculus, and assumes familiarity with integral calculus as well. Barring previous knowledge, a concurrent course of study in integral calculus could accompany reading this book, with mixed results. Using Laplace Transforms, this book will avoid differential equations completely, and therefore no prior knowledge of that subject is needed.

Having a prior knowledge of other subjects such as physics (wave dynamics, energy, forces, fields) will provide a deeper insight into this subject, although it is not required. Also, having a mathematical background in probability, statistics, or random variables will provide a deeper insight into the mechanics of noise signals, but that also is not required.

What will this book cover?
This book is going to cover the theory of LTI systems and signals. This subject will form the fundamental basis for several other fields of study, including signal processing, Digital Signal Processing, Communication Systems, and Control Systems.

This book will provide the basic theory of LTI systems and mathematical modeling of signals. We will also introduce the notion of a stochastic, or random, process. Random processes, such as noise or interference, are so common in the studies of these systems that it's impossible to discuss the practical use of filter systems without first discussing noise processes.

Later sections will introduce some more advanced topics, such as digital signals and systems, and filters. This book will not discuss these topics at length, however, preferring to direct the reader to more comprehensive books on these subjects.

This book will attempt, so far as is possible, to provide not only the materials but also discussions about the importance and relevance of those materials. Because the information in this book plays a fundamental role in preparing the reader for advanced discussions in other books.

Where to go from here
Once a basic knowledge of signals and systems has been learned, the reader can then take one of several paths of study.

 * Readers interested in the use of electric signals for long-distance communications can read Communication Systems and Communication Networks. This path will culminate in a study of Data Coding Theory.

 * Readers more interested in the analysis and processing of signals would likely be more interested in reading about Signal Processing and Digital Signal Processing. These books will focus primarily on the "signals".

 * Readers who are more interested in the use of LTI systems to exercise control over systems will be more interested in Control Systems. This book will focus primarily on the "systems".

All three branches of study are going to share certain techniques and foundations, so many readers may find benefit in trying to follow the different paths simultaneously.

title: Signals and Systems/Introduction


text:
Talk:Statistics/Testing Data/Types of Tests

What does S stand for? Please define your variables!


text:
Italian/Grammar/Irregular Verbs

Irregular Verbs
Here are some highly irregular verbs, which are the most useful, like auxiliaries.

dire – to say
Italienisch/ Unregelmäßige Verben Italiano/Gramática/Verbos irregulares

title: Italian/Grammar/Irregular Verbs


text:
Talk:Italian/Grammar/Irregular Verbs

Untitled
There's no need to duplicate Wiktionary entries here. There's no need to have entire conjugation tables. Make use of Wiktionary. Being the lexical companion to Wikibooks is one of the things that it is for. Concentrate upon writing an instructional text about Italian irregular verbs, rather than a dictionary. The dictionary is already there for readers to reference. Uncle G 12:05, 3 November 2005 (UTC)

Well, it's a work in progress. I want to explain some rules/ patterns that give more insight in the conjugations. Give me some time, thanks/

title: Talk:Italian/Grammar/Irregular Verbs


text:
Rhetoric and Composition/Homonyms

Homonyms can be tricky to figure out! The following examples of common homonym mistakes prove that spell-check can only go so far in helping to error proof your document.

Remember that two words that sound the same don't always have the same meaning. If you are ever in doubt which one to use, check your dictionary.

Affect, Effect

 * Affect is most commonly a verb, usually meaning 'influence'. (An easy way to remember this is that 'affect' starts with an "a", as does 'action'.) As a noun, it is a psychological term for emotion.
 * Effect is most common as a noun meaning 'result'. 'Effect' used as a verb means 'bring about' some kind of change.
 * Example: The game affected the standings. Its effect was overwhelming. It effected a change in the affect of the winning team's captain.

Afterward, Afterwards, Afterword

 * Afterward and afterwards are synonymous adverbs meaning that an event occurs later than another.
 * An afterword is an epilogue.

Aid, Aide

 * Aid is a noun meaning 'assistance' or a verb meaning 'assist'.
 * An aide is a person who serves or offers assistance.
 * Example: "The aide will aid the victim."

It's, Its

 * It's is a contraction, short for either It is or It has.
 * Its is the possessive form of it. This usually means that the following noun phrase belongs to 'it'. It is important to recognise that 'its' the possessive form does not have an apostrophe - it is in the same category as 'his'.
 * Example: "It's (It is) my dog." "The computer crashed a few minutes ago, and it's (it has) done it again!" "What is its name?"

Lay, Lie

 * Lay is the action word.
 * Lie is the state of being or a telling someone something untruthful on purpose.
 * Example: "I will lay the book on the desk."
 * Example: "I plan to lay in bed most of Saturday."
 * Example: "Jim will probably lie to get out of being punished for breaking the window."

To, Too, Two

 * Figuring out which of these three forms have stumped more than one person! You can find a quick way to tell them apart below:
 * To is generally used to describe a relationship between things. It is also used as an infinitive verb, as in "I love to eat."
 * Example: "Matt is going to the doctor." "This gift is to you."  "It is ten minutes to seven."
 * Too is usually used when you are describing an excess or is used when noting something is in addition
 * Example: "I usually eat too much on Thanksgiving." or "Joe cleaned the house, washed the car, and mowed the lawn, too.
 * Two is the word you use for the number 2.
 * Example: "You have two minutes left before class starts."

Then, Than

 * Then indicates time.
 * Example: "First we went to dinner, and then we went to the show."
 * Than is comparative.
 * Example: "I would rather see the comedy than see the horror movie."

Versus, Verses

 * Versus indicates opposition.
 * Verses is the plural of verse, as related to poetry.

title: Rhetoric and Composition/Homonyms


text: User:Psy guy

title: User:Psy guy


text: User talk:Psy guy

title: User talk:Psy guy


text:
User:Ruben~enwikibooks

RUBEN H. VARDANYAN
Website: www.RubenVardanyan.com

EDUCATION
Diploma with excellence Computer Science and Applied Mathematics
 * 1994 - 2004	Pushkin School               Yerevan - Armenia
 * 2004 - ….	Yerevan State University   Yerevan - Armenia

LANGUAGES

 * Armenian
 * Russian
 * English
 * Spanish

WORK EXPERIENCE
Network Administrator Senior Developer
 * 2002 - 2004	Pushkin School Yerevan - Armenia
 * 2006 - ....      ISMO Tech       Yerevan - Armenia

Books

 * Coauthor of the book “Principles of C++” (in Armenian)
 * Author of the book “Programming in Macromedia Flash ActionScript” (in English)

Developments

 * Authorization System based on Message Digest Algorithm
 * Content Management System in PHP
 * Shopping Cart with ability to accept online payments
 * 3D Engine based on DirectX 9 (both in VC++ and VB)
 * 3D Model Maker based on DirectX 9
 * Software Activation System via Internet
 * Computer protection software (file & folder encryption, OS protection, key logging…)
 * Software for Microsoft® Windows® Mobile™ platform (Pocket PC and Smartphones)
 * New RAD (Rapid Application Development) programming language both for professionals and amateurs, built on Microsoft® Visual Basic™ technology.
 * “Lens Builder” program in Java for viewing the path of the beam through lenses
 * Software for administrators for controlling the PCs in the network. (especially designed for internet clubs and companies)
 * Full Search Engine system with functionality for searching and crawling pages either ASCII or Unicode and also with functionality to convert pages to UTF-8 format from ARMSCII (especially designed for searching pages in Armenian zone).

Programming Languages

 * C, C++, Visual C++, MASM, TASM
 * C#, Visual Basic, Java, .NET Framework, .Net Compact Framework
 * ASP, PHP, JavaScript, VBScript, JSP, HTML, DHTML, SQL, SVG, XML

Databases

 * MySQL
 * Microsoft SQL Server

Third Patry Libraries

 * DirectX (All versions)
 * Flash DLL – Macromedia Flash Plugin
 * VeriSign’s PayFlow Pro DLL – Payment Processing System
 * MySQL++ - MySQL interface for ANSI C++

Devices

 * Modem – ATDT Commands, communication, etc.
 * Bar Code Reader

Software

 * 3D Max Studio
 * Macromedia Flash (including ActionScript)
 * Microsoft Word, Access, Excel (have experience in programming for this software)
 * Macromedia Fireworks, Corel Draw, Adobe Photoshop

Protocols

 * SMTP
 * ESMTP
 * TCP
 * UDP
 * FTP
 * HTTP
 * SSL
 * POP3
 * DHCP

Security

 * Authorization Systems
 * MD5
 * Triple DES
 * DES
 * RC4

Operating Systems

 * Microsoft® Windows® 95 and later
 * Microsoft® Windows® Mobile™
 * Red Hat Linux
 * DOS

Servers

 * Microsoft IIS
 * Apache
 * Tomcat
 * DNS (A, CNAME, MX, … records)

INTERESTS

 * Computers, sport, books, games.

title: User:Ruben~enwikibooks


text:
Embedded Systems/Protected Mode and Real Mode

x86 Processor Modes
Real mode and protected mode are two operating modes of the Intel x86 processor. However, there are certain other modes as well.

 * V86 (Virtual 86 mode): This is the mode in which DOS applications run on Windows machine. This was done mainly to maintain compatibility with older DOS applications.

 * SMM (System Management Mode): This mode was introduced, as the name suggests, for managing the system transparently without applications or OS getting the hint of it. Its primarily meant to be used by the BIOS code.

 * Big Real Mode: Now this mode is more like Real mode, but in this we can access full 4Gb address space of the 32-bit processor.

However in this page, we will be focussing mainly on Real mode and Protected mode only.

Real Mode
This is the only mode which was supported by the 8086 (the very first processor of the x86 series). The 8086 had 20 address lines, so it was capable of addressing "2 raised to the power 20" i.e. 1 MB of memory.

Protected Mode
This is the mode used most commonly by modern 32-bit operating systems.

Entering Protected Mode
For instructions to enter protected mode, see: X86 Assembly/Protected Mode.


text:
Embedded Systems/Bootloaders and Bootsectors

To simplify many tasks, programmers for many systems will often employ a generic piece of software called a bootloader that will set some system settings (such as enabling protected mode), and then will be used to load the kernel, and then transfer control to the kernel for system operation. In embedded systems particularly, bootloaders are useful when doing work on the kernel: the kernel can be altered and tested, and the bootloader will automatically load each new version into memory.

To further simplify the process, the programmer can employ a tool called a bootmenu, which is essentially a bootloader that allows the user to select which kernel to load, from a list of possibilities. This is useful when multiple kernels are being compared, or when different versions of the same kernel are being debugged.

Bootloaders are used on many microcontrollers. A bootloader is often the fastest way to update a program in a microcontroller with small changes. That makes the edit-compile-download-test cycle a little bit faster.

The microcontroller can also have minimal hard-coded silicon dedicated to a simpler programming interface, which needs an expensive programmer socket. A vendor can then put a tiny program in Flash which reads the real program through the interface-du-jour, be it RS-232, I²C, wireless, or USB.

Bootloaders are traditionally written in pure assembly language, although it is possible to write a bootloader almost entirely in C. Many bootloaders accept pre-compiled executable machine code bytes, often the output of a C compiler. A few bootloaders accept Forth source code and compile it on-the-fly.


text: User talk:84.66.177.10

title: User talk:84.66.177.10


text:
Embedded Systems/Serial and Parallel IO

Data Transmission
Data can be sent either serially, one bit after another through a single wire, or in parallel, multiple bits at a time, through several parallel wires. Most famously, these different paradigms are visible in the form of the common PC ports "serial port" and "parallel port". Early parallel transmission schemes often were much faster than serial schemes (more wires = more data faster), but the added cost and complexity of hardware (more wires, more complicated transmitters and receivers). Serial data transmission is much more common in new communication protocols due to a reduction in the I/O pin count, hence a reduction in cost. Common serial protocols include SPI, and I2C. Surprisingly, serial transmission methods can transmit at much higher clock rates per bit transmitted, thus tending to outweigh the primary advantage of parallel transmission. Parallel transmission protocols are now mainly reserved for applications like a CPU bus or between IC devices that are physically very close to each other, usually measured in just a few centimeters. Serial protocols are used for longer distance communication systems, ranging from shared external devices like a digital camera to global networks or even interplanetary communication for space probes, however some recent CPU bus architectures are even using serial methodologies as well.

Ethernet
As on-chip memory increases, it is becoming more common to see Ethernet support in small system-on-chip embedded systems. New Ethernet ASIC products are also on the market. This allows an embedded system to have its own IP address on a network or on the internet. It can act as a server for its own webpage, to implement a GUI or general purpose I/O, and to display any relevant information such as sensor data, or even as a portal to remotely upgrade firmware. For example, many network routers have these features.

Centronics
Centronics is synonymous with the 1980's PC standard parallel printer interface.

For further reading

 * Robotics/Computer Control/The Interface/Networks

title: Embedded Systems/Serial and Parallel IO


text:
Blender 3D: Noob to Pro/Advanced Tutorials/Advanced Animation/Guided tour/Armature/edit

Now you've got your armature, but it's not much use until you add some more bones to it. Think about your body for a moment -- you've got this thing you call a 'skeleton', which for our purposes corresponds more or less to an armature object. Your skeleton consists of a number of bones (about 206, to be precise), but generally these are not independent from each other. If you move your femur (the bit of your leg between your pelvis and your knee) then conveniently the rest of your leg moves with it. In that example, the tibia/fibula would probably be counted as one bone, with the femur as their 'parent' bone. In this way, you build up a hierarchy of bones, making animation much simpler.

Editing an Armature Object gives you the chance to add, move or connect bones together. Whilst in edit mode, you will see all of the bones within the currently selected Armature.

When you create a new armature in Object mode a single bone will automatically be created for you, centered at the cursor position. Blender will then switch straight to Edit mode to allow you to add further bones. At this point we're just defining the default 'rest' position of the bones and specifying how they connect together -- you'll have to wait until the next chapter to find out how to create specific poses.

Now the basics about bones
Having created and selected an armature in Object mode, you can add and modify the bones in this armature by switching to Edit mode.
 * You can add a new bone at cursor position by pressing SPACEKEY in the 3DView --> Add --> Armature.
 * A bone has two ends: a root (the lower part) and a tip (the upper part). You can select and move the tip or the root independently with RMB, or you can select the entire bone by clicking on its body.
 * You can extrude a new bone from the selection using EKEY. This will create a bone connected to the original one, meaning the Root of the new bone will follow the Tip of the original one. You can also CTRL-LMB to extrude a new bone. It will extrude to where you clicked.
 * Alternatively, you can connect two existing bones by selecting them one after the other and pressing CTRL-PKEY. You can then choose either 'Connected' (the child bone - the one you selected first - will automatically be moved so that it touches the parent) or 'Keep offset'.
 * You can use SHIFT-DKEY to duplicate a bone
 * Using the WKEY menu, You can subdivide your bone or flip the name of the bone between Left-Right (See Naming convention below).
 * You can delete the bone with XKEY
 * You can select a chain of bones (connected together) using LKEY, when you hover your mouse over a bone.

The edit panel

 * Armature Bones Panel
 * OB: this field lets you rename your bone.
 * "Child of" Dropdown: lets you choose which bone will be the parent of this bone. If a parent is selected, there will be a small button labelled "con", meaning connected. Setting the parent defines the relationship between your bones. When one bone has another as its parent, it will do everything the parent does, such as rotate, move and scale. A dotted line between the parent and child will appear. If you select Connected, the Root of the Children will go stick to the tip of the parent, giving you a chain of bones like the 2 bones in your arm.[[Image:Ie_Parent_bones.jpg|none]]
 * Segm: If you set this value to something greater than 1, it will cut your bone into several little segments and deform them on a bezier curve - referred to as a 'B-Bone'. You need to create a chain of bones to really show off this feature though. In the example below, the image on the right has 1 segment, and the one on the left has 3 segments each (these are shown in Object mode to show the effect more clearly):[[Image:Ie_bbones.jpg|none]]
 * Dist: This is the area of influence of the bone. It can be visualised using the Envelope display mode. We generally don't touch this field as there is an easier and faster way to change this option. Turn Envelope on and select a bone. Then using ALT-S, you can scale the zone of influence. This has the advantage that you can do it on multiple bones simultaneously, and it works in both editmode and posemode:[[Image:Ie_envelope.jpg|none]]
 * Weight: This specifies how strongly this bone will influence the geometry around it, relative to the other bones. If two bones crossing each other, both with envelope influence, have the same weight (like 1:1) they will influence the surrounding geometry equally. But if you set one to 0.5, the geometry will be affected more significantly by the other one, with weight 1. For example, in this image, 2 bones using envelope influence try to move the same geometry. The 2 on the left have the same weight, you can see the geometry didn't move. On the right, one of the bones has 0.5 so the bone with weight 1 is winning the tug-of-war!:[[Image:Ie_Weight.jpg|none]]
 * Hinge: This tells the bone to remain motionless in a chain. It doesn't copy the rotation and scale of the parent. Useful for mechanical rig I would say, as you can animate the rotation of the hinge bone without having to correct it because the parent rotated: [[Image:Ie_hinge.jpg|none]]
 * Deform: This lets you say if you want the bone to deform the geometry at all. Switching it off is like setting the weight to 0, except it's faster this way. Useful when using a bone as a target or a controller, i.e. a bone you just want to use to control other bones, but not the geometry itself.
 * Mult: to deform geometry you can use vertex group and/or Envelope. The ability to mix both of these methods is handy for using one to tweak the other. For example, you might use envelope everywhere but tweak difficult places manually with vertex group. We'll discuss this in more detail later on.
 * Hide: This option lets you hide the bone. You can use it to hide the less important bones when you want to see what you're doing or for when you come to animate later on. For example, when you animate you don't need to see the entire chain of the leg, just the controllers. The values you select here apply to both Editmode and Posemode.

Naming convention
In many cases, rigs are symmetrical and can be mirrored in half. In these cases, it is helpful to use a left-right naming convention. This is not only useful for your own sake, but it gives Blender a hint that there is a pair of equivalent bones, and enables the use of some very cool tools that will save you some significant work.

 * It's helpful to name your bones with something useful telling you what it's there for, such as leg, arm, finger, back, foot, etc.
 * If you get a bone that has a copy on the other side, however, like the arm (you have 2 arms right?), then the convention is to call them arm.Left and arm.Right.
 * Other alternatives are also possible, like _L, _LEFT, _left, .L, and .Left. Anyway, when you rig try to keep this left-right thing as accurate as possible; it will pay off later on.
 * You can copy a bone named blah.L and flip it over using WKEY --> flip name. So the bone will be blah.L.001 after you copy it, and flipping the name will give you blah.R. Blender handily detects if the .001 version already exists, and increments the number for you.

This is an example of naming in a simple rig:

Mirror Editing
Now we come to the X-Axis Mirror Edit feature. This handy little number allows you to define only half of your character and tell Blender to automatically repeat the same actions on the other side. It's cool, it's simple and it saves a whole lot of time.

We will create a little guy out of sticks for the occasion -- don't worry about the geometry yet.

 * Create a new, empty scene. Since the mirror editing feature mirrors along the X Axis, make sure you've got the front view selected (NUMPAD_1KEY) so that the X Axis runs from left to right. Add a new armature to the scene (SPACE, Add|Armature). Enable 'Draw names' from the 'Display options' section of the Editbutton panel, so we can see what we're doing.
 * Now enable mirror editing by pressing F9 on the buttons window and clicking the X-Axis Mirror button in the Armature panel under Editing options. You'll also need to use the center of the armature (indicated by a purple dot) as the center of your rig, otherwise the symmetry will go wrong when we come to create the mirror image.
 * Name the first bone you have "Back". You can scale it to make the entire back of the guy.
 * Select the tip of this and extrude a new bone from it to do the Head. Name it Head.
 * Select the tip of Back again and do SHIFT-EKEY to tell Blender you're starting a mirrored chain of bones. Blender will automatically extrude another bone and will create an exact mirror of whatever you do. Take note that the name of both bones are Back_L and Back_R. Blender also tries to keep to the naming convention. Unfortunately, since we extruded from the Back bone, the names aren't quite right anymore.

 * To change the names: Start by editing one of the names as Arm. Add the suffix to it (_L or _R). Then hover your mouse over the name field and do CTRL-CKEY. You just copied the name of the bone! Select the other bone, hover you mouse over the name field and do CTRL-VKEY. This will paste the name as-is. But as there is already a bone with the same name, Blender will add .001 after it. No problem; just go into 3Dview and do WKEY --> Flip name. There you have it -- a working mirror again.
 * Mirror editing works using names. If you move a bone named blah_L and there is a bone named blah_R in the same armature, Blender will mirror the move you do to it, so make sure you follow name convention correctly.
 * Then we can continue: extrude an other bone to make the lower part of the arm using EKEY or CTRL-LMB. The new set of bones should be arm_L.001 arm_R.001.
 * Then we will add the legs. Up till now we have always worked from the tips of the bone. This is easy as Blender understands you want to create children of the selected bone, but to make the legs you need to extrude from the root of "Back". So go ahead, select the root of "Back" and do SHIFT-EKEY to start a pair of chains. Rename them to "leg"+suffix.
 * Now take note that doing so will not parent or connect the new bones to anything. We don't want it to be connected to the tip of "Back", it would look silly. But we want it to follow the body!
 * The way to go is to parent the two legs we just created to the "Back" bone. The old way (pre 2.40) was to select all bone and select the parent manually in the drop down. In the new version, editmode and posemode have an active bone. The active bone is the last bone you selected. In this case we can't work with more than 2 bones selected. Select the child (a leg) then select the parent (Back) and Do CTRL-PKEY. A menu will popup asking Connected or Keep offset. For now use Keep offset. Do this for the other leg as well.
 * it's also possible to remove parent easily. Select any bone you want to remove parent relation from and do ALT-PKEY. A menu will popup asking if you want to clear all or just to unconnect. Of course you don't need to select the parent and/or the child for this to work since any parent relationship will be cleared. So if you do that on a bone which is parent of 5 bones, then immediately all the children will be parentless.
 * Extrude one more time to get a leg with 2 bones.
 * Turn on the Stick display mode and enjoy your guy made of sticks!

 * Now you can go into Posemode and pose your guy as you want.
 * You can move the entire guy just by moving the "Back" bone, since this is how we built him. This bone is the highest in the bone hierarchy, "The daddy of all bones", you could say!

FASTER WAY TO NAME YOUR BONES 1) Create one side of the armature complete with correct bone names like the way this tutorial describes. 2) Copy the side of the armature you just created and paste it on the opposite side to form a complete armature. 3) On the side that you just duplicated, your names would have numbers added to them. Now select each bone on 3D View and hit "W"   then select "FLIP NAME". MAKE SURE YOUR PARENTING IS THE SAME AS THIS TUTORIAL DESCRIBES!


text: User talk:69.242.107.134

title: User talk:69.242.107.134


text:
User talk:138.16.20.249

Please stop adding nonsense to Wikibooks. It is considered vandalism. If you would like to experiment, use the sandbox. Thank you.

title: User talk:138.16.20.249


text:
Embedded Systems/Particular Microprocessors

This module of Embedded Systems is a very brief review of the most popular microprocessor families used in embedded systems. We will go into more detail in the next few modules. Each one of these microprocessor families has an entire module dedicated to that family of processors.

The microprocessor families we will discuss are:

 * 8051 Microcontroller 8 bit
 * Atmel AVR 8 bit
 * Atmel AVR32
 * Microchip PIC Microcontroller (this family includes the code-compatible Parallax SX chips) 8 bit
 * Microchip dsPIC microcontroller 16 bit: review: Circuit Cellar: "Are You Up for 16 Bits? A look at Microchip's Family of 16-Bit Microcontrollers by Jeff Bachiochi 2007; example application: µWatch D-I-Y open source scientific calculator watch
 * Freescale Microcontrollers
 * The Zilog Z8 Series (Z8, Z8encore, Z8XP)
 * Cypress PSoC Microcontroller
 * Texas Instruments MSP430 microcontrollers 16 bit
 * ARM Microprocessors (this family includes the Philips LPC210x ARM microcontrollers, the discontinued Intel StrongARM, Atmel AT91RM9200, and the Intel XScale microprocessors )
 * x86 microprocessors

brief selection guide
For many embedded systems, any of these microcontrollers would be more than adequate.

 * TI MSP430 has the lowest power consumption. In sleep mode, 0.3 µW = 3 V * 0.1 µA. Some chips in 2xx and 4xx series include 12-bit DACs.
 * The Cypress PSoC has more than one true analog output. Using sleep mode, power consumption as low as 21 µW = 5 V * 4.2 µA . (You can get analog output from the other chips by using an external ADC, or by faking it with a PWM output and some low-pass filtering.) Most Cypress PSoC microcontrollers come in both DIP and SMT versions.
 * Many of these series include microcontrollers with integrated 10 bit ADCs, but Atmel AVR 8 bit series (as of early 2006) had the lowest-price chip that included such an ADC, as well as another chip with the lowest cost/ADC. Most Atmel AVR 8 bit microcontrollers come in both DIP and SMT versions.
 * If you need a very tiny chip, the Atmel AVR, PIC, PSoC1, and Freescale microcontroller lines all include tiny 8-pin SOIC microprocessors.
 * If you want a 32 bit processor, some Philips ARM processors and Freescale Coldfire processors are now under $5 for one. (only comes in LQFP64 ?).
 * If you want a 32-bit processor, and you want it in a (relatively) easy-to-prototype DIP package, and you want it currently in production, your choices are extremely limited:
 * The 32-bit Parallax Propeller (Parallax Propeller)
 * The 32-bit LPC1114FN28/102 ARM processor
 * The 32-bit PIC32MX210F016B-I/SP MIPS processor
 * Many people and several commercial products run Linux on a XScale microprocessor or a Atmel AT91RM9200 (ARM core), without a heatsink or fan. Linux has also been ported to the Atmel AVR32 AP7 family (only comes in a 208-pin VQFP). Linux has also been ported to Freescale 68k/ColdFire processors. I don't think Linux has been ported to any of the other processors mentioned above.
 * If you often want to download and run new code on the processor, it makes things easier if the processor is a "Princeton architecture" that can execute instructions in RAM—a processor such as a MSP430 or ARM processor or PIC32 MIPS processor or the Parallax Propeller or Freescale RS08 or M·CORE. It is more difficult (but, as the Arduino demonstrates, not impossible) to download and run new code on a "Harvard architecture" that cannot execute instructions in RAM, such as most 8051 and Microchip PIC and Atmel AVR chips.

USB interface
(FIXME: very incomplete)

standard PC as host, microcontroller as device
There are a variety of ways to connect a microcontroller to a USB host.

 * Some microcontrollers (such as some 18x series PICmicro, 24x94 series (x = 7, 8, 9) PSoC and some Philips ARM microcontrollers and some Atmel ARM microcontrollers and the Freescale MC9S08JS16) that have a built-in "Full Speed" USB device interface.
 * practically all microcontrollers have a UART. You can add a USB adapter that interfaces between that UART and USB, such as some based on the CP2102 chip and some based on the FTDI chips. Most of these adapters are designed to have the microcontroller at the device end, and a PC on the host end. These adapters are full speed (12Mbps) USB devices, but don't expect them to be fast, most of them emulate a serial port with baud rates up to about 1 Mbps.
 * practically all microcontrollers can act as an I2C master. Some adapters based on the PDIUSBD11 chip and PDIUSBD12 chip from ST-NXP Wireless (formerly a division of Philips Semiconductors) connect to an I2C port or a GPIO port of the microcontroller, and act as a USB peripheral.
 * Many microcontrollers (such as the Atmel ATmega16) can be programmed to be a Low speed USB device with a few external passive components.
 * See Embedded Systems/Atmel AVR

microcontroller as host, connecting to some USB device
There are a variety of ways to connect a microcontroller to a USB device.

 * practically all microcontrollers have a UART, and some USB adapters  can be set up with a microcontroller as the host, and some USB device (a mouse, keyboard, or flash drive) on the device end.
 * "Interfacing a USB Flash Drive to a PIC Microcontroller" by Fred Dart 2008
 * a few microcontrollers (such as the Parallax Propeller) can be programmed to talk to a few USB peripherals with a few external passive components.

microcontroller as both a device (connected to a standard PC) and a host (connected to one or more USB devices)
How ? ... USB on-the-go (OTG) defines a single socket that automatically switches between host and device ... for example, a camera with a single USB socket that acts as a device when plugged into a PC (for uploading photos), but acts like a host when plugged into a printer (for printing photos directly without a PC) ...

 * The LUFA library allows the USB-enabled AVR microcontrollers to act as a USB Host, slave or OTG device.
 * Most Atmel 32-bit AVR UC3 microcontrollers support full-speed (12 Mbps) USB 2.0 with USB Host, slave, or On-The-Go (OTG) capability
 * The PIC24FJ32GB002 and the pin-compatible PIC24FJ64GB002—are they the only chips available that both (a) are available in DIP package and (b) have built-in USB OTG hardware?

other details on USB
For more details on USB, see the Serial Programming:USB Technical Manual.

Reviews contrasting different microprocessors

 * "How to choose a MCU platform?" has a nice review of many different processors.
 * Instructables: "How to choose a MicroController" by westfw
 * Ladyada: "PIC vs. AVR" "OK, I know what you people want. You want ultimate fighting, embedded E.E. style. You want to know WHICH IS BETTER, PIC OR AVR?"
 * Mike Harrison: "Which is better: PIC or AVR ?"
 * CNCzone: "Microchip vs Atmel"
 * PSoC Developer "PSoC VS PIC/AVR/ATMEL/8051" has a brief comparison review of a few Freescale, Microchip, and Cypress CPUs.


text:
Guide to First Year Teaching

Welcome to your first year as: The Teacher. Holding this title entails all sorts of possibilities, responsibilities, and challenges. Being a teacher in today's classroom requires more than knowing about a subject matter or about child psychology. Teachers must juggle a gazillion different things at once, including classroom interactions with all kinds of students and the tremendous amounts of paperwork that pile up on the desk.

This book presents a set of guidelines and advice for those who find themselves teaching their first year at the K-12 level. As a beginning teacher (or experienced teacher wanting to revisit some key concepts about teaching), you are encouraged to use this as a resource. The authors of this text have crafted the book into various modules. Feel free to pick and choose which modules you need and when.

We have divided the text into these core areas: What to expect, The First Days of School, The School Environment, Planning for Learning, Student Discipline, Legal Stuff You Need to Know and the Substitute Teacher. A final section, called Trouble Shooting, provides a way for the new teacher to post a short situation or question not addressed in the text and have authors respond accordingly. For more information about each section, please click on the appropriate link.

Chapters

 * 1) What to Expect
 * 2) The First Days of School
 * 3) The School Environment
 * 4) Planning for Learning
 * 5) Student Discipline
 * 6) Legal Stuff You Need to Know
 * 7) Substitute Teaching
 * 8) Trouble Shooting
 * 9) Authors' Page
 * 10) References (Using APA Style Format)

title: Guide to First Year Teaching


text:
Embedded Systems/Intel Microprocessors

When talking about Intel microprocessors, the first words that come to mind might be "Pentium" or "Celeron", or any of the other high-performance, expensive PC chips that are on the market today. However, Intel maintains a very impressive list of legacy parts that can be adapted for embedded systems. The beauty of using these microprocessors is that they are frequently very cheap, and they will all use the standard x86 assembly language, so that developers can program, assemble, and test from the comfort of a PC.

8086 and 80186
8086 and 80186 processors are available in heavily integrated packages. They are usually available in DIP form, and are relatively cheap (10$ or 15$ range). These processors might not be as good as an 8051 in an embedded environment, but the ease of programming, and the familiarity that many programmers will feel for these chips can more than make up for the cost.8086 is 16 bit microprocer.

i386 Embedded Processors
The i386 microprocessor is a modified form of the Intel 80386 microprocessor with a few notable differences: an integrated FPU (originally wasn't standard until th 80486), and a variety of different, small form-factors. One of the major benefits of an i386 microprocessor is that it can be programmed easily using most standard C compilers and x86 assembly language. In fact, many times no additional settings need to be changed in the compiler, except maybe to not link to the standard libraries on the host system.

i386 processors are 32 bit processors, and are frequently very economical choices when a 32bit processor is required. Also, i386 processors frequently have very low power consumption, and generate very little heat. Remember, Intel has been working on this architecture and the general design of this chip continuously for many years now.

X-Scale Embedded Processors
The X-Scale processor is an ARM based device, designed for embedded systems requiring high performance with low power consumption, such as PDA's.

Other Chips
Intel does sell embedded varieties of all its chips, from the 486 up to the Pentium 4. Keep in mind, however, that these chips have all the power of their PC cousins, but in a smaller package. Therefore, it can be expected that they will all be considerably more expensive then the desktop chips. Also, with some of the higher performance chips (pentium and up), since the size has been aggressively reduced, and because they have been highly integrated for embedded environments, heat can become an issue (meaning you will need to invest in fans and heat sinks as well).

title: Embedded Systems/Intel Microprocessors