text:
FOSS Open Standards/Standards and Internationalization/Localization of Software

Internationalization and Localization of Software
The internationalization of a product, such as software, is not the same as its localization although they may address many similar issues. Internationalization refers to the process whereby a product is made or adapted so that it can be used internationally (i.e., in different countries or regions all over the world with different cultures and conventions) without redesign. On the other hand, localization addresses how a product may be tailored for a specific country, region or culture by making it linguistically and culturally appropriate. Internationalization is often referred to using the abbreviation "I18N" or "i18n", where the number 18 refers to the number of letters omitted. Similarly, the abbreviation "L10N" or "l10n" is used for localization.

It is important that application software that is meant for deployment in many different countries with different cultures and languages be designed with internationalization in mind, to be able to accommodate possibly different ways of expressing an item of information or peculiarities of a different language. Some of the issues that internationalization needs to grapple with include:
 * 1) Date and time formats
 * 2) Currency format
 * 3) Language peculiarities (e.g., alphabets, numerals and left-to-right script vs. right-to-left)
 * 4) Language character coding sets for textual display
 * 5) Names and titles
 * 6) Sorting of names and text
 * 7) Identification numbers, e.g. social security and passport numbers
 * 8) Telephone numbers, addresses and international postal codes
 * 9) Weights and measures

While the cultural and linguistic demands may change from country to country, the core program dealing with the functionalities of a software product do not change and so it is common practice to separate text and other environment-dependent data from the program code itself. This makes it easier to support internationalization as changes only need to be made to the environment-dependent resources. Minimal code changes are required.

The better internationalized an application is, the easier it is to localize. This is because a wellinternationalized application will have built-in support to cater to items that are needed for localization. These may include:
 * 1) Language translation
 * 2) Hardware support for certain languages, e.g. input devices and methods
 * 3) Local customs
 * 4) Local content
 * 5) Aesthetics
 * 6) Cultural values and social context.

The major work of localization is in translating the user interface and documentation but it involves more than just translating the language used. It also needs to cater to other relevant changes such as the usage of appropriate cultural and social values, symbols peculiar to the language, display of numbers, 32 dates, currency, appropriate input methods, etc.

In software internationalization and localization, a set of parameters, termed a locale, is used to define the user's language, country and any special variant preferences that the user wants to see in the user interface. A locale identifier usually contains at least a language and a region/country identifier. Depending on the operating platform/system used, locale identifiers can be defined in several ways. Most systems utilize the two- and three-letter language codes defined by ISO 639-1 and 639-2, respectively, for the language identifier and the two-letter country codes from ISO 3166-1 for the country identifier. However, MS Windows uses a numeric Locale Identifier (LCID) that specifies the language and sort identifier.

Standards Important to I18N and L10N
In this section we shall look at some important standards which are used in i18n and l10n.

Unicode and ISO/IEC 10646
Proper rendering and display as well as practical input methods for multilingual text on a computer system are essential if efforts to make software available in multiple languages are to be successful. Standards are needed for character code tables and character encoding methods. Character code tables assign integer numbers to characters while character encoding is a method by which characters or their respective integer values can be represented as a sequence of bytes for use by the software.

The international standards ISO/IEC 10646 and the Unicode Standard (Unicode) describe and define the Universal Character Set (UCS), which is a superset of all other character set standards. It guarantees round-trip compatibility to other character sets. This means simply that no information is lost in the conversion of any text string to UCS and then back to its original encoding.

The Unicode Standard Version 4.0 and ISO/IEC 10646:2003 make use of the same character set tables and character encoding methods, but the Unicode Standard additionally provides details of character properties, processing algorithms, and definitions that are useful to implementers.

ISO/IEC 10646 and Unicode define several encoding forms, UCS Transformation format 8 (UTF-8), UCS-2, UTF-16, UCS-4 and UTF-32. In an encoding form, each character is represented as one or more encoding units and apart from UTF-8, all other encoding forms have an encoding unit larger than one octet (an 8- bit byte), making them hard to use in many current applications and protocols that assume 8- or even 7-bit characters. UTF-8 uses all bits of an octet for its encoding and it preserves the full US-ASCII range, the latter being encoded in one octet having the normal US-ASCII value. This is important and very useful since it is backwardly compatible with the large existing volume of software that predominantly uses US-ASCII encoding. UTF-8 encodes UCS characters as a varying number of octets, where the number of octets, and the value of each, depend on the integer value assigned to the character in the Unicode character code table.

Unicode has become the dominant encoding scheme in software internationalization and usage in multilingual environments. Many other standards such as XML have adopted Unicode as the underlying scheme to represent text. Modern operating environments like those under GNU/Linux, Mac OS X and MS Windows XP have support for Unicode.

ISO 639
The international standard, ISO 639-1, provides a two-letter code identifier (alpha-2) for the representation of names of languages while ISO 639-2 provides a three-letter identifier (alpha-3) for the languages. Locale language identifiers make use of the ISO 3166 country codes to identify the language to use.

ISO 639-1 was devised mainly for use in terminology. It provides identifiers for those languages that are responsible for a major proportion of the world's literature and which also possess specialized vocabulary and terminology.

ISO 639-2 tries to provide a representation to the world's languages, for use in bibliography as well as terminology, but it is not as restrictive in scope as ISO 639-1. It was devised to include languages that are most frequently represented in the total body of the world's literature, regardless of whether specialized terminologies exist in those languages or not. The three-letter code for ISO 639-2 means that it can accommodate more languages. So, while it limits coverage of individual languages to those for which at least modest bodies of literature have been developed, other languages are still accommodated by means of identifiers for collections of languages, such as language families.

Under ISO 639-2, some languages have different codes for bibliography and terminology (see Table 8).

ISO 3166-1
ISO 3166-1 provides two (alpha-2) and three-character (alpha-3) codes for representing names of countries. It thus provides a table of country codes just as ISO 639 provides a table of language codes. However, these two standards were developed independently, and there was no attempt to use the same code for a language as that for the country in which it is spoken, and codes from each list should be used independently. Locale country identifiers make use of the ISO 3166 codes to identify the country or region location.

The ISO 3166-1 alpha-2 code is probably best known in its usage for the country code top-level domain (ccTLD) of the Internet Domain Name Service (DNS) system. However, there are several ccTLDs in use which are not part of the ISO 3166-1 two-letter codes, e.g., "uk" for the United Kingdom (the corresponding ISO 3166-1 alpha-2 code is "gb").

RFC 3066
The IETF's RFC 3066 describes a language tag for use in cases where it is desired to indicate the language used in an information object, how to register values for use in this language tag, and a construct for matching such language tags. RFC 3066 specifies use of a two-character language code from ISO 639-1 when it exists and when a language does not have a two-character code assigned, the three-character code is used.

The RFC also specifies the use of optional subtags (e.g., a country code from ISO 3166) and how to register a dialect or variant information with the Internet Assigned Numbers Authority (IANA) when there is no available ISO 639 code.

As of September 2006, RFC 3066 has been obsoleted by the new / extended RFC 4646.

Internationalization and Localization Software Initiatives
In the past, the language supported in software was very much dependent on where the authors were from. So many common off the shelf (COTS) software were written mainly for the English language due to the dominance of countries like the USA in this area. In recent times, with the emergence of the Internet and globalization, this predominantly single language-centric support for popular software is changing. There is growing awareness among software developers and authors that many software can be and will be deployed worldwide and it is important to be able to adapt the software to the local environment. As a result, there is much better support for internationalization and localization on modern software platforms.

For commercial proprietary software, experience has shown that any localization effort has to be considered in the light of economical viability and/or other benefits that the effort may bring to the vendor. This means that, in many cases, versions of popular commercial proprietary software are not available for languages or cultures where commercial returns are not justified. Since FOSS can be freely modified and redistributed, at times all that is needed is some interested party to take the initiative to localize software that is released as FOSS. This has resulted in many popular FOSS being localized (e.g., the Mozilla.org family of products, GNOME, KDE, OpenOffice.org) and made available in many languages, including some rather obscure ones.

The Open Internationalization Initiative
The Open Internationalization (OpenI18N) Initiative is a key initiative under the Free Standards Group. This initiative has several active projects under it. One of them is the OpenI18N Specification which is concerned with the specification for interfaces and functionalities that must be supported by GNU/Linux-like operating systems to run internationalized application software, as well as recommendations for such operating systems to facilitate the development of internationalized application software. Other active projects include:
 * 1) Linux Internationalization Locale Name Guideline
 * 2) Common XML Locale Repository (now known as Common Locale Data Repository)
 * 3) Internet Intranet Input Method Framework
 * 4) OpenI18N Certification Test Suite
 * 5) Multilingualization library (m17n-lib)

All the standards, publications and documentation from the OpenI18N Initiative are freely available.

Some FOSS I18n and L10n Initiatives
Most of the FOSS I18N and/or L10N projects are community-driven. Almost all major FOSS have good support and tools for I18N and L10N. Local users of the software are encouraged to contribute to the L10N projects.

Mozilla Family
The Mozilla Localization Project (MLP) relies mainly on the FOSS community to make the products from the Mozilla Foundation available for different world cultures and languages. The project is focused towards software localization making use of the underlying internationalization support available in the products.

The software localization projects under MLP include:
 * 1) Mozilla (aka project Seamonkey) with over 100 languages registered
 * 2) Mozilla Firefox with over 30 languages registered
 * 3) Mozilla Thunderbird with over 50 languages registered

GNOME
The aim of the GNOME Translation Project is to translate GNOME applications and documentation to every language in existence. This community-based effort currently boasts of translation projects covering well over 100 languages.

K Desktop Environment
The popular K Desktop Environment (KDE) software also has wide support for its internationalization and localization initiatives. There are good guides and documentation available, and again community driven projects for localization are well supported and received. As a result KDE is currently available in over 100 languages.

