返回主页
2005 International Comparison Program (Final Report @ 2008)
目录
2005 Global Purchasing Power Parities and Real Expenditures
Preface
Part I Purchasing Power Parities and 2005 ICP Results
Purchasing Power Parity
Price Level Indexes
The Use of PPPs and Market Exchange Rates for International Comparisons
Reliability of PPPs and GDP Volume Measures
Estimating PPPs for large economies
2005 ICP: Results and Major Findings
The Size of Economies
Measures of Living Standards
2005 Global Purchasing Power Parities and Real Expenditures
Global Purchasing Power Parities and Real Expenditures
2005 International Comparison Program
2005 ICP Global Results: Summary Table
2005, Table 1 World shares of GDP
2008 by the International Bank for Reconstruction and Development/The World Bank
1818 H Street NW
Washington , D.C. 20433
U.S.A.
Internet: www.worldbank.org
This publication is a product of the International Comparison Program, Global Office and the staff of the International
Bank for Reconstruction and Development/The World Bank. The findings, interpretations, and conclusions expressed in
this publication do not necessarily reflect the views of the Executive Directors of the World Bank or the governments they
represent.
Rights and permissions
The material in this publication is copyrighted. Copying and/or transmitting portions or all of this work without permission
may be a violation of applicable law. The International Bank for Reconstruction and Development/The World Bank
encourages dissemination of its work and will normally grant permission to reproduce portions of the work promptly.
For permission to photocopy or reprint any part of this work, please send a request with complete information to
<EMAIL_ADDRESS>2005, Table 1 World shares of GDP
2005 ICP Global Results: Summary Table
Summary of Results and Findings of the 2011 International Comparison Program(@ 2014)
ICP Classification of Final Expenditure on GDP, 2011
Shares in world GDP in PPS, 2011 (%)
GDP per capita, 2011
在过度营销的时代，我们提供“更好的内容”和“更快的速度”。
Retter is Better, WE Create and Deliver Real Value!
中美德日货物进出口统计
各国主要出口产品统计
各国主要进口产品统计
返回页首
Preface
Abbreviations
Summary of Results and Findings of the 2011 International Comparison Program(@ 2014)
This publication presents the results of the 2005 International
Comparison Program (ICP), which was led and
coordinated by the World Bank during 2003–08. The size
and complexity of this important statistical project made
it imperative to distribute the tasks by geographic regions.
Data collection was overseen by regional coordinating agencies,
which compiled the results and produced regional estimates
of purchasing power parities (PPPs). Throughout the
process, the regional coordinators worked closely with the
ICP global office at the World Bank. The strong partnership
with the Eurostat-OECD and its parallel program made it
possible to combine the results from the two efforts for this
publication.
匹克迪 《二十一世纪资本论》
The final step of the ICP has been the linking of regional
results into a global data set so that economic activity and
price levels can be compared between economies in different
regions. These global results were produced using a
new technique known as the “ring comparison.” This publication
comprises the results for 146 economies obtained
through this linking process. The number of participating
economies far exceeds that of previous rounds.
On behalf of the World Bank and the ICP Executive
Board, we would like to thank all those who have contributed
to making the 2005 ICP such a resounding success.
It has been a great team effort. We cannot give credit, in
this limited space, to all of the individuals responsible for
its successful completion. Many are listed in the acknowledgments
that follow. Here we would like to highlight the
efforts of some special groups.
We are very pleased to say that the program has greatly
benefited from the overwhelming support it received from
national statistical offices and other participating agencies.
The success of such a huge and complex undertaking
depends critically on the active cooperation of the agencies
involved in collecting the data in each economy. Some
of the processes we used were new and untested, and the
spirit in which everyone tackled the problems that inevitably
arose in the course of this groundbreaking work has
been truly gratifying.
We would especially like to thank the staff of the regional
coordinating agencies—namely, the African Development
Bank (AfDB), the Asian Development Bank (ADB), Statistics
Canada, the Economic Commission for Latin America
and the Caribbean (ECLAC), the Economic and Social
Commission for Western Asia (ESCWA), the Statistical
Office of the Commonwealth of Independent States (CISSTAT),
the Federal State Statistics Service of the Russian
Federation (Rosstat), and the Bureau of Economic Analysis
(Moscow)—which have invested so much effort into setting
up regional product lists, training statistical office staff
in the concepts underlying PPPs, and addressing the practical
issues associated with collecting and editing the data
and compiling the PPPs and related statistics for each of
the regions. We also want to thank Eurostat and OECD for
providing their experience, expertise, and overall support
for the regional and ring comparisons.
When the United Nations Statistical Commission gave
the go-ahead to this ICP round at its 2002 meeting, it
emphasized that the project had to have a strong governance
structure. The Executive Board was set up to provide
this governance. The Board and its members have had a
major impact on the program, and we would like to thank
them all for their contributions.
The project would not have been such a success without
the invaluable inputs from members of the Technical
Advisory Group. We appreciate the wholehearted and
enthusiastic manner in which they conducted their various
discussions—both at meetings in Washington and via
emails.
在过度营销的时代，我们提供“更好的内容”和“更快的速度”。
Retter is Better, WE Create and Deliver Real Value!
Our special thanks go to the major donors, whose contributions
were so important in bringing the program to
fruition. Contributors to the Global Trust Fund include
the U.K. Department for International Development, the
International Monetary Fund, the Australian Agency for
International Development, and the United Nations Development
Programme. The World Bank made significant contributions
to both the global and regional programs, as did
numerous regional agencies.
We would like to congratulate the global office team
at the World Bank. They have faced many challenges and
obstacles over the past four years or so, but their perseverance
and unwavering commitment to the project have
ultimately helped them overcome all the odds. They have
succeeded not only in producing a very important set of
statistical indicators but also in refining important concepts
underlying international comparisons, developing new tools
to make data collection and compilation easier and more
transparent, and setting up a firm basis on which future
ICPs can be launched.
We hope that users will find the report useful. These
data represent the most comprehensive survey of prices
ever undertaken. As with any statistical exercise, there are
limitations to the data, and these are highlighted in the
report. We welcome any comments and suggestions for
their improvement.
Finally, to everyone involved in this enormous task,
thanks very much for a job well done!
Dennis Trewin
Chairman
ICP Executive Board
Shaida Badiee
Director
Development Data Group
World Bank
返回页首
Part I Purchasing Power Parities and 2005 ICP Results
Introduction: The International Comparison Program and Purchasing Power Parities
2005 ICP Global Results: Summary Table
2005, Table 1 World shares of GDP
The International Comparison Program
The International Comparison Program (commonly known
as the “ICP”) is a worldwide statistical initiative to collect
comparative price data and estimate purchasing power parities
(PPPs) of the world’s economies. Using PPPs instead of
market exchange rates to convert currencies makes it possible
to compare the output of economies and the welfare
of their inhabitants in real terms (that is, controlling for
differences in price levels).
The System of National Accounts, 1993 (SNA93) provides
a common international framework for the measurement
of economic activity. Gross domestic product (GDP)
is the measure most often used to quantify economies’ economic
activity, and GDP and consumption per capita are
basic indicators of economic productivity and well-being.
But the conversion of output or expenditures, measured
in the local currency of one economy, to a common unit of
account for comparison or aggregation with that of other
economies is not a trivial problem. The standard method
has been to use market exchange rates. However, market
exchange rates are determined by the demand for, and supply
of, currencies used in international transactions. They
do not necessarily reflect differences in price levels and may
therefore under- or overstate the real value of an economy’s
output and the standard of living of its residents. In fact, the
prices of many goods and services within economies are
determined in partial or complete isolation from the rest
of the world. Therefore, SNA93 recommends that the real
value of economic activity be determined using purchasing
power parities. The need for a more meaningful tool for
comparing the real domestic product between economies
led to the creation of the International Comparison Program
(ICP) in 1968 and the publication of PPP estimates in
1970. The increasing use of PPPs by researchers, businesses,
and international institutions has made the ICP a truly
global program now covering more than 140 economies.
This report brings together the results of two separate
PPP programs. The first is the global ICP program conducted
by the ICP global office within the World Bank, which provided
overall coordination for the collection of data and
calculation of PPPs in more than 100 (mostly developing)
economies. The program was organized into five geographic
areas: Africa, Asia-Pacific, Commonwealth of Independent
States, South America, and Western Asia. Regional agencies
took the lead in coordinating the work in the five regions.
In parallel, the Statistical Office of the European Communities
(Eurostat) and the Organisation for Economic
Co-operation and Development (OECD) conducted
their 2005 PPP program, which comprised 46 economies.
德国人偏爱俄罗斯
Eurostat covered 37 economies: the 25 European Union
(EU) member states; the European Free Trade Association
(EFTA) economies (Iceland, Norway, and Switzerland); and
Albania, Bosnia-Herzegovina, Bulgaria, Croatia, Macedonia,
Montenegro, Romania, Serbia, and Turkey. The OECD
part of the program included 9 other economies: Australia,
Canada, Israel, Japan, the Republic of Korea, Mexico, New
Zealand, the Russian Federation, and the United States.
The main reasons for conducting the ICP on a regional
basis are that the products to be priced are more homogeneous
within regions, the expenditure patterns are likely
to be more similar, and language differences are reduced.
Moreover, dividing the ICP organization among a number
of regional offices in relatively close proximity to the economies
they are coordinating provides operational benefits.
The ICP global office has combined the results from
each of the five regions with those from the Eurostat-
OECD PPP program into an overall global comparison, so
that results for all participating economies can be compared
directly. The ring comparison (described on page 159, was
developed specifically to link the regional PPPs without
changing the relative results within a region (see page 163,
“Fixity”). In other words, the starting point was the final
results computed by each region. The ring comparison provided
regional scalars by which economies’ data at each
level of aggregation were converted to a global level (that
is, the relative comparisons between economies within a
region remained the same in the global comparison). For
that reason, the global PPP results were not reviewed by
national statistical authorities before publication.
(Appendix A provides a more detailed overview of
the history of the ICP and its relationship to the Eurostat-
OECD program. Appendix B describes the governance and
the management of the ICP and how that related to the
Eurostat-OECD program. Appendix C shows the Eurostat-
OECD classification of expenditures on the GDP used by
both programs as a starting point to select products to be
priced and also as the basis for the first level at which PPPs
are estimated.)
2011 ICP 国家分类（地图）
中美德日货物进出口统计
各国主要出口产品统计
各国主要进口产品统计
返回页首
Purchasing Power Parity
Abbreviations
A purchasing power parity between two countries, A and
B, is the ratio of the number of units of country A’s currency
needed to purchase in country A the same quantity
of a specific good or service as one unit of country B’s currency
will purchase in country B. PPPs can be expressed in
the currency of either of the countries. In practice, they are
usually computed among large numbers of countries and
expressed in terms of a single currency, with the U.S. dollar
(US$) most commonly used as the base or “numeraire”
currency.
Take the familiar “Big Mac Index” as an example. If a
Big Mac hamburger costs 4.00 U.S. dollars in the United
States and 4.80 euros in France, then the PPP for a Big Mac
from the French viewpoint is 0.83 U.S. dollars to the euro.
From the American viewpoint, it is 1.20 euros to the U.S.
dollar. This means that for every euro spent on Big Macs in
France, it would be necessary to spend 0.83 U.S. dollars in
the United States to obtain the same quantity and quality
of Big Macs. Conversely, for every U.S. dollar spent on Big
Macs in the United States, it would be necessary to spend
1.20 euros in France to obtain the same quantity and quality
of Big Macs.
The Big Mac is a single, standard product. The aim of the
ICP is to produce PPPs that take into account the relative
prices among many countries for a broad range of goods
and services, including not only consumer products but
also capital and government expenditures, which together
make up GDP.
2005, Table 1 World shares of GDP
2005 ICP Global Results: Summary Table
返回页首
Price Level Indexes
Comparing PPPs at the level of GDP with market exchange
rates provides a measure of the average cost of goods and
services in one economy when purchased using currencies
converted at prevailing exchange rates. The ratio of a PPP
to a corresponding market exchange rate is called a price
level index (PLI). A PLI of 100 indicates that price levels
are the same as those in the base country or the world average.
The PLI with the United States = 100 is simply the
PPP divided by the exchange rate to the United States. The
PLI with the world = 100 is the PLI to the United States
multiplied by the ratio of the world total PPP expenditures
to world total exchange rate expenditures for each level of
aggregation. The detailed data tables show the PLI for the
world = 100 to remove the effect of the exchange rate of
the U.S. dollar.
Returning to the Big Mac example, if the market
exchange rate is 1.00 U.S. dollar to 0.67 euros, then the
PLI for a Big Mac with the United States as the base is
179 (1.20/0.67*100). This indicates that given the relative
purchasing power of the U.S. dollar and the euro, a Big Mac
costs 79 percent more in France than in the United States.
Travelers exchanging their dollars to euros would notice
this immediately.
PPPs between any pair of countries change slowly,
whereas market exchange rates can change quickly. Sudden
changes in PLIs result mainly from changes in market
exchange rates. When market exchange rates change rapidly,
a PLI for a country could change too in a short time, indicating
that a country that was relatively cheap has now become
relatively expensive compared with the base country.
2005, Table 1 World shares of GDP
2005 ICP Global Results: Summary Table
返回页首
The Use of PPPs and Market Exchange Rates for International Comparisons
在过度营销的时代，我们提供“更好的内容”和“更快的速度”。
Retter is Better, WE Create and Deliver Real Value!
PPPs are the preferred means of converting the value of
the GDP and its components to a common currency. They
enable cross-country comparisons of the sizes of economies,
average consumption levels, poverty rates, productivity,
and the use of resources. However, PPPs should not be
used for all international comparisons; for example, market
exchange rates should be used to measure international
trade, capital flows, or the values of foreign debt.
PPPs adjust for differences in price levels between
economies, which may not be reflected in market exchange
rates, at least in the short run. Market exchange rates are
the prices at which currencies trade in international markets.
Because developing economies tend to have relatively
lower wages leading to lower prices for nontraded goods
and services, a unit of local currency has greater purchasing
power within a developing economy than it does in
the global market. Consequently, the GDP of a developing
economy and the consumption of its residents will
typically be underestimated if market exchange rates are
used to compare their value with those of high-income
economies. Although differences in price levels are generally
less pronounced among economies at similar levels of
development, large and rapid movements of exchange rates
can alter the apparent size of economies or the perceived
welfare of their residents. For example, the Euro exchange
rate has changed from US$ 0.853 in October 2000 to US$
1.562 in March 2008, but that does not mean that the welfare
of Euro area countries has changed accordingly in relation
to the United States in that time.
There is no need to convert from national currencies to
a common currency (whether by market exchange rates or
PPPs) when calculating growth rates for a single economy.
However, in computing regional (or world) growth rates, the
sizes of the economies matter: national GDPs and aggregates
are first converted to a common currency and then summed
to regional (or world) totals, from which growth rates are
computed. The appropriate conversion factor is provided
by PPPs. Developing economies have often had (at least
in the past decade) higher rates of economic growth than
developed economies. As a result, the global growth rates
computed with PPP-based activity levels tend to be higher
than those computed using market exchange rates. The reason
is that the developing economies have a higher weight
in the PPP-based regional totals (both levels and growth
rates) than those based on market exchange rates.
The initial rounds of the ICP in the 1970s focused
mainly on what are referred to as “volumes” or “real expenditures”
of GDP, its major components, and their per capita
estimates. PPPs were seen mainly as providing a steppingstone
from national accounts expressed in national currencies
to volumes expressed in a common currency. In recent
times, economic analysts have shown increasing interest in
PPPs in their own right as a measure of relative price levels
between economies.
A major use of the PPP results is the estimation of the
widely used “dollar-a-day” international poverty threshold.
PPP results also enter the estimation of the United Nations
Human Development Index and Gender Empowerment
Measure, allow the World Health Organization to use health
expenditures per capita to assess health inequality across
economies, and provide the basis for international organizations
to design effective aid programs. The European
Commission relies on PPP-based indicators to allocate the
Structural and Cohesion Funds across member economies.
Purchasing power measures are also useful for policy
makers at the national level. For example, with the internationally
comparable data, policy makers can draw on the
experience of other economies by comparing the data for
the components of the GDP and their relationship to economic
growth. Similar analyses can inform policy makers
of their economy’s comparative advantage by examining
which goods or services are relatively cheap or expensive
compared with those of other economies.
Purchasing power parities allow comparisons between
economies of expenditure shares or price levels for components
such as food, health care, and investments. For
example, capital goods tend to be relatively more expensive
than consumer goods in developing economies, while services
tend to be cheaper. Comparisons between economies
at this level provide another view of what is contributing to
differences in growth rates between economies.
The PPP-based measures of the GDP are needed to
compare volume measures with other economic variables.
Examples include the following:
-Carbon emissions per unit of GDP
-Energy use per unit of GDP
-GDP per employee
-GDP per hour worked
The first two are useful for environmental comparisons,
while the latter two provide important comparisons of
productivity.
返回页首
Reliability of PPPs and GDP Volume Measures
Purchasing power parities are statistical estimates. Like all
statistics, they are point estimates that fall within some
margin of error of the unknown, true values. The error
margins surrounding the PPPs depend on the reliability of
the expenditure weights and the price data and how well
the goods and services that were priced represent the consumption
pattern and price levels of each participating
economy. As with national accounts data generally, it is not
possible to calculate precise error margins for PPPs or the
real expenditure data derived from them.
The 2005 ICP included economies ranging from citystates
to large and diverse countries such as China, India,
and Indonesia, which collectively account for more than
40 percent of the world’s population and include many
people living in remote, rural locations. These and similar
economies had to produce national average prices for
goods and services that were comparable with those of
other economies in their region. The accuracy of the PPPs
for these economies depends upon the extent to which the
selected goods and services were representative of their
entire economy and on their ability to provide nationally
representative average prices. The need to measure prices
for internationally comparable goods and services means
that they are more likely to reflect consumption patterns of
urban areas. It is also true that many household goods and
services are available only in towns, so the urban and rural
prices become the same. If the urban-to-rural price differentials
are similar across economies, any bias will tend to
cancel out in the estimation of PPPs; if not, results for some
economies may be biased, up or down, depending on the
extent of over- or underrepresentation of urban and rural
areas. Additional detail about estimating PPPs for large
economies follows in box 1.
格林斯潘：中国经济高增长是借来的
To minimize this potential bias, each ICP region prepared
its own list of goods and services to be priced so that
they would better reflect the characteristics of the economies
in its region. The need to deal with the wide diversity
of sizes, urbanization, and performance of economies
in each region was considered at every step leading to the
estimation of PPPs.
Therefore, caution should be used when comparing
economies by the size of their GDP or in per capita expenditures.
Mindful that there may be errors in the calculation
of GDP and population sizes, as well as in the estimation
of PPPs, small differences should not be considered significant.
It is generally accepted that differences in GDP of
less than 5 percent lie within the margin of error of the
PPP estimation. Rather than ranking economies, it is preferable
to group economies by broad size categories. Caution
should also be exercised about making comparisons
of price levels or per capita expenditures at low levels of
aggregation, where small errors may lead to large discrepancies.
Some areas such as housing and health are more
difficult to measure, and services in general are more difficult
to price than are goods; therefore, comparisons of these
components have wider measures of error than those for
food products.
PPPs should not be used as indicators of the under- or
overvaluation of currencies, nor should they be interpreted
as equilibrium exchange rates. The PPPs cover all of GDP
valued at purchaser’s prices, which include both traded and
nontraded goods. Exchange rates, unlike PPPs, reflect the
demand for currencies as a medium of exchange, speculative
investments, or official reserves. Exchange rates should
be used to price international transactions and to make
comparisons between economies of international debt, the
flow of international capital, and the export and import of
goods and services.
The PPPs in this report are not comparable with previous
PPPs published by the World Bank in the World Development
Indicators (WDI) or other publications
The 2005 PPPs are derived from a global program of price
surveys carried out using similar methods in 146 economies.
The previous benchmark estimates were based on surveys
carried out between 1993 and 1996 in a limited number
of developing economies and on more recent surveys in
OECD and CIS economies conducted in 2002 and 2000,
respectively. Many economies were included for the first
time in 2005, including China. Previous estimates of China’s
PPPs came from a research study using data for 1986.
India participated for the first time since 1985. Because of
the old vintage of Indian data, a regression was used instead
for the PPP estimate in the WDI (for the methodology, see
“Estimation of PPPs for nonbenchmark economies”). Since
the last round of price collections, PPPs have been extrapolated
forward using ratios of price indexes (either GDP
deflators or consumer price indexes). In addition, the new
2005 PPPs are based on a different methodology designed
to overcome problems encountered in previous rounds of
the ICP. Therefore, users should be cautious about making
comparisons with previous estimates of PPP-based GDP
and components. What can be said is that the new ICP
results substantially revise our view of the world economy.
(Additional detail about the comparability with previous
estimates is contained in appendix G.)
The overall ICP was designed and conducted to provide
comparable results between economies across different
regions. However, because of the difficulties of measuring
housing and government compensation, different methods
were used to compute housing PPPs in Asia-Pacific and
Africa and government PPPs in Asia-Pacific, Africa, and
Western Asia from those used in the other regions.
(Appendixes F and G provide a detailed overview of the
methodological differences that may affect comparability
of the new results with those from the past, as well as comparisons
between regions.)
PPPs provide a measure of the overall price level of an
economy, but they may not reflect the expenditure patterns
of the poor. Nor do they capture differences in price
levels within an economy. Additional data and analysis will
be necessary before international poverty rates can be estimated;
direct application of these PPPs to the estimation of
poverty levels and rates may yield misleading results.
返回页首
Estimating PPPs for large economies
格林斯潘：中国经济高增长是借来的
广交会五年来最冷
中国在非洲：高铁和飞机
Obtaining national prices for a list of comparable products
poses special problems for large, diverse economies and especially
those with large, rural populations. The sample sizes and
number of data collection centers required to collect the data
needed to estimate national average prices exceed the capacity
even of advanced economies. Eurostat economies, for example,
collect prices only in urban areas and use other sources to adjust
these to the national level. In the case of China, it was agreed
that China would collect prices for 11 municipalities, including
their surrounding rural areas, and that the World Bank and
the Asian Development Bank (ADB) would extrapolate these
to national average prices. The method adopted by the World
Bank and ADB matched urban and rural areas of the 11 municipalities
to the 31 provinces of China. However, the rural
areas included in the surveys may not have been representative
of those in the rest of China. See appendix E, which provides a
more detailed explanation.
The overrepresentation of urban areas was not unique to
China. Brazil, for example, collected prices in only 6 cities.
Other economies in the South America region conducted price
collection in urban areas only. Because PPPs are based on a multilateral
comparison within each region, biases in data collection
should largely cancel out if all economies within a region
are similarly treated. In the Asia-Pacific region, the extent of
urban bias in China’s PPP measurements will depend on how
different were its data collection procedures—and the resulting
computation of national average prices—compared with those
of other economies in its region. India, for example, collected
both urban and rural prices for food, clothing, footwear, and
education. Prices for all other components of the GDP were
collected in 31 urban centers. However, because most goods
other than food are produced and purchased in the cities, the
urban prices of those goods can be considered representative
of the national prices. Further sensitivity analysis of the results
will be needed to quantify the extent of this bias, if any.
返回页首
2005 ICP: Results and Major Findings
2005, Table 1 World shares of GDP
2005 ICP Global Results: Summary Table
Overview
The 2005 International Comparison Program has produced
estimates of the relative price levels of GDP and its principal
aggregates for 146 economies. These purchasing power
parities express the values of local currencies in relation to
a common currency. In this report, the common currency
is the U.S. dollar in 2005. When applied to the value of
GDP or any component of GDP, the resulting values reflect
the real value of consumption in each economy, corrected
for differences in price levels and unaffected by transitory
movements of exchange rates. This report provides PPPs
and related measures for GDP, actual individual consumption
by households, collective consumption of governments,
and gross fixed capital formation. Additional tables provide
the same data for several important components of the
GDP (such as food, clothing, and housing, to name a few).
The 146 economies account for more than 95 percent of
the world’s population and 98 percent of the world’s nominal
GDP. Table 8 lists the economies not included in the
2005 benchmark surveys along with estimates of their PPPbased
GDP per capita (computed as described in the section
“Estimation of PPPs for nonbenchmark economies”).
This was the most extensive and thorough effort ever to
measure PPPs across economies. Teams in each region identified
characteristic goods and services to be priced. Surveys
conducted by each economy during 2005 and 2006 provided
prices for more than 1,000 goods and services. New
and innovative data validation tools were implemented to
improve data quality. Initial calculations of PPPs were conducted
at the regional level. In addition, a representative
group of economies, selected from each region, priced a
common set of goods and services. PPPs were calculated
separately for this “ring” and used to calibrate the regional
PPPs to the global level. It is these global PPPs that are now
reported here. Like the regional results, they have been
benchmarked to 2005, regardless of the year in which data
collection took place.
The new benchmark results replace the PPPs and related
measures derived from previous surveys conducted during
1993–96 (for most developing economies) and 2000
and 2002 (for the CIS and the Eurostat-OECD). Data
for the economies in the 1993–96 benchmark had been
extrapolated forward and backward, using domestic price
indexes. Because such extrapolations happen at an aggregate
level, they cannot capture changes in relative prices at
the detailed level of the original surveys. Furthermore, the
2005 ICP covered a much broader set of goods and services
and, in most economies, collected more prices for them.
(Appendix G provides more detail about the changes in
scope, coverage, and methodology that affected the comparison
of the previously estimated PPPs with those coming
from the 2005 benchmark surveys. The appendix also
includes a table showing the comparison by economy.)
Compared with previous estimates, the size of developing
economies has decreased by 7 percentage points. The
global GDP shares of the largest developing economies are
also smaller. China, which was previously estimated to have
14 percent of global GDP, now has 10. And the estimate
of India’s share has been revised from 6 to 4 percent. But
it must be emphasized that these are changes in estimates,
the previous ones having been based on very old and very
limited data. The real outputs of their economies have not
changed, only the way we measure them has. This illustrates
why it is important to have new benchmark surveys because
the extrapolation procedures do not capture the structural
changes taking place within economies over time.
返回页首
The Size of Economies
2005, Table 1 World shares of GDP
Figure 1 shows the distribution of World GDP to low-
, middle-, and high-income economies when using PPPs
and average exchange rates. Note that the world share of
the GDP for middle-income economies increases from
19 to 32 percent of the world economy when using PPPs
instead of exchange rates to calibrate the data to a common
currency. The 2005 ICP results show that developing
economies (low- and middle-income economies1 ) make
up a significant share of the world economy:2 around 39
percent. However, disparities remain striking. Low-income
economies, which include 35 percent of the world’s population,
produce 7 percent of global GDP. Middle-income
economies, with 48 percent of world’s population, produce
32 percent of global GDP. The GDP of high-income
economies accounts for 61 percent of the world economy,
received by only 17 percent of the world’s population.
2005, Table 1 World shares of GDP
Table 1 shows the share of the world GDP by the largest
countries. Note that when measured using PPPs, 2005
world GDP is 55 trillion dollars, or 24 percent larger than
GDP converted to U.S. dollars using market exchange
rates. The reason is that exchange rates tend to understate
the purchasing power of the currencies of less developed
economies. This effect is particularly noticeable for lowand
lower-middle-income economies. For example, India’s
share of global GDP in 2005 is slightly greater than 4.3
percent when measured using PPP-based GDP, but only
1.8 percent when measured using market exchange rates.
Using the new PPP estimates of GDP, the United
States remains the largest economy in the world, with a
world share of 22.5 percent, followed by China with 9.7
and Japan with 7.0. Of the 12 largest economies, which
together account for two-thirds of global GDP, 5 are lowor
middle-income economies: Brazil, China, India, Mexico,
and Russia, which collectively account for almost 22 percent
of global GDP.
In each region,3 some major players emerge. Africa’s
economy is dominated by the Arab Republic of Egypt,
Morocco, Nigeria, South Africa, and Sudan, which collectively
account for two-thirds of the region’s GDP.4 Brazil
accounts for one-half of the South America economy. Russia
dominates the Commonwealth of Independent States
(CIS) with three-fourths of the total GDP. In the Asia-
Pacific region, China and India take the largest share, with
almost two-thirds of regional GDP. In Western Asia, Egypt5
and Saudi Arabia account for more than three-fifths of the
regional GDP.
裙带资本主义全球排名
格林斯潘：中国经济高增长是借来的
三星：贪欲帝国
在不平等世界要包容
匹克迪 《二十一世纪资本论》
返回页首
Measures of Living Standards
Table 2 shows that the economies with the highest GDP
per capita are Luxembourg, Qatar, Norway, Brunei Darussalam,
and Kuwait, all very small and accounting for less
than 1 percent of the world economy in total. The economies
with the lowest GDP per capita, all in Africa, are the
Democratic Republic of Congo, Liberia, Guinea-Bissau,
Niger, and Ethiopia.
Because of margins of error inherent to any similar statistical
exercise, particularly in poor economies with low
statistical capacity, little significance should be attached
to small differences in estimated values. Nevertheless, the overall distribution of economies’ PPP-based GDP per capita
provides a reliable picture of the distribution of average
income between economies. PPP estimates show substantial
income inequalities among economies, although the degree
of inequality is less than if GDP per capita were measured
using market exchange rates. In 2005, the PPP-based GDP per capita of 17 economies was less than $1,000 (or less
than 11 percent of the world average). In the richest 39
economies, GDP per capita exceeded $20,000, which was
more than double the world average of $8,900.
Figure 2 shows the distribution of the global GDP by
economy. The economies are arranged in the order of GDP
per capita along the horizontal axis and presented as rectangles.
The rectangle’s length along the horizontal scale corresponds
to each economy’s share of the world population.
Correspondingly, the GDP per capita as a percentage of the
world average is shown on the vertical axis. The economy’s
GDP size would be then represented by the rectangle area
for each economy, which is the product of population and
GDP per capita and thus would be directly comparable
among economies. As the economies are shown in increasing
order of real GDP per capita, the United States with the
sixth largest GDP per capita is placed at the right, with the
remaining countries reflected by the dark line because of
their small population. The intersection of the 100 percent
line with the rectangles shows that about three-fourths of
the world population is in economies with per capita GDP
below the world average.
Even though China’s and India’s per capita consumptions
are both less than half of the world average, their
economies rank number two and five, respectively, which
shows the effect of their large populations accounting for
about 40 percent of the world total.
Figure 3 shows per capita measures by region for
GDP, actual individual consumption, collective consumption
expenditure by government, and gross fixed capital
formation.
Per capita measures of PPP-based GDP are useful for
comparing average living standards in different economies.
The Eurostat-OECD region has the highest GDP per
capita, by a wide margin. The CIS is next, ahead of South
America and Western Asia.
在不平等世界要包容
匹克迪 《二十一世纪资本论》
返回页首
返回主页
version:2.1<EMAIL_ADDRESS>© retter2012.com


| EPOCH | D | (Julian) epoch (e.g. 1850D0) |
|---|
| sla_DT | D | approximate ET-UT (after 1984, TT-UT1) in seconds |
|---|
before AD 979 Stephenson & Morrison's 390 BC to AD 948 model AD 979 to AD 1708 Stephenson & Morrison's AD 948 to AD 1600 model after AD 1708 McCarthy & Babcock's post-1650 modelThe breakpoints are chosen to ensure continuity: they occur at places where the adjacent models give the same answer as each other.
SLALIB --- Positional Astronomy Library


Day 1: Downtown Breckenridge and Shopping
Just a short walk from most lodges or condos in Downtown Breckenridge, it’s full of amazing little shops and hole in the wall places that really represent their culture. You can find anything from Fuzziwig’s Candy Factory to Mountain Wave a local snowboard shop. There is a large variety of restaurants in downtown that are family owned and have amazing food like Duggan’s Deli with their Ruben Sandwich.
It’s a town with a ton of history that can be seen by the buildings and makes you want to explore more. You will find something new around every corner! As you can see the nightlife is very abundant as they keep the town lit up every night.
Day 2: (Summer) Downtown Breckenridge and Shopping
About 20 minutes down the road is Mohawk Trail which is one of the best hikes known because it takes you over 2,000 feet higher in the air. It’s a whopping 8.6 mile hike round trip but is worth every ounce of energy as the view is amazing. You will find lakes at the top year round and maybe even snow in the summer.
Drive an hour to spend half the day white water rafting will really test your endurance to ever changing conditions, they offer a variety of difficulty levels depending on your group. They provide you with all the necessary gear and will cost between $60-$90 a person but try not fall out as it’s a bumpy ride down the river.
Day 2: (Winter) Snowboarding/Skiing
Breckenridge is known to have some of the best mountains around with snow pouring in during the winter. Spend a day exploring the beautiful mountains finding new trails on every path will keep the excitement coming. Lift tickets are just around $150 a person but will be the adventure of a lifetime.
As you can see the ski resort is no joke when it comes to having an enormous amount of trails for all types of riding whether you’re a master or just beginning. You can find anything here from their double black diamond hills to their terrain park where you hit the jumps!
Day 3: Haunted Tour, Gondola Ride, and Animal Spotting
Breckenridge is also known for its haunted history as there is a lot of history behind everything aspect of the town. You can take the haunted tour or even just go check out their local gas station which was built on top of a cemetery and has many ghost stories to tell.
In the heart of the town you can take a free ride up the gondola which would be a great time to break out the camera and get some pictures from above. This will lead you to the base of the mountain where there is tons of activities like zip lining and food awaiting.
As your walking or take a short car ride up into the mountains surrounding the town you will most likely encounter many different creatures. You can see moose commonly walking around the neighborhoods and mountain goats possibly on your hike. Be careful not to get too close!
- RECOMMENDED STAY:
- Budget: The Bivvi - $89
- Comfortable: Condo Rental (best for a large group) – Between $100 to $200
- Luxury: Crystal Peak Lodge - $606 / night


CYN's Niko Brim Shares "Feds Watching"
Niko Brim shares a new track.
by Milca P.Feds Watching
Niko Brim
Editor Rating: HOTTTTT
User Rating: n/a - 0% (0)
CYN founding member Niko Brim has returned to offer up a new solo track. The Mount Vernon-bred emcee touches down with "Feds Watching," a hook-driven ode to creeping.
“It’s about the girl being so bad, it’s dangerous,” Niko tells VIBE. “Also, you never know who’s watching and plotting on you. It's also about sticking with somebody even when things aren’t going the best.”
He adds: "This was one of my favorite cook ups. That night I did 4 or five records and I knew this one was a standout. It's a good feeling but it's really about a girl being so pretty that she makes things hard for you. It's a rough spot to be in you know? Do you stand ten toes or let her be? Either way, I can't leave her alone."


The chrome.dial
API is backed by a service that multicasts
discovery requests on the local network to discover DIAL-capable devices and
maintains a list of devices that have responded. Adding an onDeviceList
listener causes the service to periodically issue discovery requests to maintain
the device list. (No polling is done when there are no onDeviceList listeners.)
The onDeviceList event is fired when discovery respnses are received and in other circumstances; see the documentation for onDeviceList.
The client can request that network discovery can be done immediately by invoking discoverNow() which is useful for presenting the user with an updated list of devices.
On-demand use (updates when discoverNow() is called):
chrome.dial.onDeviceList.addListener(function (list) { updateMenu(list); }); chrome.dial.discoverNow();(Remember to remove the listener when the menu closes.)
Background use (updates only when periodic polling happens):
var myList; chrome.dial.onDeviceList.addListener(function (list) { myList = list; });
These can be combined to poll for devices to prime the device menu, then refresh the menu when it is displayed.


UCB Flor¶
Flor (formerly known as Jarvis) is a system with a declarative DSL embedded in python for managing the workflow development phase of the machine learning lifecycle. Flor enables data scientists to describe ML workflows as directed acyclic graphs (DAGs) of Actions and Artifacts, and to experiment with different configurations by automatically running the workflow many times, varying the configuration. To date, Flor serves as a build system for producing some desired artifact, and serves as a versioning system that enables tracking the evolution of artifacts across multiple runs in support of reproducibility.
Install Flor¶
Clone or download the Flor repository.
You’ll need Anaconda, preferably version 4.4+
Please read this guide to set up a Python 3.6 environment inside Anaconda. Whenever you work with Flor, make sure the Python 3.6 environment is active.
Once the Python 3.6 environment in Anaconda is active, please run the following command (use the requirements.txt file in this repo):
pip install -r requirements.txt
Next, we will install RAY, a Flor dependency:
brew update
brew install cmake pkg-config automake autoconf libtool boost wget
pip install numpy funcsigs click colorama psutil redis flatbuffers cython --ignore-installed six
conda install libgcc
pip install git+https://github.com/ray-project/ray.git#subdirectory=python
Next, Add the directory containing this flor package (repo) to your PYTHONPATH.
Quickstart¶
Create a Python file named plate.py:
import flor
with flor.Experiment('plate_demo') as ex:
ex.groundClient('git')
ones = ex.literalForEach([1, 2, 3], "ones")
tens = ex.literalForEach([10, 100], "tens")
@flor.func
def multiply(x, y):
print(x*y)
return x*y
doMultiply = ex.action(multiply, [ones, tens])
product = ex.artifact('product.txt', doMultiply)
product.plot()
product.pull()
To run the file:
# Within a Python3.6 Anaconda environment
$ python plate.py
The expected output is as follows:
10
20
30
100
200
300


United States
China
France
Germany
Japan
Spain
United Kingdom
Price:
All
$0.69
$0.99
$1.29
Search titles only
Exact phrase


Saved 0
Speed the normal video (i.e. non-silent parts) will be played at.
Speed silent parts will be played at.
If the volume is under the red line, the video will be sped up.
Length of silence needed before speeding up.
This is to ensure we are not speeding up due to the short silence between words and sentences.
On supported websites, this extension can pre-buffer your current video or audio in order to detect silent parts before they happen.
Using this method, the slowing up and down will happen more smoothly to give you a better experience.
This value will make the extension slow the video down before the silent part is over to avoid skipping the first few words.
Unfortunately, some websites (e.g. YouTube) use methods for displaying video that don't allow pre-buffering the video.


A music score canvas will appear here. You'll be able to render notes and there'll be some kind of editing features.


Teaching
Teaching Experience at Northeastern University.
Ever since my second semester I have served as a Teaching Assistant in the Khoury College of Computer Sciences at Northeastern. My teaching has been focused on our Fundamentals of Computer Science curriculum (aka “Fundies”) which spans students first and second semesters. The entire purpose of this curriculum is to develop developers and to teach them a design recipe and a systematic way of solving problems of any size and complexity.
This process can certainly feel unnatural at first–I know I felt so. I came into Northeastern with significant exposure to CS, but from the very first day I was forced to rethink my approach to solving problems and after having gone through the process I can certainly say that I am better off for it. My goal when teaching this curriculum now is to be an approachable and relatable figure that makes that process just a little bit easier.
It is my favorite thing in the world to hear a student say that I helped them learn something, and I am incredibly proud of my student feedback from Fall 2020.
In Spring 2022 I am teaching Accelerated Fundies 2
In Spring 2021 I taught Accelerated Fundies 2
In Fall 2020 I taught Accelerated Fundies 1
In Fall 2019 I taught Accelerated Fundies 1
In Summer 2019 I taught Fundies 1
In Spring 2019 I taught Fundies 1


Only users who have a role of admin in their id_token can see this area.
role
admin
id_token
This is your id_token:
{{ idToken | json }}


Directions:Please choose A) the category of goods, B) the unit of which to view the data, C) the year, D) the location of interest (can be selected at region or state wise level), and E) minimum value filter (dependent on the unit selected). For example, if you select New York as location, you will see only net export / import between New York and other states/region. We have created a few What-If Scenario to illustrate the impact on trade for different goods if certain events were to happen.Explore Data:
Category:
Metric:
Year:
Location:
Min. Metric
What-If Scenarios:


