OpenLLM-France/wikimedia huggingface dataset:
# More C++ Idioms/Preface
## Preface

* C++ has indeed become too "expert friendly" -- Bjarne Stroustrup, The Problem with Programming, Technology Review, Nov 2006.
* Stroustrup's saying is true because experts are intimately familiar with the idioms in the language. With the increase in the idioms a programmer understands, the language becomes friendlier to them. The objective of this open-content book is to present modern C++ idioms to programmers who have moderate level of familiarity with C++, and help elevate their knowledge so that C++ feels much friendlier to them. It is designed to be an exhaustive catalog of reusable idioms that expert C++ programmers often use while programming or designing using C++. This is an effort to capture their techniques and vocabulary into a single work. This book describes the idioms in a regular format: Name-Intent-Motivation-Solution-References, which is succinct and helps speed learning. By their nature, idioms tend to have appeared in the C++ community and in published work many times. An effort has been made to refer to the original source(s) where possible; if you find a reference incomplete or incorrect, please feel free to suggest or make improvements.
* The world is invited to catalog reusable pieces of C++ knowledge (similar to the book on design patterns by GoF). The goal here is to first build an exhaustive catalog of modern C++ idioms and later evolve it into an idiom language, just like a pattern language. Finally, the contents of this book can be redistributed under the terms of the GNU Free Documentation License.
* Aimed toward: Anyone with an intermediate level of knowledge in C++ and supported language paradigms
# Object Generator
### Intent

To simplify creation of objects without explicitly specifying their types. (This is not the factory method pattern)

### Motivation

In C++ template programming, types of objects can get really large and incomprehensible even in small programs. For example, the following type (Wrapper) is a standard unary function object that wraps the member function read_line in class File.
Reading a collection of files using the for_each STL algorithm, without object generators, looks like the following:
The above code is pretty much unreadable and more bloated than necessary. Even typedefs don't improve readability as placeholder typedefs like Wrapper are distracting. The object generator idiom alleviates the situation.

### Solution and Sample Code

In the object generator idiom, a template function is created whose only job is to construct a new object from its parameters. It is based on a useful property of function templates which class templates don't have: The type parameters of a function template are deduced automatically from its actual parameters. For example, consider a simple object generator defined in STL: make_pair.
make_pair returns an instance of the pair template depending on the actual parameters of the make_pair function. For example, make_pair(1,1.0) creates an object of type: std::pair<int, double> by automatically deducing the types of the objects being passed to the object generator function. make_pair is particularly handy in the case where a generated pair object does not need to be stored in a local variable.
The C++ standard library defines several object generators to avoid code bloat. std::bind2nd and std::mem_fun are two such standard object generators that can be used to avoid code bloat in the example shown in the motivation section above.

### Known Uses

C++ standard library (mem_fun, make_pair, bind1st, bind2nd etc.)

### Related Idioms

Type Generator

### References

Object Generator
# Parameterized Base Class
### Intent

To abstract out an aspect in a reusable module and combine it in a given type when required.

### Also Known As

* Mixin-from-below
* Parameterized Inheritance

### Motivation

A certain aspect can be abstracted out from requirements and be developed as templates (e.g., object serialization). Serialization is a cross-cutting concern that many classes/POD types in an application may have. Such a concern can be abstracted out in a manageable reusable module. By addition of an aspect, substitutability with the original type is not broken so another motivation is to have a IS-A (public inheritance) or WAS-A (private inheritance) relationship with the type parameter.

### Solution and Sample Code

Serializable <T> can be used polymorphically as a T as well as a ISerializable. Above example works correctly only if T is a user-defined POD type without pointers.

### Related Idioms

* Curiously Recurring Template Pattern
# Polymorphic Value Types
### Intent

Support run-time polymorphism of value types without requiring inheritance relationship.

### Also Known As

Run-time Concept

### Motivation

Sometimes, one wants a type-erased container for types that implement some interface.

### Solution and Sample Code