OpenOffice.org
OOo has a framework and tools for both I18N and L10N. OOo is now available in over 70 languages covering all major languages and cultures of the world and also some minor ones.

Microsoft Software
The newer versions of software from Microsoft, e.g., Windows XP, MS Office 2003 have good internationalization support and are also available in many localized native versions.

MS Windows XP
Localized versions of MS Windows XP are available in 24 languages and the Multilingual User Interface (MUI) Pack offers more localized user interface languages. The MUI Pack is a set of language-specific resource files that can be added to the English version of MS Windows. Microsoft claims that the total number of languages supported in MS Windows XP is in excess of 140.

MS Office
Localized versions of MS Office 2003 are available in over 35 languages. In addition, the MS Office MUI offers support for other languages for which a localized version is not available.


text:
FOSS Open Standards/Patents in Standards

A patent is a set of exclusive rights given by a government to a patent applicant in which the patent holder is granted the right to prevent others from making, using, selling, offering to sell or importing the invention for a specific period of time. Patents are usually granted for inventions that are considered to be non-trivial, new and novel. Patent grants are territorial in nature in that patents applied for and granted in one country are not automatically recognized in another country. Examples of patents are:
 * 1) Wankel rotary engine
 * 2) Hume concrete pipes
 * 3) Design of the Coca-Cola bottle

Software Patents
Traditionally, patents are given mainly to physical inventions but in recent times many countries have begun to grant patents for non-physical items such as business methods and computer programs (software). Software has become patentable in countries like the USA and Japan. The issues on the patentability of software and the way patent offices process software patent applications are very controversial.,,,    In countries where software patents are recognized, patents may be granted to functional aspects of software that are considered to be innovative and non-obvious. The expressive elements of code are not patentable. Instead, they are covered by copyright to which almost all the countries in the world subscribe to. While many countries still do not recognize software patents, most are re-examining this issue and trying to decide whether they should change their positions. The inclusion of software patents in IT-related specifications and standards has attracted a great deal of discussion.

Policies on Patents
In the case of technical standards, it is not uncommon for patented items to be proposed to be included as part of the specifications. The standards development body has to decide on whether it should use such an item or look for an alternative. In the past, the development of standards related to software and IT has proceeded using mainly a 'reasonable and non-discriminatory (RAND)' terms policy whenever patents are included in a standard. Under RAND, the patent holder must be willing to negotiate rights to use the essential patent on reasonable and non-discriminatory terms. The intent of RAND was to prevent patent issues from hindering the adoption of a standard and to ensure that the cost of any necessary licenses needed, arising from the patent, are affordable. This has proved adequate in the past but, in recent times, the increasing proliferation of patents granted to software-based innovations (including software patents) has led standards developing and setting bodies all over the world to clearly state their patent policies to ensure that they are adequate and will continue to support the development of highly successful and widely used standards as they have in the past. Since, in general, a standard is targeted for use by all in the world, it is vital that the terms of usage of any patent that is included in the standard are clearly specified.

Standards have been produced that include patented technologies and all the main standards bodies have policies with regard to the treatment of patents in the documents that they produce.

ISO
ISO has published directives on the issue of patents in its standards development process., There is a strong recommendation to avoid references to patented items in ISO publications. Nevertheless, ISO recognizes that for technical reasons, sometimes this may not be possible and, in such exceptional situations, it does not object in principle to the inclusion of items covered by patent rights even if the terms of the standard are such that there are no alternative means of compliance. During the preparation of the ISO document, a basic text for the identification of patent rights is to be inserted into the draft documents in those cases where compliance with an ISO document may involve the use of a patent.

IETF
RFC 3979 is the main document dealing with the IETF's stand on patents. In general, IETF prefers technologies with no known patent claims or patents that offer royalty-free licensing. However, the IETF working groups have the discretion to adopt technology with a commitment of RAND terms, or even with no licensing commitment, if they feel that the technology is superior enough to alternatives with no such patents or licensing encumbrances.

In order for the working group and the rest of the IETF to have the information needed to make an informed decision about the use of a particular technology, a person contributing to the working group's discussions must disclose the existence of any patent claims that the individual is reasonably and personally aware of and that he (or his employer) owns or controls.

W3C
W3C has a very clear policy with regard to patent usage in its Recommendations. It seeks to issue Recommendations that can be implemented on a Royalty-Free (RF) basis. This has arisen from the experience it had with the WWW.

Many early standards (Recommendations) from W3C paid scant attention to patents. Later, as the Web became more commercial and software and business process patents increased, patent infringement issues surfaced as several patent holders, including some who had participated in the development of the standards themselves, sought license payments. As a result, W3C decided to have a clear patent policy governing the Recommendations that it develops.

The key position of W3C with regard to patents that are deemed essential to a Recommendation (it calls them "essential claims") is that they have to be available for implementation in accordance with the W3C RF License requirements. An "essential claim" refers to a patent for which there is no known alternative and, therefore, it is essential to the implementation of a normative part of a Recommendation.

The policy generally requires that a participating organization in a W3C working group formally commits to the RF requirements for "essential claims" The participants are not required to disclose known patents as long as their participating organization commits to licensing those patents according to RF requirements. In the event that a working group participant holding a patent does not want the patent to come under RF requirements, there is some flexibility in the policy in that it allows the participant to exclude specific patent claims from the RF commitment, provided the working goup is informed within a well-defined time limit. In this manner, a participant can still participate while specifying that strategic technology be excluded from the RF process and the working group is made aware of a potential patent conflict. As far as possible, the working group will try to resolve this conflict. However, in the event that it cannot be resolved, the matter is referred to the Patent Advisory Group (PAG) task force which will attempt to resolve the conflict. Ultimately after exhausting all other options, if the PAG does indeed recommend that an alternative to the RF licensing requirements be used, it has to go through several levels of review and consensus before W3C accepts the alternative.

W3C policy requiring commitment to the RF requirements by default is a stricter policy as compared with the RAND policy of ISO and IETF.

OASIS
OASIS has a published policy which governs the treatment of patents that are considered as "essential claims" (patents that are deemed essential for the implementation of a normative part of an OASIS standard), in the production of specifications and other works by OASIS.

Unlike the W3C, OASIS does not have a single licensing agreement for "essential claims"; instead it uses three types: "Reasonable And Non-Discriminatory (RAND)", "Royalty-Free (RF) on RAND Terms" and "RF on Limited Terms".

RAND defines a basic set of minimal terms that a patent holder is obliged to offer (such as granting a license that is worldwide, non-exclusive, perpetual, reasonable, and non-discriminatory, etc.) and leaves all other non-specified terms to negotiations between the patent holder and the implementor seeking a license.

RF on RAND Terms is the same as RAND with the exception that no fees or royalties are to be charged.

RF on Limited Terms specifies the exact royalty-free licensing terms that may be included in a patent holder's license and that must be granted upon request without further negotiations.

Summary of Patent Policies of Standards Organizations
As can be seen from the discussion in the previous section, most standards bodies do allow the inclusion of patents in their standards although patent-free ones are preferred. Their patent policies all revolve around allowing a RAND policy, either with some form of royalty payment or royalty-free or a mixture of both. This practice is based on the view that RAND licensing appropriately balances the legitimate rights of patent owners, who contribute innovative technology to the standard, with the interests of implementors who wish to obtain access to essential patents on reasonable terms.

RAND Licensing Terms and FOSS Licenses
The possibility that patents under RAND terms can be included in standards has very important implications for software that is released under a FOSS license. FOSS licenses usually include terms that satisfy the following clauses of the Open Source Initiative's Open Source definition.

 * Free Redistribution
 * The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale.

 * Derived Works
 * The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.

 * Distribution of License
 * The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties.

Although all FOSS licenses share these characteristics, the actual requirements and obligations imposed can vary from license to license. For example, the BSD license requires only copyright attribution and license reproduction, and redistributions of the software may be made under any other license. However, the Mozilla Public License (MPL) impose moderate obligations in that they require that specific files containing MPL code be distributed in source-code form and under the terms of the MPL. GNU GPL requires that any work that includes GPL code, if distributed at all, be distributed under the terms of the GPL. It also clearly states that any patent must be licensed for everyone's free use or not licensed at all. FOSS licenses, then, do differ with regard to the nature and degree of rights and obligations described. Consequently, licenses like the BSD allow the usage of technology available under RAND terms but GPL does not allow any GPL-based public distribution to include any technology available under a RAND license that is not royalty-free. The licenses cited above are the most commonly used FOSS licenses with GPL by far being the most popular one. This has the implication that a large number of FOSS products may be incompatible with RAND licensing. In connection with this issue, the Free Software Foundation has stated that RAND licensing discriminates against free software as it is generally not possible for software to be freely modified and redistributed under RAND licensing terms.

Patent Offerings to the FOSS Community
To waylay the concerns of FOSS developers and users, and to reduce the fears of software patents infringement by FOSS developers, several commercial companies have recently offered all or part of their portfolio of software patents on a no cost basis to the FOSS community for use. IBM has announced that, for a start, it will allow royalty-free use of 500 of its software patents in any software that is released under an Open Source license (as recognized by the Open Source Initiative). Red Hat, a company well known for the development and commercial distribution of GNU/Linux, has offered unfettered use of its own software patents portfolio to Linux developers. Novell has said that it will use its existing patent portfolio to protect the Linux kernel and other Open Source programs included in Novell's offerings against potential third-party patent challenges. Sun Microsystems has released over 1,600 patents for use with software that is licensed under the Open Source Common Development and Distribution License (CDDL).

A Patent Commons Project has been started by the Open Source Development Labs (OSDL). This initiative is aimed at the creation of a central depository where software patents and patent pledges can be housed for the benefit of the open source development community and industry. Companies that have contributed and pledged patents to this project include Computer Associates, IBM, Nokia, Novell, Red Hat and Sun Microsystems.