step1
Register to WIN
Register with CHOIES!
Then you can start the Lucky Turntable, and enjoy the big surprise!
step2
Try Your Luck
Today’s Lucky Dogs
We only show the latest 100 winners here.
-<EMAIL_ADDRESS>5% Code
-<EMAIL_ADDRESS>Free Gift
-<EMAIL_ADDRESS>Free Gift
-<EMAIL_ADDRESS>5% Code
-<EMAIL_ADDRESS>Free Gift
-<EMAIL_ADDRESS>Free Gift
-<EMAIL_ADDRESS>5% Code
-<EMAIL_ADDRESS>Free Gift
-<EMAIL_ADDRESS>Free Gift
-<EMAIL_ADDRESS>5% Code
-<EMAIL_ADDRESS>Free Gift
-<EMAIL_ADDRESS>Free Gift
- Notes:
- 1. One ID, One Chance to play the Game.
- 2. Choies reserves the rights to the final explanation of the campaign.
- Any questions regarding the campaign please email to service@choies.com.


---
layout: page-fullwidth
show_meta: false
title: "NeuroTechX Student Clubs Curriculum"
header: no
permalink: "/curriculum/"
---
This page presents an overview of what knowledge student clubs should target during the year. The curriculum is not a list of all required information but more an invitation to learn.
The three columns below are the verticals of the curriculum and present the recommended fundamental knowledge required for developing brain-computer interfaces.
| Neurosciences | Biosignal acquisition | Data processing |
- The central nervous system in brief
- Principal regions of the brain, structurally and functionally
- Electricity in the brain
- Functional processes
- Touch
- Vision
- Audition
- Motor control
- High-level processes
|
- Brain-computer interfaces in general
- Invasive / non-invasive
- EEG, MEG, PET, SPECT, fMRI, fNIRS
- Biosignal acquisition (focused on electrical signal)
- Electrodes and impedance
- Amplification
- Analog signal processing
- Digitalization / Data Transmission
- Security aspects
|
- Connection with Device - communication protocol
- Analysis algorithm
- Time domain
- Frequency domain
- Event detection
- Feature extraction
- (Un)supervised learning
- ...
- Online Vs offline
- Online
- Offline
- Event-related / averaging
- Digital signal processing
|
The Experiments section contains a list of projects that you can start developing, starting with the easiest ones.
- Experiments
- EMG
- ECG
- Concentration / relaxation
- Event-Related Potential (ERP)
- P300
- Emotions
- ...
- Extra curriculum