By defining a wrapper class template that accepts types satisfying an interface and implements that interface itself by forwarding, but inherits from a base class that requires that derived classes implement that interface, then wrapping the wrapper class template and base class in another class, that class can exhibit polymorphic behavior without the stored values having an is-a relationship with an interface. The below class is a type-erased wrapper that stores any type that implements copying, equality comparison, and hashing. Its introduction into a codebase does not require any changes to types if they already implement the interface.

### Known Uses

* std::function
* std::move_only_function
* Adobe Poly Library

### Related Idioms

* Type Erasure

### References

* Sean Parent: Value Semantics and Concepts-based Polymorphism @ C++ Now! 2012, Aspen, CO
* Inheritance Is The Base Class of Evil
# Policy Clone
### Intent

Instantiate a policy class with many different possible types without ad-hoc limitations on type of the policy classes.

### Also Known As

* Meta-function wrapper idiom

### Motivation

Highly reusable, flexible and extensible classes can be built using policy based class design techniques. Sometimes, the host class of the policies needs to make an exact replica of one of its policies which is instantiated with a different type parameter. Unfortunately, the writer of the host class template does not know the template name to instantiate beforehand. Moreover, the policy class may or may not be a template in the first place. If it is a template, then the host class may not know how many minimum type parameters are required to instantiate the parameterized policy class. If the policy class is not a template, it may not be able to participate as a policy class. This situation is quite analogous to the situation in the Factory Method (GoF) pattern where type of the object to be created is not known a priori.

### Solution and Sample Code

A member template struct (called rebind) is used to pass a different type parameter to the policy class template. For example,
Here, the Container template needs a replica of the allocation policy it is instantiated with. Therefore, it uses the rebind mechanism exposed by the NiftyAlloc policy. The type Alloc::template rebind<long>::other is same as NiftyAlloc<long>. Essentially, it says, "I don't know what kind of allocator this type is, and I don't know what it allocates, but I want an allocator just like it that allocates longs." Using concepts（it has been removed from C++0x), the Vector class can write type concept that checks whether the Alloc policy type supports rebind concept.
To keep the compiler happy, we have to use both the keywords typename and template in the ClonePolicy typedef. The rule is as follows: If the name of a member template specialization appears after a ., ->, or :: operator, and that name has explicitly qualified template parameters, prefix the member template name with the keyword template. The Keyword typename is also necessary in the typedef because "other" is a type, not a variable.

### Known Uses

* Standard Template Library
* Compilers that do not support template template parameters

### Related Idioms

Meta-function wrapper idiom is a more powerful idiom than policy Clone. Policy Clone idiom indicates its purpose in a more abstract fashion than meta-function wrapper. The rebind template is essentially the meta-function wrapper.

### References

* Modern C++ Design - by Andrei Alexandrescu.
* C++ Understand rebind
# Open Education Handbook/Education: traditional & open

The full effect of open education is yet to be seen. It is likely that the cultural shift that is needed for open education to reach its potential will take time, and despite the speed of change in the technology area open education is still in its infancy.
However studies have been carried out to gauge the effect of Open Educational Resources (OER) use on teaching and learning. The Jisc OER Impact Study was conducted between November 2010 and June 2011 by a team from the University of Oxford. It concluded in July 2011, reporting that the main impact factors of OER are pedagogic, attitudinal, logistical and strategic.
Some argue that OER have so far failed to reach their potential. The paper Ten Years Later: Why Open Educational Resources Have Not Noticeably Affected Higher Education, and Why We Should Care notes that significant adoption hurdles to OER exist, including discoverability, quality control, failure to organise and acquisition.
One interesting area for discussion is the affect open online courses has on closed courses through the release of 'solutions' and 'answers'. Some open courseware providers specify that solutions to problems should not be shared online - but of course whether it is specified or not people share solutions, primarily with good intentions and for good reason. Jasmine Tsal talks about the "unspoken paradoxes between a closed, formal education and its simultaneous attempt to be “open”. Jasmine offers up three questions for discussion:
* How does a school reconcile the consequences of making a course open?
* Should a school rethink its policy on cheating?
* Should a school reflect upon the nature of its assignments?
Arguably the full impact of the open education movement has yet to be felt in traditional education. The OER Research Hub is the largest project collecting data on this topic and will be releasing reports in 2015.