There is much controversy and debate over patents in software development and RAND in standardization (see Annexure: Comments on RAND, as Seen from Both Sides).

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


text:
FOSS Open Standards/The Linux Standard Base

The GNU/Linux operating system consists of the Linux kernel itself and, together, the rest of the system software and tools/utilities make up the operating system. Most of the system software is from the GNU Project. In addition, for an operating system to be useful to most people, it has to be made available with support for some application software. The strong community-based history and support of GNU/Linux together with the nature of the licensing of the Linux kernel and GNU software resulted in many people taking the kernel, system software from GNU and possibly other FOSS utilities/tools, adding in some application software which they deem useful, and putting all these together to form a working package. This working package is termed a GNU/Linux distribution or distro. Consequently, the GNU/Linux operating system comes in very many distros. The large number of distros available, coupled with the fact that since most software, if not all, included in a distro are FOSS and, hence, can be customizable to suit the requirements of a particular distro, have resulted in a fair measure of binary and configuration incompatibilities among distros. Some incompatibility problems include different library versions, package formats and differences in directory and file layouts. It has been recognized that if GNU/Linux is to be fully embraced and supported by mainstream computing as a legitimate alternative to proprietary operating systems, there is a need to cut down on these incompatibilities so that a software package with source can compile cleanly across distros and a binary version can run properly across all distros. The Linux Standard Base Project (LSB) tries to do this by specifying a standard for GNU/Linux.

What is the Linux Standard Base?
The Linux Standard Base is a project under the Free Standards Group. It attempts to develop and promote a set of binary standards that will increase compatibility among GNU/Linux and other similar systems. These standards will also enable software applications to run on any conforming system.

While the main goal of the LSB project is to increase compatibility among GNU/Linux distributions by specifying and promoting standards for their use, it does not limit the applicability of the specification to only the GNU/Linux environment. The LSB specification has been written so that it can be readily implemented on any UNIX-like operating system, natively or as a compatibility layer. With some more work, it can also be implemented on other operating systems.

The LSB is a community-based project and anyone can contribute to it by participating in the various LSB mailing lists. There is considerably good support for the LSB standard among commercial software vendors like Mandrakesoft, Miracle Linux, Novell, Progeny, Red Flag, Red Hat, IBM, Oracle, Veritas, MySQL, etc.

The Linux Standard Base Specification
The LSB comprises a single common (generic) specification and architecture specific specifications. The complete specification for a particular platform consists of the generic specification plus one of the architecture specifications. Architectures supported currently are IA32 and IA64 (Intel 32- and 64-bit processors), PPC32 and PPC64 (IBM's 32- and 64-bit PowerPC family), S390 (IBM's S390 processors) and S390X (IBM zSeries processors), and AMD64 (Advanced Micro Devices 64-bit processors).

The LSB defines both a set of Application Program Interfaces (APIs) for source code and Application Binary Interfaces (ABIs) for compiled binaries. A conforming implementation has to support all of the ABIs in the LSB but not all of the source-level APIs.

The LSB is divided into specification modules in which a specification module refers to a unique collection of one or more functions that have value for a certain group of runtime implementations. The modules currently available are LSB-Core, LSB-C++, LSB-Graphics and LSB-I18N. Both LSB-Core and LSB-C++ have generic and architecture-specific specifications while the LSB-Graphics and the LSB-I18N have only the generic specification. Table 10 summarizes the currently available modules.

The latest version of the LSB is 3.0.0. LSB 2.0.1 had been submitted to ISO to become an international standard for GNU/Linux.

LSB-Core Specification
This is the Core module of the Linux Standard Base. This module provides the fundamental system interfaces, libraries, and runtime environment upon which all conforming applications and libraries depend. It provides specifications for the following areas:
 * 1) Executable and Linking Format (ELF)
 * 2) Base libraries
 * 3) Utility libraries
 * 4) Command and utilities
 * 5) Execution environment
 * 6) System initialization
 * 7) Users and groups
 * 8) Package format and installation

The specifications make extensive use of existing standardized APIs and ABIs from other bodies. Some normative references include those from ISO POSIX, the System V Interface Definition (SVID) and the Filesystem Hierarchy Standard (FHS).

In particular, the LSB-Core specification includes many interfaces described in ISO POSIX (ISO/IEC 9945) and it specifies that such interfaces should behave exactly as specified in the POSIX standard. It is also the long-term plan of the LSB to converge with ISO/IEC 9945.

One of the problems plaguing the many different GNU/Linux distros has been the various formats used in software package distribution. The LSB addresses this by specifying that applications shall be packaged in the RPM packaging format as defined in the LSB, or supply an installer which is LSB conforming (for example, by invoking LSB commands and utilities). This means that while packages are encouraged to be supplied in Red Hat Package Manager (RPM) format the LSB does not mandate the use of the RPM program or database.

LSB-C++ Module
This is the C++ module of the LSB. It supplements the core interfaces by providing system interfaces, libraries, and a runtime environment for applications built using the C++ programming language.

Normative references include the LSB-Core, IOS POSIX and the ISO/IEC 14882 C++ Language standard.

It provides specifications for the following areas:
 * 1) Low level system information
 * 2) Base libraries
 * 3) Package information

The LSB-Graphics Module
This specification defines the graphical interface found on an LSB conforming system. Normative references include the LSB-Core and graphic libraries and specifications from The X.Org Foundation.

It provides specifications for the following areas:
 * 1) Graphic libraries
 * 2) OpenGL libraries
 * 3) Package information

The LSB-I18N Module
This module corresponds to the OpenI18N Global Specification from the OpenI18N Project.

Linux Standard Base as an ISO Standard
LSB 2.0.1 had been submitted to ISO for use as an international standard for GNU/Linux through the ISO PAS (Publicly Available Specification) process and this was recently approved as the standard ISO 23360.

The availability of an ISO GNU/Linux standard is an important milestone, symbolically, in the development of GNU/Linux. It signifies that the GNU/Linux operating environment has come of age and is now officially recognized as a full-fledged mainstream computing platform. As a result, corporations and governments, that so far have been reluctant to use GNU/Linux due to uncertainty regarding its long-term viability and international acceptance, now have the confidence to consider it on an equal footing with other more established operating systems. An ISO GNU/Linux standard will also help the acceptance and usage of FOSS in general as many FOSS products are implemented on GNU/Linux and it is arguably the most wellknown FOSS product.

Linux Standard Base Certification
GNU/Linux distributions that conform to the LSB can be certified as such. The LSB certification scheme is run on behalf of the Free Standards Group by the Open Group, a vendor- and technology-neutral consortium, to ensure neutrality and confidentiality. Certification charges are kept to a minimum to encourage developers, Independent Software Vendors (ISVs) and GNU/Linux distributions to become LSB certified.

LSB certification is currently available for the following:
 * 1) LSB Runtime Environment
 * 2) LSB Application
 * 3) LSB Internationalized Runtime Environment

Developers and vendors are granted a license to use the LSB Certified trademark in connection with a particular product, once it has passed the applicable certification test suites.


text:
FOSS Open Standards/Government National Open Standards Policies and Initiatives

Many governments all over the world have begun to realize the importance of open technologies and technical specifications, and the ability to participate in the development of these technologies and specifications. In parallel to this, they have also taken notice of FOSS and the benefits that it can bring to a nation. As a result, in many countries, the government has come out with policies and/or initiatives which advocate and favour open standards in order to bring about increased independence from specific vendors and technologies and at the same time to accommodate both FOSS and proprietary software. This is especially true for most e-government projects and initiatives all over the world.

Embracing open standards can also assist FOSS to flourish in a country. In the Introduction, it was mentioned that open standards helped to popularize FOSS to a large extent. FOSS can interoperate well with established proprietary software and technologies with the aid of open standards, thereby making its implementation more feasible. As such, countries that are looking to FOSS should also look at specifying open standards too.

Some Government Open Standards Policies and Initiatives
This section will list out some of the government policies and initiatives of several countries with respect to open standards.

The European Union
The European Union (EU) comprises many nation states with many diverse cultures and languages at varying states of technology/technical development. For it to be able to function effectively, especially in the area of information exchange, the governments concerned have to establish a proper interoperability framework and standards on data interchange. The development of the European Interoperability Framework (EIF), a framework for the e-government services of the member states to facilitate the interoperability of these services at pan-European level, is taking place under the European Commission's Interoperable Delivery of European eGovernment services to public Administrations, Business and Citizens (IDABC) Programme. The EIF version 1.0 recommends the use of open standards for maximum interoperability among e-government services. It defines the minimal characteristics for open standards as the following:
 * 1) the standard is adopted and maintained by a not-for-profit organization;
 * 2) the development of the standard occurs using an open decision-making process and does not preclude any party from it;
 * 3) the standard is published and is available either free of charge or for a nominal fee;
 * 4) the published standard must be available for all to copy and distribute, either free of charge or for a nominal fee; and
 * 5) any patents present in the standard are to be irrevocably available on a royalty-free basis.

The definition above has attracted controversy even though the area of validity is confined to panEuropean projects carried out in the context of the IDABC Programme. FOSS groups and advocates have welcomed it but other groups, including ANSI, BSA and EICTA, have criticized it, particularly with respect to the last two criteria. These parties point out that they are inconsistent with the approach taken by other standards development organizations that acknowledge the right of patent holders to charge reasonable royalties and to place reasonable restrictions on the licensing of their essential technology covering an open standard.

The European Commission's IDA expert group on open document formats has recommended that the European Union's public sector use open formats in their electronic documents. For revisable documents, XML-based formats like the Open Document format from OASIS and Microsoft's new XMLbased MS Office formats are recommended.