F-1 students may be eligable for a 12-month employment authorization called Optional Practical Training (OPT). OPT opens up an opportunity for students on an F-1 visa to remain in status for an additional twelve months after graduating to gain practical experience in their field of study.
Eligibility for OPTTime to depart the US, start a new academic program or change your status
Time before you graduate to process an OPT application
Time is takes ISSC to process your OPT request.
*business days


4 writes to CommandScope
System.Management.Automation (4)
engine\CommandProcessor.cs (2)
763
this.
CommandScope
= Context.EngineSessionState.CurrentScope;
772
this.
CommandScope
= UseLocalScope
engine\NativeCommandProcessor.cs (1)
289
this.
CommandScope
= context.EngineSessionState.CurrentScope;
engine\ScriptCommandProcessor.cs (1)
111
this.
CommandScope
= useLocalScope
10 references to CommandScope
System.Management.Automation (10)
engine\CommandProcessor.cs (2)
113
parameterBinder = new ScriptParameterBinder(scriptCommandInfo.ScriptBlock, cmdlet.MyInvocation, this._context, cmdlet,
CommandScope
);
779
scriptCmdlet.SetLocalsTupleForNewScope(
CommandScope
);
engine\CommandProcessorBase.cs (4)
359
CommandSessionState.CurrentScope =
CommandScope
;
461
CommandSessionState.RemoveScope(
CommandScope
);
652
if (_useLocalScope &&
CommandScope
!= null)
654
CommandSessionState.RemoveScope(
CommandScope
);
engine\runtime\Operations\MiscOps.cs (1)
727
commandProcessor.
CommandScope
.ScopeOrigin = commandOrigin;
engine\ScriptCommandProcessor.cs (3)
79
Command.MyInvocation, Context, Command,
CommandScope
);
282
Diagnostics.Assert(
CommandScope
.LocalsTuple == null, "a newly created scope shouldn't have it's tuple set.");
283
CommandScope
.LocalsTuple = _localsTuple;