### Further resources

* The Battle for Open - a perspective by Martin Weller
* An open education not ready to be open: Reflections on the tensions between open education and traditional schooling by Jasmine Tsal
* Traditional vs. Open Education - Discussion from Future of Technology in Education (FOTE) conference
* Why are schools locked shut most of the time? by Terry Loane
# Open Education Handbook/Frequently Asked Questions (FAQ)
## Is fair dealing/use equivalent to OER?

No. Fair dealing and fair use rights are critical, but that is not the same as OER. See the OER definition.

## Can OER be used to train teachers?

Yes, and this a key activity especially in the developing world.

## Is a MOOC an OER?

MOOCs can be OERs if and only if their content is free to access and openly licensed (or public domain) to legally allow the '4 Rs' (reuse, redistribute, revise, remix).

## What is the role of OER in open pedagogy/ open learning?

An open learner is an individual who embraces open technologies and approaches in their learning. An open learner model a type of learner model that encourages learner autonomy through self-awareness and self-regulation of the learning process.

## How does policy relate to open education?

Open policies support the adoption and development of OER and OER uptake. They can help establish climates where open practices can have impact.

## What support exists for open policy/policies?

Creative Commons, OKFN, SPARC and many other open advocates are building an Open Policy Network to support governments, systems and institutions as they create, adopt and implement open policies.

## What is an open practitioner?

The term 'open practitioner' isn't widely used but suggests an educator who embraces open technologies and approaches in their teaching.

## What is Open Accreditation?

Open accreditation is about awarding participation in new types of education. Open Badges are an example of dealing with accreditation, but you can also think about how MOOC participation can be awarded to make it more acceptable as part of a more traditional (eg. university) education. Other open assessment ideas include e-assessment, portfolios/diaries, PLEs, self-evaluation and learner created content.

## What is the difference between open education and open learning?

Open learning is a term used to describe activities that either enhance learning opportunities within formal education systems or broaden learning opportunities beyond formal education systems. It often uses open education elements - such as open educational resources - but typically occurs within formal education infrastructure while open education per se is arguably unrestricted to formal learners.
# Open Education Handbook/Benefits of open education

There are many organisations, groups and individuals who can potentially benefit from open education and open educational practices.
The OER Research Hub project investigates some of the key claims made about the benefits of OER and open education. Their research hypotheses provides a good overview of the potential benefits.
* Use of OER leads to improvement in student performance and satisfaction
* People use OER differently from other online materials
* OER widen participation in education
* Use of OER is an effective method for improving retention for at-risk students
* Use of OER leads to critical reflection by educators, with evidence of improvement in their practice
* OER adoption brings financial benefits for students/institutions
* Informal learners use a variety of (quality) indicators when selecting OER
* Informal learners develop their own forms of study support
* Open education acts as a bridge to formal education
* OER use encourages institutions to change their policies
* Informal assessments motivate learners using OER
The latest evidence for these claims can be reviewed at OER Impact Map.
Much has been written about more specific instances where open education approaches can bring benefit.
The Commonwealth of Learning report Benefits and Challenges of OER for Higher Education Institutions notess that: "anecdotal evidence suggests that OER may improve educational practices, coherence across courses, technical quality and research into pedagogy; facilitate technical improvements and the development of high quality and shareable images; and improve mechanisms for accreditation and external endorsement. Survey responses suggest that OER does not reduce materials development costs directly, but instead is still requiring additional funding. However, OER may indirectly increase the number of registrations thereby increase tuition fees; lower some of the marketing costs; and enable a new business model through offering services around OER."
Institutions have also benefited from open data and transparency that can lead to better funding and infrastructure.
The Open Michigan report Open Educational Resources: Benefits for Faculty and Students argues that openly-licensed learning materials are easy to find and access, encouraging more independent and flexible learning opportunities for students. OER courses allow students to explore materials before enrolling, making them better prepared before they arrive in the classroom.
Open education has given access to those who previously had no access to educational materials, resources and practices. This means that someone can study using a Massively Open Online Course (MOOC) or OER generally without having to attend a formal learning institution.