United Kingdom
The United Kingdom's e-government initiative places a lot of emphasis on open technical standards to achieve seamless information flow across the public sector and to provide citizens and business with better access to government services. Its e-Government Interoperability Framework (e-GIF) defines the technical policies and specifications governing information flows across government and the public sector. Complying with e-GIF at the highest level includes the use of open standards like XML as the primary means for data integration and the implementation of Internet and WWW standards.

Denmark
The Danish e-Government Interoperability Framework includes recommendations and status assessments for more than 450 selected standards, specifications and technologies used in its e-government solutions. In general, the Framework recommends the use of open standards and centrally agreed XML schemas (which may be provided free of charge throughout the public sector) for data interchange.

As part of the Interoperability Framework, the policy on data and document exchange specifies that documents should be published in generally available formats for which free readers exist and the use of proprietary word processing formats such as MS Word or formats that do not have widely available readers should be avoided for publicly available documents.

The Netherlands
The Netherlands has its OSOSS - the programme for Open Standards and Open Source Software in government. This programme encourages the use of open standards and provides information on open-source software. The Dutch ICTU, the organization for ICT and government programme, runs OSOSS. While the programme targets the public sector, its results will be available for the private sector and individuals too. The programme provides information and advice to the public sector on open standards. It has set up a catalogue of recommended open standards for use in the public sector.

Norway
The Norwegian Government has declared that proprietary formats will no longer be acceptable in communication between citizens and government. As part of its "eNorge 2009 - the digital leap" master plan for IT - all public sector bodies in Norway are to have in place a plan for the use of open source software and open standards by the end of 2006.

Massachusetts, USA
The Commonwealth of Massachusetts, USA, has announced an IT Policy that emphasizes the importance of open standards compliance for IT investments in Massachusetts. The Policy states that all prospective IT investments will have to comply with open standards referenced in the current version of the Enterprise Technology Reference Model (ETRM) of the Commonwealth. It further says that existing IT systems will be reviewed for open standards compatibility and will be enhanced to achieve open standards compatibility where appropriate. In addition, open standards solutions will be selected when existing systems are retired off or need major enhancements.

New Zealand
As part of its e-government vision, New Zealand has come up with a supporting Information Systems (IS) Policies and Standards document. The guiding principles state that the IS Policies and Standards are to be based on open standards, wherever possible. New Zealand also has an e-Government Interoperability Framework (NZ e-GIF) which lists the mandatory use of many open standards for compliance.

Malaysia
The Malaysian Government Interoperability Framework (MyGIF) defines the minimum set of IT standards and technical specifications for use in government ministries, agencies and departments. These cover the areas of interconnection, data integration, information access, security and meta-data. Instead of creating new standards or specifications, MyGIF adopts internationally recognized open and de facto IT standards and specifications for all the interoperability areas mentioned.

Chile
The Government of Chile, in 2004, issued Decree 81 whereby all public agencies and services are required to format documents in XML. A three phase roll-out deployment plan is being implemented with the final stage scheduled for completion by 2009.

India
The Government of India has started its eBiz initiative - a project to build a framework for Government to Business (G2B) services where services from the federal, state and local government agencies will be made available through a single portal. The eBiz architecture is to be built on the principles of interoperability and open standards.

Others
Many other countries, e.g. South Africa, Viet Nam, Brazil and Peru, have started initiatives and/or policies to address the digital divide and to improve their government's IT implementations by leveraging FOSS and open standards together

Challenges in Implementing Open Standards in Government Procurement Policies
In line with their national IT policies favouring open standards, many government IT software procurement policies have specified that products and solutions should support and implement open standards before they can be considered. However, there are several challenges to overcome if this is to be put into practice. The reality is that, sometimes, open standards may not be available or are not mature enough for a required technology. Also, in some cases, the usage of a de facto standard is so entrenched that it is not practical to ignore it.

One way to overcome some of the problems highlighted above is to recommend, in cases where open standards are either not available or mature enough, some other specification (e.g., a de facto standard) for use in the meantime. This interim specification should be chosen with care. It should be one that is widely used and, as far as possible, the specification should be publicly published and available for implementation so that software that can support it is available from different sources or vendors. Examples of these include the zip data compression file format and the PDF format for office documents and brochures.

It is important that these points are considered to minimize the possibility of a lock-in by using a proprietary specification when an open one is not available or practical. The organizations and/or vendors responsible for the specification should be encouraged to submit it to an open standards body for adoption/adaptation as a standard. An example of this line of approach are the developments, leading to the adoption of the OpenDocument format as the standard for document exchange by the EC's IDABC Programme.

In environments where the usage of a proprietary standard is so widespread and ingrained that it is not practical to ignore it or replace it immediately, in the interim, some means of interoperability and/or file format conversions may have to be found so that the proprietary standard can interoperate with installations using open standards. A careful implementation and operation plan has to be worked out to ensure adequate interoperability. It may also be necessary to implement the applications using the open standard in phases, so as to allow adequate time to phase out the older applications of the proprietary standard.

Summary
As can be seen from the discussion above, most of the world's governments are asking for the adoption of open standards and specifications as much as possible in their country's IT usage and/or e-government projects and initiatives. This is a good move since, if more and more countries are to insist on open standards, more software vendors (both FOSS and proprietary software) will be forced to open up their file formats and technology specifications, and adhere to open standards in their products as much as possible, thereby, further enhancing the interoperability of disparate products and systems.


text:
FOSS Open Standards/Conclusion

This primer has tried to explain what technical standards are and the key characteristics of what may be termed as open standards in the field of information technology. Specifications that satisfy these characteristics can be viewed as open ones and those that are in widespread use and acceptance may be regarded as open standards.

Open IT standards are even more important in this present information age of IT and communications convergence and the Internet. No single technology, group or vendor can provide for everything and, therefore, interoperability in a heterogeneous environment is required more than ever. It is only by strict adherence to standards and specifications that a high degree of interoperability can be achieved. Standards that are open and non-discriminatory are preferred because there is no dependence on any single entity, all types of products can implement them and all interested parties can partake in their development.

XML and related technologies are expected to play an important role in setting new standards for better interoperability and information exchange in the areas of Web applications, services and e-commerce, as well as in office applications. It is crucial that these standards are steered and developed by open standards bodies. Towards this end, it is very important that bodies like W3C, OASIS, IETF, ISO, IEEE remain open and support non-discriminatory policies especially with regard to intellectual property rights issues.

In many environments, the demand and usage of open standards go hand-in-hand with FOSS. There have been many successful FOSS implementations of open standards and so it is not surprising that many see them as working in tandem. FOSS has much to gain from open standards and wide spread adoption of the latter will help FOSS proliferate as the Internet has demonstrated. However, as pointed out in the primer, FOSS and open standards are two distinct and different domains and it is possible to have a proprietary software product implement open standards and a FOSS product make use of a proprietary specification.

The software localization initiatives of many countries will benefit from the setting and availability of more open standards in the relevant areas. The easy and free access to open standards related to internationalization and localization will encourage more local people to participate in these initiatives.

More and more governments are asking for open standards now and this is a very good sign as they are the biggest buyers and consumers of IT products and software. The vendors will have to comply with open standards and open up any proprietary file formats or specifications in response to these demands. In conjunction with this, it is hoped that more and more users too will follow suit.

It is the aim of this primer to help educate and make the reader aware of the benefits of open standards in terms of enhancing interoperability in an increasingly heterogeneous environment. It should be the ultimate objective of users to be able to access and use applications and services using any device, platform or interface of their choice. At the same time, they should be able to exchange information and data from these applications/services with other users without suffering any degradation in content. Open standards represent one important possible way to achieve this objective.

title: FOSS Open Standards/Conclusion


text:
FOSS Open Standards/Annexure

There is much controversy and debate over patents in software development and Reasonable And Non-Discriminatory licensing or RAND in standardization. The following is a collection of comments by leading experts from the FOSS community, industry, and academia on the issues relating to patents in software development and standards, and in particular on the issues surrounding RAND.