Man arrested for spitting on Metro bus driver, smashing bus windows
by Melissa BehlingMADISON, Wis. - A 27-year-old Madison man faces charges after spitting on a Metro bus driver and smashing bus windows.
Police say the man blew cigarette smoke in the driver's face Friday afternoon as he boarded a bus at the East Transfer Point at 102 West Corporate Dr.
Police say the driver told the man he did not appreciate having smoke blown in his face, particularly in a smoke-free environment. Officials say the man responded by spitting on the driver.
As the driver picked up his bus phone, police say the man walked off the bus and swung a bag containing a laptop computer at the bus's windows, breaking two of them. The driver estimated damage at around $5,000.
Officers located the suspect, Christopher Phelps, in the area. He admitted to spitting on the driver and breaking the bus windows, saying he didn't appreciate the driver's "tone" when he was asked not to blow cigarette smoke inside the bus.
Phelps was arrested on suspicion of criminal damage to property and disorderly conduct.


Id: 216
Name: MC Haps
Status: Alive
Species: Human
Type:
Gender: Male
OriginName: Earth (C-137)
OriginUrl: https://rickandmortyapi.com/api/location/1
LocationName: Earth (C-137)
LocationUrl: https://rickandmortyapi.com/api/location/1
Image: https://rickandmortyapi.com/api/character/avatar/216.jpeg
Episode: ['https://rickandmortyapi.com/api/episode/6', 'https://rickandmortyapi.com/api/episode/11', 'https://rickandmortyapi.com/api/episode/25']
Url: https://rickandmortyapi.com/api/character/216
Created: 2017-12-30T14:30:06.479Z