### Further resources

* Benefits of openness in education - wiki for Open Education Summit 2012
# Open Education Handbook/Assessing OER quality

Naturally there are concerns about the quality of OER because they are typically made available for free. Users may worry about the source of a resource; for example, whether the resource was created by a legitimate institution or knowledgable individual. Institutions may worry that releasing materials exposes flaws in teaching practices or materials. Many argue that the transparency of process will result in better quality resources than those developed in a closed environment.
Jisc infokit suggests the following criteria for assessment of quality:
* Accuracy
* Reputation of author/institution
* Standard of technical production
* Accessibility
* Fitness for purpose
There is also a role for subject specialists (educators and librarians) in assessing the quality and suitability of a particular resource.
If a resource can be improved, it should be improved: and then re-released on an open licence so others can benefit from better quality OER.

### Further resources

* Open educational resources Infokit: Quality
* OER Quality (David Wiley)
* Quality Assurance Framework by Wiki Educator
* OER Quality Project
* OPAL | Open Educational Quality Initiative
# Perl Programming/Keywords/umask
## The umask keyword

umask sets the umask for the process to EXPRESSION, and it returns the previous value. Without EXPRESSION, it only returns the current umask. The permission bits of rwxr-x--- is represented as three octal digits.
# Perl Programming/Keywords/unless
## The unless keyword

unless is a flow-control keyword. The EXPRESSION is called the condition.

### Example
## See also

* link
# Perl Programming/Keywords/unlink
## The unlink keyword

unlink deletes a LIST of files and returns the number of files successfully deleted. If it is unsuccessful, it it returns false and sets $! to the error number (errno).

### Example
## See also

* link
# Perl Programming/Keywords/undef
## The undef keyword

undef undefines the expression that follows the function. The expression must be an lvalue. This function is used only on scalars, arrays (using @), a hash (using %), a subroutine (using &), or a typeglob (using *).
# Perl Programming/Keywords/unshift
## The unshift keyword

unshift does the opposite of shift. It prepends list to the front of the array and returns the new number of elements in the array.

### Example
## See also

* shift
# Perl Programming/Keywords/ucfirst
## The ucfirst keyword

ucfirst returns EXPRESSION with the first character in uppercase.

### See also

* lcfirst
# Perl Programming/Keywords/unpack
## The unpack keyword

unpack does the opposite of pack by taking a string and expanding it out into a list of values. (In scalar context, only the first value produced is returned.)

### Example
## See also

* pack
# Perl Programming/Keywords/tr
## The tr keyword

tr is the transiteration operator and equivalent to y.

### See also

* y
# Perl Programming/Keywords/truncate
## The truncate keyword

truncate shortens the contents of the file that is opened on FILEHANDLE, or that is named by EXPRESSION, to the specified LENGTH. Raises an exception if truncate isn't implemented on your system and returns true if successful, undef on error.
# Perl Programming/Keywords/uc
## The uc keyword

uc is a function that returns a uppercased version of the EXPRESSION. If no EXPRESSION has been entered, $_ contents are used. The result depends on which code is used for the strings on the system.
# Pinyin/Non-communicable disease