Peter Chong, Corporate Attorney, Asia-Pacific Region, Microsoft Legal and Corporate Affairs ( http://www.microsoft.com )

Proprietary does not imply "closed" or the opposite of interoperability; it simply indicates a different - often smaller and quicker - process was used to develop the standard at issue. Even when a standard is produced and controlled by a single entity and does not undergo a process of review and ratification through a standards body, as long as the standard is broadly accessible to all for use and implementation on reasonable terms, such a standard can still facilitate interoperability between products. PDF and ZIP (which is used in the OpenOffice.org file format submitted to OASIS) are two examples of standards that have achieved widespread acceptance and interoperability without being open standards, and while remaining under the ownership of a single entity. Other examples of broadly deployed proprietary standards that are widely licensed in the IT industry with a significant positive impact on interoperability include Adobe's PDF, Hewlett Packard's Printer Control Language (PCL), Microsoft's Office Open XML File Formats and the Java and Win32 APIs. Many well-known and useful open standards today also originated from a single entity before formal adoption as an open standard, e.g. ISA (a specification by IBM, later standardized by IEEE), and NFS (Network File System, introduced by Sun Microsystems, later standardized by IETF).

While adopting open standards is one good approach to achieving interoperability, it is not the only approach, and it is not the case that any other approach is without merit. Further, it is not the case that open standards exist in every field of technology. In many emerging areas, standards are still being developed by the industry. The reality faced by many governments and organizations is that there are numerous areas where open standards do not yet exist, and they have to work with other types of standards until a strong contender emerges. Premature governmental directives on the use of standards that are not yet ready and proven will stifle the industry and inhibit growth.

Governments and organizations should be, and are often, open to the possibility that some de facto standards, like PDF for example, are so widely and reasonably licensed and so broadly deployed and demanded that it makes sense to embrace such standards as part of a government's or organization's interoperability framework, rather than insisting on an open standard such as X.400. This is a much better approach than suggesting at the outset that all de facto standards, even those available royalty-free, should entirely be avoided by governments and other organizations. To completely ignore such standards as a rule may make little sense and may actually impair interoperability, particularly if there is no adequate open standard substitute for such a de facto standard. This is how governments (e.g. Australia) and other organizations (e.g. Asia-Pacific Economic Cooperation or APEC) continue to view and use such popular and accessible de facto standards. Governments and organizations should realize that proprietary standards and open standards are complementary ways to achieve interoperability.

Governments should avoid mandating standards themselves or mandating those that have not achieved broad industry support. Regardless of whether open standards and proprietary standards are at issue, voluntary, industry-led industry led processes have proven in all cases to be the most effective means of fueling innovation through standards. Most of the best known, widely adopted open and proprietary standards in existence today, e.g. TCP/IP, MPEG, HTML, 802.11, XML, SMTP, were developed through industry-led, voluntary efforts. This reflects the fact that the marketplace continues to be best situated to determine and develop the appropriate timing and levels of interoperability for products and services.

Microsoft has a responsibility to develop technology that is based on commonly used standards and to make our products work well with those of other companies - including our competitors. Microsoft enables interoperability between its products and thousands of third-party products and services in various ways, including active participation in hundreds of standards organizations, support of open standards in its products, and publication and broad licensing of Microsoft's proprietary technologies. Go to http://www.microsoft.com/interop for more information.

Seow Hiong Goh, Director of Software Policy - Asia, Business Software Alliance ( http://www.bsa.org )

There is no special relationship between open source and open standards - the two concepts are separate and distinct. Just as FOSS does not mean software "free-of-charge" open standards do not mean standards, "free-of-charge" or "royalty-free". Openness in a standard relates to the process in which the standard is defined, ratified and maintained, and not with its cost. FOSS and commercial software are both equally capable of implementation that meets the requirements and specifications of open standards.

Key aspects of BSA's position on the EIF definition are shared by numerous other bodies such as EICTA, ITU-T, GSC, ANSI, ETSI, CompTIA and many others. We do not believe that these organizations are attempting to undermine FOSS. We do not think that many critical and well-established technologies that are implemented on the basis of accepted open standards and maintained by many existing standards bodies should no longer be considered so.

Common licensing provisions governing matters such as royalties, defensive suspension, reciprocity, field of use and sublicensing do not preclude developers from distributing standards implementations under the vast majority of open source licenses.

Certain FOSS licenses, particularly the GPL (see note below), contain restrictive terms concerning free redistribution, derived works and distribution of license that create a direct conflict with RAND terms. Even where there are no royalties or other fees associated with a RAND patent license, the GPL is still at odds with the field-of-use limitation, restriction on sublicensing and reciprocity requirement, the three common terms in standards-related patent licenses.

We believe that a licensing restriction that is unique to the GPL should not be generalized as being applicable to all open source licenses that may not face such restrictions. Most FOSS licenses are flexible enough to be used to redistribute software covered by an independent RAND patent license (assuming redistributors have taken steps to mitigate infringement risks).

Fortunately, while some conflict exists, given the increasing success and importance of FOSS, the proprietary software industry and the standards industry continue to explore ways to resolve any such conflicts and to forge an environment in which all software - commercial and FOSS alike - can co-exist and thrive, all with the ultimate goal of enhancing interoperability and consumer choice.

For a further discussion of the issues of technology standards and interoperability, please see: http://www.bsa.org/asia-eng/policy/upload/Technology-Standards-Interoperability1.pdf

Pamela Jones, Growlaw, USA ( http://www.groklaw.net )

RAND terms at one time made good sense. Now RAND is a weapon to discriminate. For software, RAND terms no longer suit. Something new has happened in the world of software. The General Public License, like most other Open Source licenses, is incompatible with RAND unless the terms specify that the patents are 100 percent royalty-free. Because Linux and GNU/Linux are made available under the GPL, the dominant Open Source license, and because so many now wish to use GNU/Linux operating systems, including large corporations and government agencies, standards organizations have reached a fork in the road. They will have to adjust to include this new player if they wish to remain relevant.

The purpose of standards is to make the playing field fair to all and to enable interoperability, but RAND no longer accomplishes that purpose for software, and so an adjustment must be made to include GNU/Linux and the GPL.

Jeff Kaplan, Founder & Director, Open ePolicy Group, Berkman Centre for Internet and Society, Harvard University, USA (cyber.law.harvard.edu/epolicy)

Open standards are the subject of increasing public attention and debate. But what makes a standard open? Open standards must be royalty-free, but the discussion does not end there. The harder question is whether open standards can have other conditions if they are RAND. Despite its appealing rhetoric, RAND is not an objective benchmark. "Reasonable" is in the eye of the beholder; it is an undefined criteria only a lawyer could love. Worse, RAND can be a wolf in sheep's clothing, bringing new forms of lock-in under the guise of "openness."

Standards have degrees of openness, mainly due to restrictions and encumbrances placed upon them by vendors. The fact that a standards organization labels a standard open is not determinative. Its effect in the marketplace is a better guide.

At a minimum, open standards must allow all possible competitors to operate on a basis of equal access to the ability to implement the standard. They should not drive others to follow any specific proprietary path or effectively foreclose any software development model. A standard that in effect blocks open source developers from its implementation is not an open standard.

Any conditions (RAND or otherwise) that have the effect of limiting competition, leaving control in the hands of a single vendor, or hindering interoperability - for example, proprietary extensions of a standard- are incompatible with open standards. Ultimately, open standards must allow for self-directed innovation.

Michael R K Mudd, Director of Public Policy - Asia-Pacific, CompTIA ( htpt://www.comptia.org )

The greatest fear of patents in the software standardization process is the misconception that they would somehow hinder the interoperability of different types of computer programs and file formats. CompTIA would like to make it absolutely clear that robust intellectual property protection - particularly the patentability of computer-implemented inventions - is not a deterrent to interoperability, but may in fact enhance it by providing industry with the right incentives to further invest in the development of such standards in that they can be traded between innovators on RAND terms.

Unlike trade secrets, patents also encourage transparency - in cases where software is distributed in object code form only, a patent provides the only public disclosure of the technical concepts embedded in it. As in the case of the EU Community Patent, which would create a single patent across the European Union, the European Commission has gone to great effort over recent years to harmonize computerimplemented inventions (CII's) despite many public misconceptions of what this would entail. The European Parliament has been cautious to proceed with any directive that would dilute the importance of this intellectual property right. EU Member States and a number of third countries subscribe to the European Patent Convention (EPC) which has enabled the European Patent Office (EPO) to grant patent rights for software-related inventions under intergovernmental - as opposed to supranational - agreement, for decades.

CompTIA also supports the industry position that open standards cannot be defined to the exclusion of potential patent-based royalties such as RAND. To adopt the proposed European Interoperability Framework (EIF) definition would create a preference for a particular business model and automatically exclude other models in the standards-setting process. To cite the EIF definition as a valid EU law or norm is not necessarily correct in that it would discriminate against particular forms of software development in public procurement and other markets

There are some who believe that open standards are standards that either completely "patent-free" or "royalty-free," or that are not subject to any licensing restrictions. This view is squarely at odds with the longstanding approach taken in the IPR policies of leading open standards organizations. For example, ANSI, ECMA, ETSI, IEEE, IETF, ISO/IEC, and ITU expressly acknowledge the right of patent holders to charge reasonable royalties, and to place reasonable restrictions - such as field-of-use restrictions, reciprocity requirements, and restrictions on sub-licensing - on the licensing of their essential technology covering an open standard.

Dan Ravicher, Legal Director, Software Freedom Law Centre, USA ( http://www.softwarefreedom.org )

RAND, to the extent that it has the historical meaning of allowing an owner of a patent that covers a standard to charge a license fee to any person that adopts the standard, is an oxymoron for free and open source software, because any requirement of the charging of a license fee is - by definition - neither reasonable nor non-discriminatory. Thus, most RAND licensing is - in fact - unreasonable to and severely discriminatory of free and open source software because it precludes such software from existing. As such, standards covered by patents licensed on a RAND basis generally cannot be implemented into free and open source software, unless the RAND license is actually royalty free.

Andre Rebentisch and Gavin Hill, Foundation for a Free Information Infrastructure, European Union ( http://www.ffii.org )

In our opinion the basic foundation of Open Standards is the absence of control over the creation and use of standards. The openness and management of the standard development process plays a minor but crucial role. The notion of facultative use, i.e. occurring optionally in response to circumstances rather than naturally, of Open Standards and the absence of control procedures like forced certification further add to business affinity. A standardization process is always under the threat of abuse by the interests of those parties who set the standard, institutional interests of the standard-setting body and exclusive enforcement of the standard. Often standards put an artificially high cost burden on businesses. This is especially important as standards are classical means of non-tariff trade barriers and anti-competitive market control. Open Standards, correctly defined and implemented, prevent these inherent problems of standard policy. Patents as exclusive monopoly rights over such possible means of undesirable control. RAND licensing limits the exclusive nature of the patent rights. However, only royalty-free or patent-free technology does not bear a welfare burden to the free competitive market. Open Standards may not include measures to exclude competitors. Therefore, RAND licensed technology is incompatible with Open Standards. As mentioned by some contributing parties RAND provisions exclude the use of the currently predominant FOSS license, the GNU GPL.

Despite common postulates there is no indication that the patent system is appropriate to the software market, its market dynamics and common use in professional software development. As the arguments to software patenting have been driven by institutional interests of the patent system rather than market demand, we further stress that there is no legitimacy for the application of the instrument in the software market. We do not see a useful role for patents in standardization. The burden of proof lies upon the proponents of a certain incentive system which works by restricting the freedom of market in first place. The pro arguments mentioned by the FOSS community are not useful to provide such evidence as they are not accompanied by empirical data to prove the claims made. In fact they are postulates which could be applied to justify the use of the patent system in any possible field but fail to make the case. Open Standards and standards in general are especially interesting from our point of view as they are known to be areas where patents are very harmful to competition.

Richard Stallman, Founder, Free Software Movement ( http://www.fsf.org )

Standards bodies that promulgate patent-restricted standards that prohibit free software typically have a policy of obtaining patent licenses that require a fixed fee per copy of a conforming program. They often refer to such licenses by the term "RAND," which stands for "reasonable and non-discriminatory."

That term white-washes a class of patent licenses that are normally neither reasonable nor nondiscriminatory. It is true that these licenses do not discriminate against any specific person, but they do discriminate against the free software community, and that makes them unreasonable. Thus, half of "RAND" is deceptive and the other half is prejudiced.

Standards bodies should recognize that these licenses are discriminatory, and drop the use of the term "reasonable and non-discriminatory" or "RAND" to describe them. Until they do so, other writers who do not wish to join in the white-washing would do well to reject that term. To accept and use it merely because patent-wielding companies have made it widespread is to let those companies dictate the views you express.

We suggest the term "uniform fee only," or "UFO" for short, as a replacement. It is accurate because the only condition in these licenses is a uniform royalty fee.

title: FOSS Open Standards/Annexure


text:
FOSS Open Standards/About the Author

The author has been in the ICT industry for over 16 years and is experienced in networking protocols, internetworking and information security issues. He participates actively in Malaysian ICT organizations, in particular, MNCC (Malaysian National Computer Confederation) and PIKOM (Association of the Computer and Multimedia Industry of Malaysia). He has been involved in numerous MNCC and PIKOM events and initiatives and has represented both bodies in various Government committees, working groups and task forces on subject matters like the Internet, ICT security, IT standards and FOSS, at both the national and international levels.

The author participates actively in local standardization activities being a member of several technical committees and working groups for IT standards in the Malaysia. He currently works as an independent consultant in the areas of FOSS deployment and information systems security.

He is also the co-author of the Linux Desktop User Guide published by the International Open Source Network (IOSN), an initiative under the United Nations Development Programme (UNDP).

title: FOSS Open Standards/About the Author


text:
FOSS Open Standards/Acknowledgements

The author would like to thank all those who have helped and contributed to the preparation of this primer, including Shahid Akhtar and Phet Sayo of UNDP-APDIP, and Sunil Abraham and Khairil Yusof of IOSN. He would also like to thank the organizations and people who have provided useful feedback and constructive criticisms to the primer; they include BSA, CompTIA, Microsoft, Richard Stallman, Tony Di Cenzo and Raul Zambrano.

title: FOSS Open Standards/Acknowledgements


text:
FOSS Open Standards/About APDIP

The Asia-Pacific Development Information Programme (APDIP) is an initiative of the United Nations Development Programme (UNDP) that aims to promote the development and application of information and communication technologies for sustainable human development in the Asia-Pacific region. APDIP aims to meet its goals by focusing on three inter-related core areas: (i) policy development and dialogue; (ii) access; and (iii) content development and knowledge management.

APDIP collaborates with national governments, regional, international and multi-lateral development organizations, UN agencies, educational and research organizations, civil society groups, and the private sector in integrating ICTs in the development process. It does so by employing a dynamic mix of strategies - awareness raising, capacity building, technical assistance and advice, research and development, knowledge sharing and partnership building.

http://www.apdip.net

title: FOSS Open Standards/About APDIP


text:
FOSS Open Standards/About IOSN

The International Open Source Network (IOSN) is an initiative of APDIP and supported by the International Development Research Centre of Canada. IOSN is a Centre of Excellence for Free/Open Source Software (FOSS), Open Content and Open Standards in the Asia-Pacific region. It is a network with a small secretariat based at the UNDP Regional Centre in Bangkok and three centres of excellence - IOSN ASEAN+3, IOSN PIC (Pacific Island Countries), and IOSN South Asia, based in Manila, Suva and Chennai respectively.

IOSN provides policy and technical advice on FOSS to governments, civil society and the private sector. It produces FOSS awareness and training materials and distributes them under open content licenses. It also organizes awareness raising, training, research and networking initiatives to assist countries in developing a pool of human resources skilled in the use and development of FOSS. IOSN works primarily through its web portal http://www.iosn.net that is collectively managed by the FOSS community. The web portal serves as a clearinghouse and a platform for knowledge sharing and collaborations.

http://www.iosn.net

title: FOSS Open Standards/About IOSN


text:
FOSS Open Standards/Glossary

 * American National Standards Institute
 * The American National Standards Institute is a private, non-profit organization that administers and coordinates the US voluntary standardization and conformity assessment system.

 * Business Software Alliance
 * The Business Software Alliance is a trade group representing some of the world's largest 	computer software and hardware manufacturing companies. The BSA is involved in programmes that promote copyright protection, cyber security, trade and e-commerce.

 * British Standards Institute
 * This is the National Standards Body of the United Kingdom.

 * European Interoperability Framework
 * The European Interoperability Framework for pan-European e-Government services provides a framework to facilitate the interoperability of the e-Government services of the European Union member states.

 * European Computer Manufacturers Association International
 * ECMA International is an industry association dedicated to the standardization of Information and Communication Technology (ICT) and Consumer Electronics (CE). ECMA, in co-operation with the appropriate National, European and International organizations, develops standards and technical reports to facilitate and standardize the use of ICT and CE.

 * European Information, Communications and Consumer Technology Industry Association
 * The European Information, Communications and Consumer Electronics Technology Industry Associations (EICTA) was formed by a consolidation of two former European federations of the information and telecommunications industries, the European Association of Consumer Electronics Manufacturers and the European Information & Communications Technology Industry Association. EICTA states that it is dedicated to improving the business environment for the European information and communications technology and consumer electronics sector, and to promoting the industry's contribution to economic growth and social progress in the European Union.

 * Free and Open Source Software
 * Free and Open Source Software is a term used to collectively refer to software that conforms to the definitions produced by either the Free Software Foundation or the Open Source Initiative. FOSS is usually released under at least one of the software licenses recognized by these organizations.

 * Free Software Foundation
 * The Free Software Foundation is a non-profit organization based in the USA. Its mission is to preserve, protect and promote the freedom to use, study, copy, modify, and redistribute computer software, and to defend the rights of all Free Software users.

 * GNU's Not UNIX
 * The GNU Project was launched in 1984 to develop a complete UNIX-like operating system which is free software - the GNU system. Variants of the GNU operating system, which use the Linux kernel, are now widely used. GNU is a recursive acronym for "GNU's Not UNIX"

 * GNU General Public License
 * The GNU General Public License (GPL) is a free software license originally written by Richard Stallman for software under the GNU Project. Under the GPL, the software can be freely redistributed, source code is made available and modification and re-distribution of the modified software is permitted. The GPL incorporates the concept of "copyleft" in which derivative works of a GPL-licensed software must be licensed under the GPL also. The GPL is the most popular of the FOSS licenses.

 * Interoperable Delivery of European eGovernment services to public Administrations, Businesses and Citizens
 * The Interoperable Delivery of European eGovernment services to public Administrations, Businesses and Citizens (IDABC) is a community programme managed by the European Commission's Enterprise and Industry Directorate General. It uses the opportunities offered by information and communication technologies to encourage and support the delivery of crossborder public sector services to citizens and enterprises in Europe, to improve efficiency and collaboration between European public administrations and to contribute to making Europe an attractive place to live, work and invest.

 * Joint Photographic Experts Group
 * The Joint Photographic Experts Group (JPEG) is the working group of ISO that defined the popular JPEG Imaging Standard and more recently the JPEG 2000 family of Imaging Standards.

 * Motion Pictures Experts Group
 * The Motion Pictures Experts Group (MPEG) is a working group of ISO/IEC charged with the development of video and audio encoding standards. It is responsible for the family of standards used for coding audio-visual information (e.g., movies, video, and music) in a digital compressed format.

 * Open Source Initiative
 * The Open Source Initiative (OSI) is a non-profit organization dedicated to managing and promoting the Open Source Definition, specifically through the OSI Certified Open Source Software certification mark and programme. A piece of software is recognized as Open Source software if it is released under a license certified by the OSI.

 * Open Source Development Labs
 * The Open Source Development Labs (OSDL) is a non-profit organization that is dedicated to accelerating the growth and adoption of GNU/Linux in the enterprise. Its membership comprises most of the prominent commercial players in the open-source industry as well as some academic institutions. It provides state-of the-art computing and test facilities in the United States and Japan available to developers around the world.

 * Portable Operating System Interface for UNIX
 * POSIX is an acronym for Portable Operating System Interface for UNIX, a set of IEEE and ISO standards that define an interface between programs and operating systems. Programs that conform to POSIX developed on one system can be ported more easily to other POSIX-compliant operating systems (this includes most variants of UNIX and UNIX-like operating systems).

title: FOSS Open Standards/Glossary


text:
World History/The Unification of China

As you might have known, the early Chinese dynasties, namely Shang and Zhou, are not centralized countries, which means that the central government did not have direct power over the country. This is because the national power is still too weak at that point. To rule the land it couldn't directly rule, the Zhou dynasty developed a system called Fengjian, which is similar to Feudalism in Europe. The King of Zhou distributed land to its relatives, courtiers, or decedents of the former dynasties, making them constituent states called Zhuhou (諸侯).

The states were supposed to back up the Zhou court, but the power of the court had started to decrease since 770 BC. During the Spring and Autumn period (770 to 476 BC), the Zhou royal authority over the states eroded as more and more of them obtained de facto regional autonomy, defying the king's court and waging wars amongst themselves. Many small states, including various city states, were annexed by larger states, but the war during the period were mostly aimed at getting more vassal states than annexing other states.

This, however, gradually changed in the the Warring States period. The gradual Partition of Jin, one of the most powerful states, marked the end of the Spring and Autumn period and the beginning of the Warring States period (475 to 221 BC). The states had more large-scaled wars which were aimed at annexation. The state of Qin gradually became the dominant power of the states. It overthrew the court of Zhou, unified the remaining states, and in 221 BC formed the Qin dynasty.

Background
Even the Zhou Dynasty lasted for almost 900 years, its territory was divided into numerous states, most powerful, being (in alphabetical order): Chu, Han, Qi, Qin, Wei, Yan, and Zhao.

In 221 B.C.,Chinese were unified for the first time to construct a great country that ended the long era of disunity and warring. In that year the western frontier state of Qin, the most aggressive of the Warring States, subjugated the last of its rival state.

title: World History/The Unification of China


text: User talk:81.23.193.89

title: User talk:81.23.193.89


text:
Introduction to Psychology/Social Psychology

Social Psychology is the branch of Psychology or Sociology that deals with the study of individual behaviour in a society. Psychology is the study of mind and behaviour and the basic subject matter for the study of psychology is the individual difference. The individual becomes the part of a society by the process of socialization. The major and most determining part of socialization occurs in the early childhood. This is the time when the child learns all the social norms and values.

The social psychology can be divided into two major categories based on the emphasis given to either of the constituting disciplines, Psychology and Sociology. Psychological Social Psychology (PSP) emphasizes its study on the subject's mental processes, experiences and dispositions while Sociological Social Psychology (SSP) emphasizes its study on the individual's social order, roles and the historical base of social behaviour.

Social psychology is the study of the nature and causes of human social behavior, with an emphasis on how people think towards each other and how they relate to each other. Social Psychology aims to understand how we make sense of social situations. For example, this could involve the influence of others on an individual's behavior (e.g., conformity or persuasion), the perception and understanding of social cues, or the formation of attitudes or stereotypes about other people. Social cognition is a common approach and involves a mostly cognitive and scientific approach to understanding social behavior.

A related area is community psychology, which examines psychological and mental health issues on the level of the community rather than using the individual as the unit of measurement.

Social psychology studies how the presence or perceived presence of others impacts human behavior, emotion, and cognition.


text:
Horticulture/Cyperus esculentus

Cyperus esculentus (Chufa Sedge, Yellow Nutsedge, Tigernut Sedge, Earthalmond) is a species of sedge native to warm temperate to subtropical regions of the Northern Hemisphere. Some cultivars are grown for the "nuts" (root tubers), but it is most frequently encountered as a weed of lawns and gardens, and can be easily spotted in lawns two or three days after mowing because it regrows much faster than most turf grasses.

Description
Yellow nutsedge is a perennial, grass-like plant, growing to 90 cm tall, with solitary stems arising from small tubers. The stems are triangular in section, and bear slender leaves 3–10 mm wide. The flowers of the plant are distinctive, with a cluster of flat oval seeds surrounded by four hanging leaves positioned 90 degrees from each other. The plant foliage is very tough and fibrous, and is often mistaken for a grass.

The root system can be extensive, with tubers and roots being interconnected to each other to a depth of 50 cm or more. The tubers are connected by fragile roots that are extremely prone to snapping when pulled on, making the plant extremely difficult to remove with its entire root system intact.

Uses and cultivation
The tubers are edible, with a slightly sweet, nutty flavour, compared to the more bitter tasting tuber of the related Cyperus rotundus (Purple Nutsedge). They are quite hard and are generally soaked in water before they can be eaten. They have various uses, in particular they are used in Spain to make Horchata. They are sometimes known by their Spanish name, "chufa".

The tubers were originally cultivated by Ancient Egyptians in the Nile Valley; their cultivation was subsequently extended throughout other areas with temperate climate and fertile soil. Presently, they are mainly cultivated - at least for extended and common commercial purposes - in Spain, almost exclusively in the Valencia region. See the wikipedia article on Cyperus esculentus for nutritional information.

title: Horticulture/Cyperus esculentus


text:
Horticulture/Solidago

The goldenrods (Solidago spp.) are members of a genus of plants in the famile ../Asteraceae/, native to North America. They are commonly found as wildflowers in their native range, but some are also grown as garden plants. Some species are also rather serious invasives in other parts of the world.

About 80 perennial species make up the genus Solidago, most being found in the meadows and pastures, along roads, ditches and waste areas in North America, and a few have naturalised in Europe.

The different species are difficult to distinguish. Probably due to their bright, golden yellow flower heads blooming in late summer, the goldenrod is often unfairly blamed for causing hay fever in humans. The pollen causing these allergy problems is mainly produced by ../Ambrosia/ (Ragweed), which blooms at the same time as the goldenrods, but the goldenrod pollen is too heavy and sticky to be blown far from the flowers.

Description
They have slender stems, usually hairless but S. canadensis shows hairs on the upper stem. They can grow to a length between 60 cm and 1.5 m. The leaves are alternate, simple, and linear to lanceolate. Their margins are usually finely to sharply serrated. Flowers are small heads borne in large showy inflorescences.

Growing conditions
The only common thread among the various species of goldenrods is that they require full sun. Otherwise, they are naturally found everywhere from road cuts to wetlands, and everywhere in between. Some species will "flop" if growing in overly fertile soils.

Varieties

 * A hybrid with aster, known as x Solidaster is less unruly, with pale yellow flowers, equally suitable for dried arrangements.
 * Solidago canadensis was introduced as a garden plant in Central Europe, and is now common in the wild. In Germany, it is considered an invasive species that displaces native vegetation from its natural habitat.

Uses
In the garden, goldenrods are grown for their showy yellow blooms borne from midsummer to late autumn, depending on the species. Most plants are too coarse for garden use, but many cultivars have been selected for dwarf size and finer foliage.

Goldenrods bloom in late summer and early fall and some species produce abundant nectar when moisture is plentiful before bloom, and the bloom period is relatively warm and sunny. Honey from goldenrods often is dark and strong due to admixtures of other nectars. However when there is a strong honey flow, a light (often water white), spicy-tasting Monofloral honey|honey is produced. While the bees are ripening the honey there is a rank odor and taste, but finished honey is much milder.

Goldenrods are a preferred food of the monarch butterfly during their fall migration southward, and can be planted to attract them.

Propagation
Goldenrods divide easily, and can become weedy if allowed to go to seed.

Caution should be taken when planting goldenrods because they are allelopathic, and can kill neighboring plants. One species, Solidago canadensis, is invasive in Germany and China, in part due to its allelopathic trait.

title: Horticulture/Solidago


text:
Algorithm Implementation/Sorting/Counting sort

JavaScript
JavaScript implementation with simple HTML test page

Python
''Note: that this implementation does not need the temporary scratch array. It sorts in-place, except it needs the counting array. The emit step does not copy original values from the input array but creates new ones.''

Ruby
Unlike the Python version, this doesn't sort in-place, but returns a new array.

Implementazioni di algoritmi/Counting sort


text:
Talk:Algorithm Implementation/Sorting/Counting sort

Transwiki from English Wikipedia
This page was created with content from Counting Sort.

Article history
* (cur) (last) 15:13, 14 September 2006 Booyabazooka (Talk | contribs) (transwiki code to wikibooks) * (cur) (last) 02:39, 14 September 2006 Torsten Will (Talk | contribs) (removed Basic implementation, does not contribute to Algorithm understanding, makes page too long, see http://en.wikipedia.org/w/index.php?title=Counting_sort&oldid=37075790) * (cur) (last) 02:22, 14 September 2006 Torsten Will (Talk | contribs) m (→Python) * (cur) (last) 02:18, 14 September 2006 Torsten Will (Talk | contribs) (added Python implementation) * (cur) (last) 11:37, 27 August 2006 SmackBot (Talk | contribs) m (ISBN formatting &/or general fixes using AWB) * (cur) (last) 20:31, 31 July 2006 198.37.32.215 (Talk) * (cur) (last) 20:31, 31 July 2006 198.37.32.215 (Talk) * (cur) (last) 06:21, 22 July 2006 202.53.76.18 (Talk) (→External links) * (cur) (last) 03:31, 18 July 2006 195.7.17.85 (Talk) * (cur) (last) 06:28, 14 July 2006 Deco (Talk | contribs) m (Reverted edits by 202.53.72.51 (talk) to last version by Agabrielson) * (cur) (last) 23:06, 13 July 2006 202.53.72.51 (Talk) (→External links) * (cur) (last) 19:32, 5 July 2006 Agabrielson (Talk | contribs) (C code did not present a stable sorting algorithm.) * (cur) (last) 12:13, 30 June 2006 AntiVandalBot (Talk | contribs) m (BOT - rv 203.128.15.4 (talk) to last version by Scullder) * (cur) (last) 12:13, 30 June 2006 203.128.15.4 (Talk) (→Sample implementations) * (cur) (last) 16:49, 13 June 2006 Scullder (Talk | contribs) m (fr:Tri comptage) * (cur) (last) 05:46, 12 June 2006 A5b (Talk | contribs) m (link to ru:~) * (cur) (last) 12:48, 8 June 2006 Pce3@ij.net (Talk | contribs) m (→Visual Basic - update code) * (cur) (last) 09:35, 8 June 2006 Pce3@ij.net (Talk | contribs) m (→Visual Basic version - gramr) * (cur) (last) 09:33, 8 June 2006 Pce3@ij.net (Talk | contribs) (→RESULTS: (Counting sort - Visual Basic) - add Class determination) * (cur) (last) 09:20, 8 June 2006 Pce3@ij.net (Talk | contribs) (→RESULTS: (Counting sort - Visual Basic)) * (cur) (last) 07:02, 8 June 2006 Pce3@ij.net (Talk | contribs) m (→RESULTS: (Counting sort - Visual Basic) - corr) * (cur) (last) 06:59, 8 June 2006 Pce3@ij.net (Talk | contribs) (→RESULTS: (Counting sort - Visual Basic)) * (cur) (last) 06:57, 8 June 2006 Pce3@ij.net (Talk | contribs) (→Visual Basic version - add c++ slope values) * (cur) (last) 06:44, 8 June 2006 Pce3@ij.net (Talk | contribs) m (→Visual Basic version - add link) * (cur) (last) 06:43, 8 June 2006 Pce3@ij.net (Talk | contribs) (→Sample implementations - add Visual Basic version) * (cur) (last) 09:41, 3 June 2006 210.212.5.146 (Talk) (→C) * (cur) (last) 05:40, 24 May 2006 Pako (Talk | contribs) m   * (cur) (last) 20:19, 11 May 2006 Booyabazooka (Talk | contribs) (Category:Stable sorts) * (cur) (last) 18:52, 30 April 2006 Giftlite (Talk | contribs) (wikify) * (cur) (last) 18:50, 30 April 2006 70.48.94.22 (Talk) (Fixed a typo (pigeonhole sort was spelt wrong) and linked it.) * (cur) (last) 08:20, 30 April 2006 Saurabhc (Talk | contribs) * (cur) (last) 15:44, 15 February 2006 81.76.123.165 (Talk) (Added external link) * (cur) (last) 06:45, 13 February 2006 Zippedmartin (Talk | contribs) (→Sample implementations - Remove java imp. - makes page much bigger and is much the same as the c)   * (cur) (last) 09:17, 28 January 2006 84.92.183.124 (Talk) (Fix range error, remove unused variable and irrelevant comment) * (cur) (last) 05:46, 28 January 2006 84.92.183.124 (Talk) (Fix range error and remove unused variable, j)   * (cur) (last) 10:17, 21 January 2006 85.157.105.210 (Talk) (fi) * (cur) (last) 18:56, 6 December 2005 Deco (Talk | contribs) (→Characteristics of counting sort - Link selection algorithm for min/maxfinding) * (cur) (last) 22:18, 28 November 2005 Deco (Talk | contribs) (Link comparison sort) * (cur) (last) 23:44, 18 November 2005 Deco (Talk | contribs) m (Fix year) * (cur) (last) 17:11, 18 November 2005 Deco (Talk | contribs) (Better CLRS ref) * (cur) (last) 17:10, 18 November 2005 Deco (Talk | contribs) (Better CLRS ref) * (cur) (last) 04:56, 18 November 2005 Deco (Talk | contribs) (Add Knuth reference) * (cur) (last) 14:35, 24 September 2005 YurikBot (Talk | contribs) m (robot Adding: he) * (cur) (last) 14:43, 19 September 2005 206.191.221.191 (Talk) (→Java) * (cur) (last) 01:52, 12 September 2005 70.157.50.127 (Talk) (→Java) * (cur) (last) 13:30, 16 July 2005 RobotE (Talk | contribs) m (robot Adding: de, nl) * (cur) (last) 17:43, 5 July 2005 132.170.48.230 (Talk) (→Java) * (cur) (last) 12:20, 25 June 2005 82.48.80.158 (Talk) (+it:) * (cur) (last) 09:56, 13 June 2005 151.188.16.20 (Talk) * (cur) (last) 12:47, 5 May 2005 83.17.149.194 (Talk) * (cur) (last) 11:20, 27 April 2005 Aenar (Talk | contribs) (consistency) * (cur) (last) 10:58, 27 April 2005 Aenar (Talk | contribs) m (→Characteristics of counting sort - tweaking sentence) * (cur) (last) 10:52, 27 April 2005 Aenar (Talk | contribs) (→Characteristics of counting sort - rewrite unclear text) * (cur) (last) 23:12, 20 April 2005 Aenar (Talk | contribs) (Correction and clarification. There are some implicit assumptions (i.e. that indexex of C run from 0) that should be made explicit.) * (cur) (last) 18:49, 20 April 2005 Aenar (Talk | contribs) (Commented C code) * (cur) (last) 18:15, 20 April 2005 Aenar (Talk | contribs) (Done cleanup (hope I didn't delete too much information).) * (cur) (last) 17:27, 20 April 2005 Aenar (Talk | contribs) (Rewriting article (not finished)) * (cur) (last) 04:51, 18 March 2005 67.39.9.8 (Talk) (Fixed typo.) * (cur) (last) 02:49, 8 March 2005 Bayard (Talk | contribs) * (cur) (last) 06:04, 8 June 2004 Smyth (Talk | contribs) * (cur) (last) 18:27, 31 May 2004 Fredrik (Talk | contribs) m (wikify) * (cur) (last) 10:11, 30 May 2004 Timwi (Talk | contribs) (Category:Sort algorithms) * (cur) (last) 06:48, 27 April 2004 Frencheigh (Talk | contribs) m   * (cur) (last) 06:47, 27 April 2004 Frencheigh (Talk | contribs) m    * (cur) (last) 23:15, 31 March 2004 Cyde (Talk | contribs) (Beefed up the explanation of the counting sort, added how to handle strings and negative numbers.) * (cur) (last) 15:28, 22 February 2004 Gamma (Talk | contribs) * (cur) (last) 15:26, 22 February 2004 Gamma (Talk | contribs) (wikif.) * (cur) (last) 23:59, 28 August 2003 202.141.64.82 (Talk) * (cur) (last) 09:23, 16 February 2003 Zundark (Talk | contribs) (remove more pseudo-C code from 24.60.20.159) * (cur) (last) 07:38, 8 February 2003 Maveric149 (Talk | contribs) m (Reverted to last edit by Ducker) * (cur) (last) 07:38, 8 February 2003 Bolero (Talk | contribs) * (cur) (last) 07:37, 8 February 2003 Ducker (Talk | contribs) * (cur) (last) 07:37, 8 February 2003 Bolero (Talk | contribs) * (cur) (last) 18:55, 8 November 2002 128.197.12.3 (Talk) * (cur) (last) 18:53, 8 November 2002 128.197.12.3 (Talk) * (cur) (last) 18:52, 8 November 2002 128.197.12.3 (Talk) * (cur) (last) 18:44, 8 November 2002 128.197.12.3 (Talk) * (cur) (last) 18:41, 8 November 2002 128.197.12.3 (Talk) * (cur) (last) 18:40, 8 November 2002 128.197.12.3 (Talk) * (cur) (last) 21:23, 29 October 2002 207.172.11.233 (Talk) * (cur) (last) 09:47, 29 October 2002 24.60.20.159 (Talk) * (cur) (last) 09:39, 29 October 2002 24.60.20.159 (Talk) m   * (cur) (last) 17:14, 6 October 2002 24.60.20.159 (Talk) m    * (cur) (last) 17:13, 6 October 2002 24.60.20.159 (Talk) * (cur) (last) 19:30, 5 October 2002 24.60.20.159 (Talk) m   * (cur) (last) 19:26, 5 October 2002 24.60.20.159 (Talk) m    * (cur) (last) 19:25, 5 October 2002 24.60.20.159 (Talk)

Is python part in place ? m = maxval + 1 count = [0] * m              # init with zeros

C++ implementation
The C++ implementation has several shortcomings. First of all, the following line is not standard conforming, as the function  does not return a value (it is  ).

A correct program, I suppose, may be obtained by replacing that statement with the following two statements:

Second, that function can be used only to sort arrays of integers. In most cases, a programmer wants to sort an array of records (structs or classes), in which the integer key is only one of the fields.

Third, that function necessarily allocates memory, even when the programmer could have already allocated the needed buffers.

Therefore I am going to replace that function with three function templates that I wrote that, I think, may satisfy real programming needs. --Carlo.milanesi (talk) 17:29, 8 June 2008 (UTC)


text:
Teachers' Toolbox/Introduction

=Why this book?= Standing in front of a class in a class room or auditorium, you often end up doing what you're used to do, because you know it works to some extent, and for many that means starting doing the good old fashioned lecture. This can often be very good, at times wonderfully inspiring but sadly very often disastrously boring, depending on both the teacher and the students. Some people are trying out new ways of teaching, and often with very good results.

As always with new and evolving things, it's difficult to communicate the experiences with new methods to other teachers. Thick books are being written on ways to facilitate learning, but they often have a rather theoretical scope -where the teacher often simply needs a quick overview of methods and tools that could be used in class, and what people have experienced with these, so it's easy to find a suitable method that they can adapt to their specific needs.

This wiki book 'The Teachers' Toolbox' tries to provide a forum where we can get an overview of new teaching methods. Here you can write about ways of teaching you have tried out and you can read about others experiences too.

=How YOU can contribute to the book=

Feel free to contribute and edit the book - thats why its in the wiki system. It can be a good idea to practice before doing serious changes - and do use the preview function before submitting :-)

=The Teachers Toolbox History= The Teachers Toolbox wiki book was started by Kristian Molhave(wiki user page) 4. Apr. 2006. In the coming time I'll begin adding more material to the book. I do hope others will begin to join the work too :-)

=Other resources=

Wiki

 * Wikibooks' Education bookshelf
 * Wikiversity
 * Developing Learning Objectives
 * Bloom's Taxonomy
 * Classroom Behavior Management
 * Classroom Management and Discipline
 * Improving Reading and Writing Skills
 * Instructional Technology
 * Learning Theories
 * Skills about Teaching

Outside wiki

 * Inspiringteachers.com

title: Teachers' Toolbox/Introduction