IIoT Enablement
Menu
Cloud Setting
Start Registration
Clear All Record
WiFi Setting
Model
IPv6 Address(LAN)
Serial Number
Firmware Version
Register Date
Status
Reason


Polish.js - Making JavaScript Better
JavaScript is pretty great, but it's not perfect. So I made it better by adding some extra functionality. (note. I add 2 global functions, range and zip because they are amazing, but the rest is either scoped under the Polish namespace, or added onto the default object properties.)
Before:
> Math.min([1,2,3])
NaN
> Math.randInt(2,10)
TypeError: Object #<Object> has no method 'randInt'
> range(1,5)
ReferenceError: range is not defined
> Math.sum([1,2,3])
TypeError: Object #<Object> has no method 'sum'
> [1,2,3][-1]
undefined
After:
> Math.min([1,2,3])
1
> Math.randInt(2,10)
6
> range(1,5)
[1, 2, 3, 4]
> Math.sum([1,2,3])
6
> [1,2,3][-1]
3
> list = [1,2,3,4,5]
> list.pop(1) // pops index
2
> list.remove(2) // removes element
[1,3,4,5]
> list.insert(2,5)
[1,2,5,3,4,5]
Now, those are just the basics. What would be really great is if we could utilize python selectors:
> "abcdef".g('-3:-1')
'de'
And wouldn't it also be great if we had access to some of the python itertools methods?
Polish.combinations([1,2,3],2)
Polish.combinationsReplace("abc",2)
Polish.permutations([1,2])
There are a few more goodies in there too, check out library on GitHub.