See also
Noncommunicable diseases (NCDs), also known as chronic diseases, are not passed from person to person. They are of long duration and generally slow progression. The four main types of noncommunicable diseases are cardiovascular diseases (like heart attacks and stroke), cancers, chronic respiratory diseases (such as chronic obstructed pulmonary disease and asthma) and diabetes.
Fēi-chuánrǎnxìng jíbìng, yě chēngwéi mànxìngbìng, shì zhǐ bìngqíng chíxù shíjiān cháng, fāzhǎn huǎnmàn de jíbìng. Fēi-chuánrǎnxìng jíbìng de 4 gè zhǔyào lèixíng wéi: Xīnxuèguǎn jíbìng (rú xīnzàngbìng fāzuò hé zhòngfēng), áizhèng, mànxìng hūxīdào jíbìng (rú mànxìng zǔsèxìng fèibìng hé xiāochuǎn) yǐjí tángniàobìng.
# Pinyin/North

The north is the direction of the North Pole. It is the opposite direction of the south.
běifāng shì Běijí d fāngxiàng. tā shì nánfāng d xiāngfǎn fāngxiàng.
# Pinyin/Normal

See also
# Pinyin/North Africa

See also
# Pinyin/No

See also
# Pinyin/Noises

Loud noises can hurt the hearing.
qiarnglieh zaohyin keeyii suunhaih tingjuer.
# Pinyin/North-central

See also
# Pinyin/Long-range

See also
# Pinyin/London

London is the largest city of the United Kingdom. 8.3 million people live in London, which is on the River Thames. It is the capital of the United Kingdom.
London shih Yingguor zuih dah cherngshih, rernkoou 8,300 wahn, weihyur Thames Her, shih Yingguor d shooudu.
London is the biggest city in Western Europe, and the world's largest financial center.
London shih Xi`ou zuih dah cherngshih, shihjieh zuih dah jinrorng zhongxin.
# Pinyin/Lonely

See also
* gudur d
* gudur dy
# Pinyin/Long-lasting

See also
# Openbravo POS/Developer guide
## Contents

* Database - Miscellaneous Details
* Database Diagram
* Database Diagram XML Source
* SQL Queries -Contribute your SQL query here...

## How to compile the stable version

* Download the most recent stable and source packages
* Download javacomm
* Uncompress the sources on a folder. From the binary distribution you only need the jars in /lib
* On Netbeans 5.5 create a new Java Application, uncheck the "create main class" option and give it a name
* Go to the project's properties.
** On sources add the 4 source folders (srcbeans, srcpos, srcerp, srcdata)
** On libraries add all the jars contained on the binary distribution plus javacomm with Add JAR/Folder
** On run set the main class to net.adrianromero.tpv.forms.JFrmTPV
* Build and compile
# Openbravo POS/Introduction

LibrePOS is a point of sale system for retail trade. Supports ESC/POS ticket printers, customer displays and barcode scanners.
LibrePOS uses a relational database as its persistant storage. HSQLDB is used by default but MySQL, Oracle and PostgreSQL are also supported.
The system is internationalised and currently supports Spanish, English, German, Portuguese and Italian. Other languages can be added easily.
It allows for the creation of multiple user accounts. Accounts are assigned roles in order to determine their capabilities. You can have as many roles as you need, but the default ones are Administrator, Manager, User and Guest
The main application window is focused on the sales operation. The interface is designed to operate with a touchscreen so that a keyboard and mouse are not required for normal operation. On the other hand, it is possible to interact fully with the application using a keyboard and mouse without the use of a touchscreen.
The restaurant management features includes a visual display of tables which includes a visual cue to indicate which tables are occupied or free. It is easy to set up this layout to correspond to the physical layout of the restaurant.
There are administration options to manage users, set passwords and configure other aspects of the application.
There are management options to make closings, to manage products and to manage the organization of products into categories. It has reports and charts of products, closings and sales.

## Screenshots

* Sales Window
* Resturant View
* Inventory Report
* Products Edition
* Login
* Sales Chart
# Openbravo POS/Developer guide/Database Diagram XML Source

To edit the Database Diagram, open the following xml with DBDesigner. http://fabforce.net/dbdesigner4/ The xml is provided by Adrian Romero and he said it was slightly outdated as of December 27, 2005. https://sourceforge.net/forum/forum.php?thread_id=1402802&forum_id=434921