{% if site.data.company %}
About {{ site.data.company.title }}
- Boilerplate
- {{ site.data.company.description }}
- More information
- More information on {{ site.data.company.title }}, our logo & relevant media are available here.
{% endif %}
{% for about in presskit.abouts %}
About {{ about.title }}
- Boilerplate
- {{ about.description }}
{% if about.link %}
- More information
- More information on {{ about.title }} is available here.
{% endif %}
{% endfor %}


This page is a demonstration of the File API. This works in the latest versions of all major browsers, but you may need to place this file on a web server to get it to work.
Select a file below.


pywinEA.operators¶
pywinEA.operators.individual module¶
-
class
pywinEA.operators.individual.
OnePoint
¶ Bases:
pywinEA.interface.operators.CrossOverStrategy
Cross two individuals by randomly selecting a cut point and assembling the resulting halves together.
-
static
cross_population
(population: pywinEA.population.population.Population)¶ Function that selects individuals from the population (without replacement) to perform the crossover. When the population is odd an individual must be selected with replacement to maintain the population size.
- Parameters
population – Population
- Returns
Population Offspring.
-
static
-
class
pywinEA.operators.individual.
RandomMutation
¶ Bases:
pywinEA.interface.operators.MutationStrategy
Introduce random mutations.
-
static
mutate
(population: pywinEA.population.population.Population, mutation_rate: float)¶ Function that introduces mutations inside the population based on the established mutation rate using an uniform random distribution.
-
static
pywinEA.operators.population module¶
-
class
pywinEA.operators.population.

- Parameters
population – Population
annihilation – float
-
static
-
class
pywinEA.operators.population.
BestFitness
¶ Bases:
pywinEA.interface.operators.ElitismStrategy
Create a new population using the individuals with the highest fitness value.
-
static
select_elite
(population: pywinEA.population.population.Population, elitism: float)¶ FIX DESCRIPTION Function that selects the best individuals based on the elitism parameter.
- Parameters
population – Population
elitism – float Percentage of individuals in the population that will form the elite.
- Returns
Population Elite population
-
static
-
class
pywinEA.operators.population.
RouletteWheel
¶ Bases:
pywinEA.interface.operators.SelectionStrategy
Class that implements the roulette wheel selection strategy applicable to genetic algorithms. Calculate the cumulative probability of survival of each individual based on their fitness. Individuals with a higher probability will have more opportunities to be randomly selected. If the fitness is not of the float type (for example in multi-objective algorithms) consider as fitness the sum of the values of the objective functions. (For the stability of the algorithm these values should be scaled between 0 and 1 for all target functions)
-
select
(population: pywinEA.population.population.Population, new_pop_length: int)¶ Select individuals from the population. The best individuals are more likely to survive.
:param population Population :param new_pop_length int
Size of the individuals that will form the new population
- Returns
Population
-
-
class
pywinEA.operators.population.
TournamentSelection
(k: int, replacement: bool = False, winners: int = 1)¶ Bases:
pywinEA.interface.operators.SelectionStrategy
Class that implements the tournament selection strategy applicable to genetic algorithms.
-
select
(population: pywinEA.population.population.Population, new_pop_length: int)¶ Function that applies the tournament selection algorithm. It takes a total of k individuals randomly (without replacement / with replacement) from the population and returns the best of those k individuals.
:param population Population :param new_pop_length int
Size of the individuals that will form the new population
- Returns
Population Tournament winners
-


Hotels
Selecting the best hotel that suits your preferences and interest.
Selecting the best hotel that suits your preferences and interest.
Giving you the best attractions that you've prolonged for!
Providing you the best restaurant that fits your interests.
lakbay.ph is a travel mobile app that recommends travel itineraries that suits travelers preferrences and interest.
AVG Travel and Tours is a sole proprietorship type of business that started the operation year 2016 and accredited by the Department of Trade and Industry (DTI) and the Bureau of Internal Revenue (BIR). With a partnership from Gogo Neurosoft Company, Lakbay.PH, a mobile application that recommends travel itineraries that suits your preferrences and interest can be used to book your travel goals much faster and easier.
With a partnership with Gogo Neurosoft Company, we can now offer you an advance and much easier way to plan your travel itineraries!
Select your preferred recommended itinerary with the use of Lakbay.PH mobile application. Try now!
We can manage your transaction with the use of our website. Feel free and safe to book with us!
Giving you the best among the best itineraries that satisfies your interests. So, book now and enjoy!


--- layout: page header: Posts By Tag group: navigation ---
I am a Software Engineer.
I like competitive coding.
Archbloom is my online handle.


--- layout: post title: Family date: '2008-06-20T00:00:00-04:00' tags: - '2008' tumblr_url: http://poetry.liabogoev.com/post/49084526234/family ---
We are a unit
We are together
We are united
Maybe forever.

We are a tribe
We are a clan
We are a group
Not simply a man.
When we are a group
The laughs never cease
Although it is noisy
It’s relative peace.
If we were a book
You’d see us all there
And from the first look
You’d see that we care.
We care for each other
We care for tradition
We care for our own,
And each new addition.
We like to love
We like to give
We are a family,
This is how we live.


Immutable Data
When creating a complex app, managing state can be complicated. The same state can be shared by many components.
It's possible that an interaction with one component can cause a data mutation at the same time that another component is trying to access the data. This can lead to bugs that are difficult to diagnose. Keeping your data immutable can prevent this.
Accessing State
When you need to update the state of a component, you first need to get it. You do that with a simple assignment:
// Method of a component:
updateName(newName) {
const state = this.state
state.name = newName
this.setState(state)
}
Primitive Types vs Complex Types
JavaScript types are of two categories: primitive and complex. Primities are boolean, number and string. These are all immutable as well. This means that when you assign one of them to a variable and then assign that to another variable, a new copy is made:
const a1 = 1
const b1 = one
a1 = 2
console.log(a1) // returns 2
console.log(b1) // returns 1
String, numbers and booleans are passed by value.
Complex Types
The other category of types are objects, arrays and function. These are reference types. That means that when you assign them to one variable, the variable does not hold the value. It holds only a reference to the data. This means when you assign that to another variable, both will point to the same data. Chaning one appears to change the value of the other. Actually, with reference types there is only one, the variables are all point to the same value. Modifying that value from any variable changes the value for all references.
const person1 = {
name: 'Joe',
age: 26
}
const person2 = person1
person2.name = 'Sam'
person2.age = 32
console.log(person2)
// returns:
{
name: 'Sam',
age: 32
}
console.log(person1)
// returns:
{
name: 'Sam',
age: 32
}
This is the behavior for objects, arrays and functions. Most of the time your component data will be either an object or an array of either primitie types or objects.
Immutable Objects
The easiest way to get a new copy of the state's data when it is an object is to use Object.assign
:
// Component method:
updateName(name) {
// Make a copy of the state data:
const state = Object.assign({}, this.state)
state.name = 'Hellen',
state.job = 'Project Manager'
this.setState(state)
}
Immutable Arrays
We can easily clone an array using the native slice
method. When no arguments are provided, it returns a copy of the array:
addItem(newItem) {
// Make a copy of the state array:
const state = this.state.slice()
state.push(newItem)
this.setState(state)
}
//or:
updateItem(data, position) {
// Make a copy of the state array:
const state = this.state.slice()
state.splice(position,0, data)
this.setState(state)
}
When an array holds objects, the above approach will not work. Even though we can clone the array, the objects themselves get copied by reference. To get arround this you can use a special array cloning function to copy their objects:
function immutableCollection(arr) {
return arr.map(object => Object.assign({}, object))
}
class Users extends Component {
constructor(props) {
super(props)
this.state = [
{
name: 'Joe'
},
{
name: 'Sandra'
},
{
name: 'Bob'
}
]
}
updateUserName(name, position) {
const user = immutableCollection(this.state)
user[position].name = name
this.setState(user)
}
}
Creating a utility function to clone the array's objects lets us preserve the immutability the original state.
Why Immutability?
Seems like a lot of work to maintain immutability. It is. But it has its value. As we mentioned, since state is what drives your app, making changes to it directly in a piecemeal manner can cause some partial updates to the UI that result in unexpected behaviors or appearnances. It's always safest to create a clean copy of the state, make all the necessary changes, and then update the state with setState
. Immutability also makes it easy to implement features such as undo and time travel.
Let's Time Travel
Demo time! Let's build a game of tic-tac-toe with time travel. This will show why immutable state is so eassential for complex apps.
The Board
Tic-Tac-Toe starts with a board--nine squares. We could make a simple function component like this:
function Board() {
return (

<button></button>
<button></button>
<button></button>

<button></button>
<button></button>
<button></button>

<button></button>
<button></button>
<button></button>

)
}
That's the general idea, but we want to modularize thing, breaking out into three parts: Game class, board component and square component. Here's the start:
See the Pen Composi Tic Tac Toe - 1 by Robert Biggs (@rbiggs) on CodePen.
Parent is in Control
We want the game class to be the part controlling everything--state and events. We'll therefore need to pass data down to the child components. In the next example you can see how we pass data from the board down to the squares through props:
See the Pen Composi Tic Tac Toe - 2 by Robert Biggs (@rbiggs) on CodePen.
We will be using this technique of passing data down in more ways as we develop this game.
Interactive Squares
We want the player to be able to tap a square to set its value as an X or O. For this to work we will put an onclick
event on each square, and set up the event handler on the Game class. We'll call the Game method handleClick
. We pass it from Game to the Board component as the prop onClick
. And in the Board component, we will pass it to the Square component as the prop onClick
. Then, in the Square component we can assign that onClick
prop to an onclick
event.
Immutable Data
And here we begin with the immutable data approach. Rather than just getting the array from the component's state, we get a copy of it using slice()
on the array. Check out the handleClick
event to see how we do that. We make a copy of the state array, make changes to the copy and then use setState
to update the component's state:
See the Pen Composi Tic Tac Toe - 3 by Robert Biggs (@rbiggs) on CodePen.
Taking Turns
Next we want to show the moves as they take place, X followed by O. We want to show those choices on the squares and also let the players know whose turn is next. For that we'll add a new property to the state: xIsNext
. By setting its initial value to true
we indicate that the first move is X.
See the Pen Composi Tic-Tac-Toe 4 by Robert Biggs (@rbiggs) on CodePen.
So, we can show whose turn is next, but the square aren't updating. We'll need to make some more changes to the state. We're going to rename values
to squares. This might seem petty now, but later its usage will get more complicated, so we're renaming it to indicate that it represents the squares. Since we renamed it, we need to change the reference in Button
and Board
as well, no big deal. Now, in the handleClick
method we're going to change values[i] = 'X'
to squares[i] = this.state.xIsNext ? "X" : "O"
. With that are squares are happening:
See the Pen Composi Tic-Tac-Toe 5 by Robert Biggs (@rbiggs) on CodePen.
The Winner
Yeah, a small detail. As it is, the plays can play and even when, but you can still keep choosing squares. We need to be able to declare a winner when someone winners.
To determine a winner, we need to know what are the moves that determine a winner. And then we need to compare our state of moves to see if there's a match. Here's the function to determine the winner:
// Calculate the winner:
function calculateWinner(squares) {
const lines = [
[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[0, 3, 6],
[1, 4, 7],
[2, 5, 8],
[0, 4, 8],
[2, 4, 6]
]
for (let i = 0; i < lines.length; i++) {
const [a, b, c] = lines[i]
if (squares[a] && squares[a] === squares[b] && squares[a] === squares[c]) {
return squares[a]
}
}
return null
}
This function needs the squares. We're going to put this calculation into Board
. We'll also need to update the status to show a winner instead of whose next:
const winner = calculateWinner(props.state.squares)
let status
if (winner) {
status = 'Winner: ' + winner
} else {
status = 'Next player: ' + (props.state.xIsNext ? 'X' : 'O')
}
And here it is working:
See the Pen Composi Tic-Tac-Toe 6 by Robert Biggs (@rbiggs) on CodePen.
This is an improvement. The players can take turns and they know when someone wins. However, They can still take turns. We need to stop that as soon as there's a winner.
Lifting State Up
At the moment we have Board
deterimining who won. Really, Game
should own state and state decisions. We are going to move that to Game's
render
method. To get the status to the board, we'll have to pass it down as a prop. And we'll need to check if there was a winner in the handleClick
method. If there was a winner, we want to stop any further action.
See the Pen Composi Tic-Tac-Toe 7 by Robert Biggs (@rbiggs) on CodePen.
Storing History
So far we are just storing what moves the user made in the squares array. This works for determining a winner, but there is no way to tell who made what move. For that we'll need to take the immutability to the next level. We'll need to store an array of each move. This means we'll have to make some changes to our state structure. We want this:
history: [
{
squares: [null,null,null,null,null,null,null,null,null]
},
{
squares: [X,null,null,null,null,null,null,null,null]
},
{
squares: [X,null,O,null,null,null,null,null,null]
}
]
This will enable us to examine all moves, and even time travel through the moves. For this we need to update the Game
constructor. Notice how we simplified the creation of the initial array using Array(9).fill(null)
:
constructor(props) {
super(props)
this.state = {
history: [{
squares: Array(9).fill(null)
}],
stepNumber: 0,
xIsNext: true
}
}
Because of this change, we'll need to update all references to square through our code. We'll especially have to refactor the handleClick
method:
handleClick(i) {
const history = this.state.history
const current = history[history.length - 1]
const squares = current.squares.slice()
if (calculateWinner(squares) || squares[i]) {
return
}
squares[i] = this.state.xIsNext ? 'X' : 'O'
this.setState({
history: history.concat([{
squares: squares
}]),
xIsNext: !this.state.xIsNext,
})
}
}
And here's the new version. The user interaction hasn't changed. But we now have a history of what the moves were. is you add window.game = game
, you can enter game.state.history
in the Codepen console to see the history of moves. Of course you'll have to make some moves first ;-)
See the Pen Composi Tic-Tac-Toe 7 by Robert Biggs (@rbiggs) on CodePen.
One note: since the game is now determing moves and the winner, we moved the display of that information from the board to the game info panel to the side of the board. We'll be using this side panel to show user moves and enable time travel further ahead.
Stepping into the Past
In order to enable time travel, we'll need a way for the play to set back to previous moves. We'll do that by create a list of buttons for each move. Currently we have a side panel that outputs the game status:

{status}

{/* TODO */}

That ordered list is where we want to put our steps through history.
The first thing we'll need is a function to step through the history. For now we just want a shell because we are first going to output the buttons:
jumpTo(step) {
return
}
Now we can create those step buttons. We'll add a new function to the Game
render function. It will create the buttons based on the current history. Each button will have a reference to the index of the history array it needs to access, and each button will fire the jumpTo
method:
const moves = history.map((step, move) => {
const desc = move ?
'Go to move #' + move :
'Go to game start'
return (

<button class='button-moves' onclick={() => this.jumpTo(move)}>{desc}</button>

)
})
To output these we just need to put the variable moves
into the unordered list:

{status}

{moves}

With these in places, as a user makes moves, buttons for those moves will appear in side list. Try it out:
See the Pen Composi Tic-Tac-Toe 9 by Robert Biggs (@rbiggs) on CodePen.
Time Travel
Now that we have the buttons for moves, we can add the ability to travel through the game history by tapping those buttons. For that we need to update the jumpTo
method:
jumpTo(step) {
this.setState({
stepNumber: step,
xIsNext: (step % 2) === 0
})
}
We also need to update the handleClick
method to set state with a new property, stepNumber
and refactor how we get history from state:
handleClick(i) {
const history = this.state.history.slice(0, this.state.stepNumber + 1)
const current = history[history.length - 1]
const squares = current.squares.slice()
if (calculateWinner(squares) || squares[i]) {
return
}
squares[i] = this.state.xIsNext ? "X" : "O"
this.setState({
history: history.concat([{
squares: squares
}]),
stepNumber: history.length,
xIsNext: !this.state.xIsNext
})
}
We'll also need to udpate the render function to use the stepNumber
for the current slice of history:
const current = history[this.state.stepNumber]
With this we now have time travel:
See the Pen Composi Tic-Tac-Toe 10 by Robert Biggs (@rbiggs) on CodePen.
Summary
This has been a long journey. Hopefully you were able to follow along. Examine all the Codepen examples carefully. We started off with a simple board and slowly added more functionality. As we advanced, we had to make sure that the Game component owned state and interaction and that data was immutable.  They do not know about state and they do not own the interactions that affect state. That's all owned by the Game parent, which passes these down to them.
Now about that immutability, if we had not implemented that, a change to one index of the history array would update all the others. In effect we would not have any history. If we were not aware about how arrays are copied by reference, we would have been banging our heads on the wall wondering what was going on.
Using the techniques we used in this game, you can also implement time travel for other situations where it would be appropriate. This is especially useful if you need to enable the user to undo an action or two. For this game, there are only 9 possible steps for travel. If you intend on using time travel, limit it to the bare minimum. Otherwise, excessive use will eat up valuable memory, especially for mobile users.
Show the Winning Moves
For a final treat, we've updated the game to show the winning moves on the board. For this we had to change what calculateWinner
was returning. We want to return the winner and the lines. Then in the Board, we'll add a won
class to the appropriate squares.
return {
who: squares[a],
line: lines[i]
}
Since we're no longer returning the winner as a letter but as an object property who
, we need to update how we render that in status:
status = "Winner: " + winner.who
And here it is complete:
See the Pen Composi Tic-Tac-Toe 11 by Robert Biggs (@rbiggs) on CodePen.
ImmutableJS
So, there is a framework called ImmutableJS that makes sure your data is always immutable. It was created and is maintained by Facebook. There is only one problem about using it with Composi. By default they use CommonJS format for the module. Unfortunately in its current state it can't be imported as an ES6 modules for use in a Composi project. There is a work around. You can down load the source code from Github and build it. Inside the resulting dist
folder you will find: immutable.es.js
. You can manually copy this to your Composi project and then import it like any other ES6 module. Yeah, it's annoying, but it does work. Currently they do not expose the ES6 version in the default install from NPM.


February 17, 2015
In my time since graduating GA’s Web Development Immersive, I have been doing a lot of indulging. Specifically, I have allowed myself to spend time read what I want online. (I actually gave myself formal permission on a sticky note, signed and dated, stuck to my desk near my computer as solemn reminder to never forget to have fun).
While many people tend to value backend developers for their “problem solving” prowess, there is equally crucial and difficult problem solving to be done on the frontend - user engagement!
After giving an Unconference talk on cognitive science and the search for AI, trust me when I say: all the brilliant, backend bunker-busting code would mean little to nothing without effective presentation to the target audience.
In order to make an effective presentation to the target audience, a frontend dev must know how the audience thinks and this is no easy task. It is not easy because no two people will think exactly the same about your product. That said, there are some 101-level rules that are good to keep in mind:
Focus on the experience. Text, graphics and layout should make sense to the product and should work together to tell a story.
People don’t read websites. They scan them. Provide users with ability to make easy judgment calls on what is valuable and what is not.
Always strive for simplicity and clarity. A user can decide in less than half a second whether your site is something they are interested in spending time on. Make sure they do not have to think about or guess what you want them to know.
Creativity and new tech should be used smartly. When users expect to see left and right arrows because they want to go to the next or previous page but instead see blinking, different color lights, they get confused. No one has a good time.
Capture attention above the fold but don’t sacrifice content for the fold.
Don’t forget, there is a difference between a “responsive design” and a “nice, responsive design.” (I’m still working on implementing this one.)
But these rules (or at least their spirit) do not only apply to frontend devs. These days, simple and easy to understand backend code is highly coveted. Why? Because it makes sense on all levels: it helps the business keep legacy code manageable, prevents errors and promotes faster and more efficient deployment.
By indulging in my curiosity, I have come to greatly appreciate the need for full stack, frontend and backend devs to be highly cognizant of others’ perceptions and learning styles. Form and function are one.


{% extends 'base.html' %} {% block content %}
UPVOTE | 731 points by vcrmartinez | web | 241 comments
UPVOTE | 731 points by vcrmartinez | web | 241 comments
UPVOTE | 731 points by vcrmartinez | web | 241 comments
UPVOTE | 731 points by vcrmartinez | web | 241 comments


For months, the couple have been worried that their son has Autism.
In this week's episodes they took him
for some assessments.
Read More: EastEnders SPOILERS: Max proposes to Ruby
In last night's episode (November 12 2019), before going in for the assessments, Linda spoke to a woman in the waiting room who told her she was there with her son, and her daughter had been assessed last year.
The woman told her autism is common in siblings and Linda responded by saying: "Well he's got two brothers and a sister and there's nothing wrong with them," but she quickly apologised for her choice of words.
After Ollie had his assessment, Dr Fremantle told the Carters that Ollie demonstrated good attention to detail and carried out most of the tasks the practitioner set him with a high degree of accuracy.
Read More: EastEnders SPOILERS: Gray's lies are exposed
However she also said taking into account the outcome of the assessment, the information Mick and Linda had given, and the findings from the school's observations, they had concluded Ollie has Autism Spectrum Disorder but is at the milder end.
After confirming everything would be explained in a full report, Mick said: "So he's autistic then? And the report, it's definite, yeah?"
However viewers weren't impressed with Mick and Linda's reaction and felt they were acting as if Ollie had a terminal illness.
However, some viewers are looking forward to seeing how the storyline plays out and think Mick and Linda's education about the diagnosis will be part of the process.
Fans know Linda will turn to alcohol to cope with the diagnosis.
And it's also been revealed the Carters eldest son, Lee, will return as part of the storyline.
EastEnders airs Monday and Friday at 8pm and Tuesday and Thursday at 7.30pm on BBC One.
Leave us a comment on our Facebook page @EntertainmentDailyFix and let us know what you think!


Series: Exploring Angular 2
-
A web animations deep dive with Angular
Angular comes with a built-in animation system that lets us create powerful animations based on the Web Animations API. In...
Read More -
Custom themes with Angular Material
Angular Material offers great theming capabilities for both, built-in and custom themes. In this article we'll explore how to make...
Read More -
Angular Master Class - Redux and ngrx
Today we're super excited to announce that we finished working on our new Angular Master Class courseware. Read on for...
Read More -
Three things you didn't know about the AsyncPipe
This article explains three lesser known features of the AsyncPipe that help us to write better async code.
Read More -
Using Zones in Angular for better performance
In this article we'll take a look at how to use Zone APIs to improve our app's performance!
Read More -
Making your Angular apps fast
In this article we discuss tips and tricks to make Angular blazingly fast!
Read More -
Testing Angular Directives with Custom Matchers
Deliver terse, DRY, self-documenting unit tests with Angular using custom Jasmine Matchers and Helper functions.
Read More -
Testing Services with Http in Angular
Want to learn how to test services in Angular that have an Http dependency? Read more here!
Read More -
Two-way Data Binding in Angular
Two-way data binding was one of the main selling points of Angular. Since version 2.x, we can build directives that...
Read More -
Resolving route data in Angular
We often want to make sure that certain data is available before a component is instantiated via routing. In this...
Read More -
Angular Animations - Foundation Concepts
Animation in Angular is now easy and more intuitive... Learn foundational animation concepts and start animating your Angular components!
Read More -
Angular 2 is out - Get started here
Yes. The day has come. Angular 2 is finally released and here's how to get started.
Read More -
Bypassing Providers in Angular
Dependencies are provided from the nearest ancestor provider in the injector tree. This article shows how to bypass it.
Read More -
Custom Form Controls in Angular
Angular makes it very easy to create custom form controls. Read on to learn how to do it!
Read More -
Protecting Routes using Guards in Angular
Angular's router enables protecting routes using guards and in this article we're going to discuss how to implement them.
Read More -
Reactive Forms in Angular
Angular allows us to build forms in a model-driven fashion. In this article we're going to discuss what that looks...
Read More -
Cold vs Hot Observables
In this article we are going to demystify what the term hot vs cold means when it comes to Observables....
Read More -
Routing in Angular revisited
Learn how to implement basic routing in your Angular application using the latest and greatest APIs!
Read More -
Component-Relative Paths in Angular
Component-relative enable developers to more easily create maintainable, reusable, portable components in Angular. Here's how!
Read More -
How to prevent name collisions in Angular providers
Angular provides a mechanism to avoid name collisions in provider tokens. In this article we're going to explore how opaque...
Read More -
Exploring Rx Operators: map
This is the first article that is part of a new series where we take a look at different operators...
Read More -
Angular Providers using Map Literals
Angular has a shorter syntax for creating providers. In this article we're going to take a look at how to...
Read More -
Template-driven Forms in Angular
In this article we discuss the template-driven forms in Angular and all the directives that come into play.
Read More -
Custom Validators in Angular
Often, we need to add custom validation capabilities to our application's form. In this article we're going to explore how...
Read More -
Angular Change Detection Explained
Wonder how change detection in Angular works? This article is a write-up of that talk and discusses change detection and...
Read More -
Zones in Angular
In this article we're going to discuss what role Zones play in the Angular platform, with the Angular specific NgZone....
Read More -
Understanding Zones
Since version 2.x Angular takes advantage of a feature called Zones. Learn here what they are and how they work....
Read More -
Taking advantage of Observables in Angular 2 - Part 2
This is a follow up article that demonstrates how Observables can influence our API design.
Read More -
Taking advantage of Observables in Angular
Since version 2.x Angular favors Observables over Promises when it comes to async. In this article we explore some practical...
Read More -
Multi Providers in Angular
Multi-providers allow us to extend existing dependencies in Angular. Read on to learn when this is useful!
Read More -
Upgrading Angular apps using ngUpgrade
In this article you'll learn how to upgrade your Angular 1 applications to Angular 2 using ngUpgrade.
Read More -
Understanding @Injectable in Angular
We might run into unexpected behaviour when injecting service dependencies. This article details how to do it right.
Read More -
Forward references in Angular
In this article we like to explore forward references. Why they exist and how we can use them.
Read More -
Host and Visibility in Angular's Dependency Injection
Angular's DI allows us to configure the visbility of what gets injected from where. Learn about @Host in this article!...
Read More -
Angular Template Syntax Demystified - Part 1
Angular 2 introduces it's own kind of template syntax in order to implement different binding strategies. Learn why it's there...
Read More -
Even better ES5 code for Angular
Nobody prevents us from writing Angular code in ES5. In this article we take a look at a new, much...
Read More -
View Encapsulation in Angular
Angular Shadow DOM for styles and DOM encapsulation. This article explores Angular 2's view encapsulation and how we can use...
Read More -
Styling Angular components
In this article we are going to explore the different possible ways of styling Angular 2 components.
Read More -
Routing in Angular
Learn how to route between components. In this article we explore how to use the new router in Angular.
Read More -
Dependency Injection in Angular
Angular implements a very powerful dependency injection system that makes reusing services easy and flexible. Learn how it works!
Read More -
Writing Angular code in ES5
Ever wondered what it's like to write Angular 2 in ES5? Check out this article!
Read More -
The difference between Annotations and Decorators
Learn how AtScript annotations differ from TypeScript decorators in this article.
Read More -
Developing a tabs component in Angular
This article details how to build a simple, but widely used type of component in Angular: tabs.
Read More -
Developing a zippy component in Angular
Just recently we've built a simple zippy component in Angular 2.0.0 and in this article we want to show how....
Read More


Some quick example text to build on the card title and make up the bulk of the card's content.
SEARCH RESTAURANTS
SEARCH ARTICLES
RESTAURANT