text:
Java Persistence/Querying

=Querying= Querying is a fundamental part of persistence. Being able to persist something is not very useful without being able to query it back. There are many querying languages and frameworks; the most common query language is SQL used in relational databases.

JPA provides several querying mechanisms:
 * JPQL : (BNF)
 * Criteria API
 * Native SQL Queries

JPA primarily uses the Java Persistence Querying Language (JPQL), which is based on the SQL language and evolved from the EJB Query Language (EJBQL). It basically provides the SQL syntax at the object level instead of at the data level. JPQL is similar in syntax to SQL and can be defined through its BNF definition.

JPA also provides the Criteria API that allows dynamic queries to be easily built using a Java API. The Criteria API mirrors the JPQL syntax, but provides Java API for each operation/function instead of using a separate query language.

JPA provides querying through the  interface, and the   and   annotations and the   and   XML elements.

Other querying languages and frameworks include:
 * SQL
 * EJBQL
 * JDOQL
 * EQL (EclipseLink Query Language)
 * Query By Example (QBE)
 * TopLink Expressions
 * Hibernate Criteria
 * Object Query Language (OQL)
 * Query DSL

Named Queries
There are two main types of queries in JPA, named queries and dynamic queries. A named query is used for a static query that will be used many times in the application. The advantage of a named query is that it can be defined once, in one place, and reused in the application. Most JPA providers also pre-parse/compile named queries, so they are more optimized than dynamic queries which typically must be parsed/compiled every time they are executed. Since named queries are part of the persistence meta-data they can also be optimized or overridden in the orm.xml without changing the application code.

Named queries are defined through the and  annotations, or   XML element. Named queries are accessed through the API, and executed through the  interface.

Named queries can be defined on any annotated class, but are typically defined on the  that they query for. The name of the named query must be unique for the entire persistence unit, they name is not local to the. In the orm.xml named queries can be defined either on the  or on any.

Named queries are typically parametrized, so they can be executed with different parameter values. Parameters are defined in JPQL using the  syntax for named parameters, or the   syntax for positional parameters.

A collection of query hints can also be provided to a named query. Query hints can be used to optimize or to provide special configuration to a query. Query hints are specific to the JPA provider. Query hints are defined through the annotation or   XML element.

Dynamic Queries
Dynamic queries are normally used when the query depends on the context. For example, depending on which items in the query form were filled in, the query may have different parameters. Dynamic queries are also useful for uncommon queries, or prototyping.

JPA provides two main options for dynamic queries, JPQL and the Criteria API.

Dynamic queries can use parameters, and query hints the same as named queries.

Dynamic queries are accessed through the API, and executed through the  interface.

Criteria API (JPA 2.0)
See Criteria API.

JPQL
See JPQL.

Parameters
Parameters are defined in JPQL using the  syntax, i.e.  .  The parameter values are set on the   using the  API.

Parameters can also be defined using the, mainly for native SQL queries. You can also use. These are positional parameters, not named parameters and are set using the  API. The  is the index of the parameter in the SQL. Positional parameters start a 1 (not 0). Some JPA providers also allow the  syntax for native queries.

For temporal parameters you can also pass the temporal type, depending on if you want the ,   or   from the value.

Parameters are normally basic values, but you can also reference objects if comparing on their, i.e.,   can take the   object as a parameter. The parameter values are always at the object level when comparing to a mapped attribute, for example if comparing a mapped  the   value is used, not the database value.

Parameters are always set on the, no matter what type of query it is (JPQL, Criteria, native SQL, NamedQuery).

Named Parameter:

Positional Parameter:

Query Results
Normally JPA queries return your persistent  objects. The returned objects will be managed by the persistent context and changes made to the objects will be tracked as part of the current transaction. In some cases, more complex queries can be built that just return data instead of  objects, or even perform update or deletion operations.

There are three methods to execute a, each returning different results:
 *
 *
 *

returns a  of the results. This is normally a  of   objects, but could also be a list of data, or arrays.

This returns a  (List of Employee objects). The objects will be managed. This returns a  (List of String values). The data is not managed. This returns a  (List of object arrays each with two String values). The data is not managed. This returns a  (List of object arrays each with an Employee and Address objects). The objects will be managed. This returns a  (List of object arrays each with the row data). The data is not managed.

returns the results. This is normally an  object, but could also be data, or an object array. If the query returns nothing, an exception is thrown. This is unfortunate, as typically just returning  would be desired. Some JPA providers may have an option to return  instead of throwing an exception if nothing is returned. An exception is also thrown if the query returns more than just a single row. This is also unfortunate, as typically just returning the first result is desired. Some JPA providers may have an option to return the first result instead of throwing an exception, otherwise you need to call  and get the first element.

This returns an. The object will be managed. This returns a. The data is not managed. This returns an  (object array with two String values). The data is not managed. This returns an  (object array with an Employee and Address object). The objects will be managed. This returns an  (object array with the row data). The data is not managed.

returns the database row count. This can be used for    JPQL queries, or any native SQL (DML or DDL) query that does not return a result.

Joining, querying on a OneToMany relationship
To query all employees with a phone number in 613 area code a join is used.

JPQL:

Criteria:

Subselect, querying all of a to many relationship
To query all employees whose projects are all in trouble a subselect with a double negation is used.

JPQL:

Criteria:

Subselect, querying a to many relationship where all of the relations are in a list
To query all employees who are in all the list of projects a subselect with a count is used. First collect the project ids from the projects (using the objects may work as well). Then get the size of the list. Your query will need two arguments, one of the list of ids, and one for the size of the list.

JPQL:

Join fetch, read both employee and address in same query
To query all employees and their address a join fetch is used. This selects both the employee and address data in the same query. If the join fetch was not used, the employee address would still be available, but could cause a query for each employee for its address. This reduces n+1 queries to 1 query.

Join fetch:

Join fetch can also be used on collection relationships:

Outer joins can be used to avoid  and empty relationships from filtering the results:

You can also select multiple objects in a query, but note that this does not instantiate the relationship, so accessing the relationship could still trigger another query:

Inverse ManyToMany, all employees for a given project
To query all employees for a given project where the employee project relationship is a ManyToMany.

If the relationship is bi-directional you could use:

If it is uni-directional you could use:

or,

How to simulate casting to a subclass
To query all employees who have a large project with a budget greater than 1,000,000 where the employee only has a relationship to Project, not to the LargeProject subclass. JPA 1.0 JPQL does not define a cast operation (JPA 2.0 may define this), so querying on an attribute of a subclass is not obvious. This can be done indirectly however, if you add a secondary join to the subclass to the query.

How to select the first element in a collection
To query the employees first project for a particular employee. There are a few different ways to do this, some using straight JPQL, and some using the    API. If a JPA 2.0 indexed list is used to map the collection, then the  function can be used.

setMaxResults:

JPQL:

JPA 2.0:

How to order by the size of a collection
To query all employees ordered by the number of projects. There are a few different ways to do this, some end up using sub selects in SQL, and some use group by. Depending on your JPA provider and database you solution may be limited to one or the other.

Using SIZE function (uses sub-select in SQL)

Using SIZE function, also selects the size (uses group by)

Using GROUP BY

Using GROUP BY and alias

=Advanced=

Join Fetch and Query Optimization
There are several ways to optimize queries in JPA. The typical query performance issue is that an object is read first, then its related objects are read one by one. This can be optimized using  in JPQL, otherwise by query hints specific for each JPA provider.

See,
 * Join Fetching
 * Batch Fetching

Timeouts, Fetch Size and other JDBC Optimizations
There are several JDBC options that can be used when executing a query. These JDBC options are not exposed by JPA, but some JPA providers may support query hints for them.
 * Fetch size : Configures the number of rows to fetch from the database in each page. A larger fetch size is more efficient for large queries.
 * Timeout : Instructs the database to cancel the query if its execution takes too long.

 * EclipseLink/TopLink : Provide many query hints including:
 * "eclipselink.jdbc.fetch-size" - Fetch size.
 * "eclipselink.jdbc.timeout" - Timeout.
 * "eclipselink.read-only" - The objects returned from the query are not managed by the persistence context, and not tracked for changes.
 * "eclipselink.query-type" - Defines the native type of query to use for the query.
 * "eclipselink.sql.hint" - Allows an SQL hint to be included in the SQL for the query.
 * "eclipselink.jdbc.bind-parameters" - Specifies if parameter binding should be used or not, (is used by default).

Update and Delete Queries
JPQL also allows for  and   queries to be executed. This is not the recommend or normal way to modify objects in JPA. Normally in JPA you first read the object, then either modify it directly using its  methods to update it, or call the   method to delete it.

and  queries in JPQL are for performing batch updates or deletions. There allow a set of objects to be updated or deleted in a single query. These queries are useful for performing batch operations, or clearing test data.

and  queries have a   the same as   queries, and can use the same functions and operations, and traverse relationships and make use of sub selects. and  queries are executed using the   method, and return the row count from the database. Note that some caution should be used in execute these queries in an active persistence context, as the queries may effect the objects that have already been registered in the. Normally it is a good idea to  the   after executing the query, or to execute the query in a new   or transaction.

Flush Mode
Within a transaction context in JPA, changes made to the managed objects are normally not flushed (written) to the database until commit. So if a query were executed against the database directly, it would not see the changes made within the transaction, as these changes are only made in memory within the Java. This can cause issues if new objects have been persisted, or objects have been removed or changed, as the application may expect the query to return these results. Because of this JPA requires that the JPA provider performs a flush of all changes to the database before any query operation. This however can cause issues if the application is not expecting that a flush as a side effect of a query operation. If the application changes are not yet in a state to be flushed, a flush may not be desired. Flushing also can be expensive and causes the database transaction, and database locks and other resources to be held for the duration of the transaction, which can effect performance and concurrency.

JPA allows the flush mode for a query to be configured using the enum and the  API. The flush mode is either  the default which means flush before every query execution, or   which means only flush on commit. The flush mode can also be set on an  using the  API, to affect all queries executed with the. The API can be called directly on the   anytime that a flush is desired.

Some JPA providers also let the flush mode be configured through persistence unit properties, or offer alternatives to flushing, such as performing the query against the in memory objects.

 * TopLink / EclipseLink : Allow the auto flush to be disabled using the persistence unit property.

Pagination, Max/First Results
A common requirement is to allow the user to page through a large query result. Typically a web user is given the first page of n results after a query execution, and can click next to go to the next page, or previous to go back.

If you are not concerned about performance, or the results are not too big, the easiest way to implement this is to query all of the results, then access the sub-list from the result list to populate your page. However, you will then have to re-query the entire results on every page request.

One simple solution is to store the query results in a stateful  or an http session. This means the initial query make take a while, but paging will be fast. Some JPA providers also support the caching of query results, so you can cache the results in your JPA providers cache and just re-execute the query to obtain the cached results.

If the query result is quite large, then another solution may be required. JPA provides the  API,  to allow paging through a large query result. The  can also be used as a safeguard to avoid letting users execute queries that return too many objects.

How these query properties are implemented depends on the JPA provider and database. JDBC allows the  to be set, and most JDBC drivers support this, so it will normally work for most JPA providers and most databases. Support for  can be less guaranteed to be efficient, as it normally requires database specific SQL. There is no standard SQL for pagination, so whether if this is supported depends on your database, and your JPA providers support.

When performing pagination, it is also important to order the result. If the query does not order the result, then each subsequent query could potentially return the results in a different order, and give a different page. Also if rows are insert/deleted in between the queries, the results can be slightly different.

Example using firstResult, maxResults
An alternative to using  is to filter the first result in the where clause based on the order by and the value from the previous page.

Example using maxResults and order by
Another alternative is to only query the s, and store this result in a stateful   or an http session. Then query for the set of s for each page.

Example using Ids and IN
Pagination can also be used for server processes, or batch jobs. On the server, it is normally used to avoid using too much memory upfront, and allow processing each batch one at a time. Any of these techniques can be used, also some JPA providers support returning a database cursor for the query results that allows scrolling through the results.

 * TopLink / EclipseLink : Support streams and scrollable cursors through the query hints  and , and   and   classes.

Native SQL Queries
Typically queries in JPA are defined through JPQL. JPQL allows the queries to be defined in terms of the object model, instead of the data model. Since developers are programming in Java using the object model, this is normally more intuitive. This also allows for data abstraction and database schema and database platform independence. JPQL supports much of the SQL syntax, but some aspects of SQL, or specific database extensions or functions may not be possible through JPQL, so native SQL queries are sometimes required. Also some developers have more experience with SQL than JPQL, so may prefer to use SQL queries. Native queries can also be used for calling some types of stored procedures or executing DML or DDL operations.

Native queries are defined through the and  annotations, or   XML element. Native queries can also be defined dynamically using the API.

A native query can be for a query for instances of a class, a query for raw data, an update or DML or DDL operation, or a query for a complex query result. If the query is for a class, the  attribute of the query must be set. If the query result is complex, a Result Set Mapping can be used.

Native queries can be parameterized, so they can be executed with different parameter values. Parameters are defined in SQL using the  syntax for positional parameters, JPA does not require native queries support named parameters, but some JPA providers may. For positional parameter the position starts a 1 (not 0).

A collection of query hints can also be provided to a native query. Query hints can be used to optimize or to provide special configuration to a query. Query hints are specific to the JPA provider. Query hints are defined through the annotation or   XML element.

Result Set Mapping
When a native SQL query returns objects, the SQL must ensure it returns the correct data to build the  using the correct column names as specified in the mappings. If the SQL is more complex and returns different column names, or returns data for multiple objects then a must be used.

is a fairly complex annotation containing an array of, , and. This allows multiple  objects in combination with raw data, and non-mapped classes, to be returned. The  contains an array of, which can be used to map the alias name used in the SQL to the column name required by the mapping. This is required if you need to return two different instances of the same class, or if the SQL needs to alias the columns differently for some reason. Note that in the  the   is the name of the attribute in the object, not the column name in the mapping. This seems odd, because this would make mapping an  or composite id relationship not possible.

Normally it is easiest to either select raw data or a single object with native SQL queries, so s can normally be avoided, as they are quite complex. Also note that even if you select the  and its   with the SQL, these are two unrelated objects, the employee's address is not set, and may trigger a query if accessed unless a cache hit occurs. Some JPA providers may provide a query hint to allow join fetching to be used with native SQL queries.

 * TopLink / EclipseLink : Support join fetching with native SQL queries through the   query hint.

ConstructorResult (JPA 2.1)
JPA 2.1 defines a annotation to allow the returning of non-mapped classes from native SQL queries. The  is similar to the JPQL   operator that allows the calling of a class constructor passing in the raw data. The  has a   and   array of. The target class must define a constructor taking the same number of arguments and types as defined by the.

Stored Procedures
See Stored Procedures

Raw JDBC
It can sometimes be required to mix JDBC code with JPA code. This may be to access certain JDBC driver specific features, or to integrate with another application that uses JDBC instead of JPA.

If you just require a JDBC connection, you could access one from your JEE server's, or connect directly to   or a third party connection pool. If you need a JDBC connection in the same transaction context and your JPA application, you could use a JTA  for JPA and your JDBC access to have them share the same global transaction. If you are not using JEE, or not using JTA, then you may be able to access the JDBC connection directly from your JPA provider.

Some JPA providers provide an API to access a raw JDBC connection from their internal connection pool, or from their transaction context. In JPA 2.0 this API is somewhat standardized by the  API on.

To access a JDBC connection from an, some JPA 2.0 providers may support:

This connection could then be used for raw JDBC access. It normally should not be close when finished, as the connection is being used by the  and will be released when the   is closed or transaction committed.

 * TopLink / EclipseLink : Support unwrapping the JDBC.

/Runtime

title: Java Persistence/Querying


text: Template:Wikitech Bot

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

title: Template:Wikitech Bot


text:
XForms/Disable Buttons

Motivation
You want to remove a delete button to prevent removal of the last item of a list.

Method
Create a binding rule in the model that only allows the button to be displayed if there are two or more elements.

This is very common when you have a "Delete" button that must not be visible if there is only one item in a list left.

One approach is to use the "ref" attribute of each trigger to only display if there are more than one item:

This would count the number of classifiers and display the "delete" button.

Here is an example of this rule:

The above uses the XPath count function with the greater than operator. But since it must be escaped you must use the "&gt;" instead of ">".

Or alternatively the delete button is only visible if the second person record exists in the instance.

This gets around having to count all the elements and doing a comparison. So it is a little bit more efficient for longs lists of items.

This creates a rule call "triggerDisplay" that pin relevancy to an XForms instance.

Link to XForms Application
Load XForms Application

    Demo of Button Disable   Name:     Insert    <xf:label>Delete</xf:label> <xf:delete nodeset="instance('myInstance')/person" at="last" ev:event="DOMActivate"/> </xf:trigger> <xf:submit submission="mySubmission"> <xf:label>Submit instance</xf:label> </xf:submit>

Using the Context attribute
You can also use the context attribute of the trigger to tell it when to fire.

Context
XForms 1.1 Specification

Optional XPath expression used to change the in-scope evaluation context for the delete element. This attribute is ignored if the bind attribute is provided. If the attribute is not given, then the default delete context is the in-scope evaluation context. Otherwise, the XPath expression is evaluated using the in-scope evaluation context, and the first node rule is applied to obtain the delete context. The delete action is terminated with no effect if the delete context is the empty node-set or if the context attribute is not given and the Node Set Binding node-set is empty.

Example of Min and Max
The following disables both the Delete and Add triggers when the number of items approaches the minimum and maximum range.

In this case the XML Schemas for the Person element was the follows:

</xf:instance> <xf:bind id="phone-delete-trigger" nodeset="instance('views')/phone-delete-trigger" relevant="instance('phones')/Phone[3]"/> <xf:bind id="phone-add-trigger" nodeset="instance('views')/phone-add-trigger" relevant="count(instance('phones')/Phone) < 5"/>

<xf:submission id="save" method="post" action="save.xq" replace="all"/> </xf:model>

<xf:label class="group-label">Phone Numbers</xf:label> <xf:repeat id="phone-number-repeat" nodeset="/PersonPhones/Phone"> <xf:input ref="PhoneDescriptionText" class="PhoneDescriptionText" id="PhoneDescriptionText"/> <xf:input ref="PhoneNumber" class="PhoneNumber"/> <xf:trigger bind="phone-delete-trigger"> <xf:label>Delete</xf:label> <xf:delete nodeset="instance('phones')/Phone[index('phone-number-repeat')]" ev:event="DOMActivate"/> </xf:trigger> </xf:repeat> <xf:trigger bind="phone-add-trigger"> <xf:label>Add</xf:label> <xf:action ev:event="DOMActivate"> <xf:insert nodeset="instance('phones')/Phone" at="last" position="after"/> <xf:setvalue ref="/PersonPhones/Phone[index('phone-number-repeat')]/PhoneDescriptionText" value=""/> <xf:setvalue ref="/PersonPhones/Phone[index('phone-number-repeat')]/PhoneNumber" value=""/> <xf:setfocus control="PhoneDescriptionText"/> </xf:action> </xf:trigger>

title: XForms/Disable Buttons


text:
User:Whiteknight/About

My name is Andrew, but I've been going by the online handle Whiteknight for as long as I can remember. I don't mind using my real name per se, but I prefer to use my handle for signing. For more information about me, see.

I'm an Electrical/Computer engineer by training, so most of my content contributions will be made in the engineering or computer science fields. For a list of all books that I am involved with, see my.

As a bureaucrat and a checkuser, I fight vandalism and am available to help other users in a variety of ways. If you need administrative help from me, or other administrators, you can ask.

I operate a number of automated and semi-automated tools from this account. For assistance with a large or repetitive task, or for questions about my various tools, leave me a message on my talk page.

I've received a grant from The Perl Foundation to do work on the Perl 6 book.

title: User:Whiteknight/About


text:
Ecology/Community succession and stability

<< Chapter 4 | Chapter 5 | Chapter 6 >>

Chapter 5. Community Succession and Stability

A community can be defined simply as the assemblage of the various special populations occupying the same place at the same time. (See chapter 4 for more details). Therefore, as defined by the Encyclopedia of Earth, community ecology is the branch of ecology that is how interactions between and among species and the abiotic environment affect community structure, including species richness, species diversity, and patterns of species abundance. (See chapter 7 for more details pertaining to species richness and species diversity). One of the most prominent community ecologists is the late Charles Elton. Recently, community ecologists have recognized that the world's flora and fauna are disappearing at alarming rates; such a discovery has led to an increase in investigations researching community stability.

Community Stability
Community stability can be defined as the ability of a community to defy change or rebound from change. The concept of rebounding from change is known as resilience. General resilience is a measure of stability that assumes system stability increases as return time to equilibrium/non-equilibrium solution decreases after perturbation/ disturbance. A rapid response means that a system recoils quickly back to its state of equilibrium. The concept of defying changing change is known as resistance. Resistance is a measure of the degree to which a variable changes after a perturbation/ disturbance However, measuring stability in a system can be a difficult task. In 1955, Charles Elton proposed a theory that stated a positive stability-diversity relationship was a result of the stability of aggregate community measures like the total biomass. There is much controversy on the definition of stability and how it is measured.

Stability Diversity Hypothesis
The stability-diversity hypothesis states that the more diverse a community is, the more stable and productive the community is. This hypothesis was formed from the basis that more stable and productive communities can use their resources better and more efficiently as compared to communities of less diversity. There are correlations with stability measures like constancy of community production and community resilience to species loss and also alterations to the relative abundance of different species. Early research has overlooked the possibility that unexpected fluctuations in the abundance of species may be more important than species interactions when it comes to creating stability-diversity associations.

There are a couple of arguments for and against this hypothesis. An argument for the hypothesis would be that pest outbreaks occur more often on cultivated (disturbed) land. The argument against this statement is that there is no co-evolutionary history with the pests that reside there.

Another statement that can be used to support the hypothesis is that tropical rain forests (which are more diverse) have fewer pest outbreaks than the temperate forests. The argument against this statement is that there is less known about tropical forest as compared to temperate forest, which are heavily studied.

Several experimental tests of the stability-diversity hypothesis have been done. An experiment by Nelson Hairston using bacteria and Paramecium in a two tiered trophic system showed that the extinction rate would decrease with an increase of bacteria species, this result had an increased stability and supported the hypothesis. He also found that the extinction rate increased when there was more Paramecium species present, this result showed an decrease in stability and rejected the hypothesis.

Another experiment to research the stability-diversity hypothesis was done by Tilman. He did a field experiment carried out over eleven years and found that variation in community biomass decreases with increased species richness. But when it came to year to year variation the biomass of a particular species increased with increasing species richness. These results concluded that diversity increases community stability but not population stability. The shortcoming of Tilman's experiment was that he only observed one trophic tier.

 * Read Ecological effects of biodiversity

Disturbance
Disturbance can be defined as a change in environmental conditions that affects the stability of an ecosystem. It is any distinct event which ultimately results in the loss of biomass (Huston 1994) and mortality of organisms. According to Sousa disturbances cause patchiness in natural systems. Disturbance renew limiting resources and allow species to coexist. These patches allow for migration between them increasing diversity which ultimately prevents local species from extinction. In areas of local species the absence of disturbance results in a decline in species diversity. These recurrent patchy disturbances are characteristics of most natural systems. Examples include fires in terrestrial plant communities, hurricanes and wind throws in forests, storms over coral reefs, burrowing activity of badgers in prairie grasslands, drift logs which batter the marine intertidal, damage caused by grazing elephants in East Africia, and many more. As can be seen via the disturbance link, wildfires and anthropogenic effects, such as deforestation, are examples of ecological disturbances. Disturbances, such as fire, often initiate succession. It should be noted that succession can be managed. For example, the most important disturbance of Mediterranean forests might possibly be forest fires. Mediterranean forests are a key factor in bio-geochemical cycles, in protection of soil from erosion, regulating water runoff in watersheds, and stabilizing slopes. Therefore, in the recent decade, research and political efforts have been geared towards fire-fighting and returning scorched areas to their pre-fire conditions. The connection between community stability and disturbance is one that has been questioned many times. The intermediate disturbance hypothesis suggests that in a community, the highest diversity is seen in communities with intermediate disturbance. And since an increase in diversity equals an increase stability, this hypothesis shows that communities with an intermediate amount of disturbance tend to be the most stable.

The Intermediate Disturbance Hypothesis takes into part both benthic and pelagic abilities. The benthic success includes adult survival and reproduction, and the pelagic success involves larval settlement. The amount of coexistence that a dominant species can tolerate determines how many species can be supported. This hypothesis also states that further settlement by other species is maintained at equilibrium by the balance between settlement, productivity, and mortality but is independent of adult body size. Disturbance increases free space, but settlement decreases it. The three factors that determine the fate of an organism in a habitat are equilibrium free space, disturbance, and settlement. Sufficient settlement with little disturbances yields a habitat that has a stable population.

Problems Determining Stability
In order to determine a community's stability, one must be able to determine the equilibrium point for that community. This may require years of observation. In some cases/communities, the equilibrium point can not be determined because the community is never at an unchanging equilibrium; an example of such a situation is the predator and prey systems. Another problem in determining community stability is in areas that have undergone disturbance but return to equilibrium too quickly. This happens in areas affected by abiotic factors that are under so much stress that they never reach their carrying capacity. If there are alternative stable states, it is sometimes difficult to determine the stability of a population. As a result the community will move towards another equilibrium never returning to its original state.

[]

Charles Elton
Charles Elton was one of the most influential ecologists in history. Born in England in 1900, he studied at Liverpool College and New College, Oxford. He spent most of his time at Oxford. One of his most notable works was the book Animal Ecology (1927). This was the first book to give the basic principles of modern animal ecology. Throughout his career he conducted studies on many different species. He published many books and articles many of which were in the Journal of Animal Ecology which he founded and edited for nearly 20 years. He also received numerous awards for all his work and was a member of many different scientific clubs. He is recognized as having done more than anyone else to explain the complex interrelationships of different animal communities and their effect on their habitat. Elton died in 1991 in Oxford, England.


text:
C++ Programming/Operators/Pointers/To Functions

Pointers to functions
The pointers we have looked at so far have all been data pointers, pointers to functions (more often called function pointers) are very similar and share the same characteristics of other pointers but in place of pointing to a variable they point to functions. Creating an extra level of indirection, as a way to use the functional programming paradigm in C++, since it facilitates calling functions which are determined at runtime from the same piece of code. They allow passing a function around as parameter or return value in another function.

Using function pointers has exactly the same overhead as any other function call plus the additional pointer indirection and since the function to call is determined only at runtime, the compiler will typically not inline the function call as it could do anywhere else. Because of this characteristics, using function pointers may add up to be significantly slower than using regular function calls, and be avoided as a way to gain performance.

To declare a pointer to a function naively, the name of the pointer must be parenthesized, otherwise a function returning a pointer will be declared. You also have to declare the function's return type and its parameters. These must be exact!

Consider:

The function to be referenced must obviously have the same return type and the same parameter type as that of the pointer to function. The address of the function can be assigned just by using its name, optionally prefixed with the address-of operator &. Calling the function can be done by using either ptof or (*ptof).

So:

A function returning a float can't be pointed to by a pointer returning a double. If two names are identical (such as int and signed, or a typedef name), then the conversion is allowed. Otherwise, they must be entirely the same. You define the pointer by grouping the * with the variable name as you would any other pointer. The problem is that it might get interpreted as a return type instead.

It is often clearer to use a typedef for function pointer types; this also provides a place to give a meaningful name to the function pointer's type:

To help reduce confusion, it is popular to typedef either the function type or the pointer type:

If you typedef the function type, you can declare, but not define, functions with that type. If you <tt>typdef</tt> the pointer type, you cannot either declare or define functions with that type. Which to use is a matter of style (although the pointer is more popular).

To assign a pointer to a function, you simply assign it to the function name. The <tt>&</tt> operator is optional (it's not ambiguous). The compiler will automatically select an overloaded version of the function appropriate to the pointer, if one exists:

Using a pointer to a function is even simpler - you simply call it like you would a function. You are allowed to dereference it using the <tt>*</tt> operator, but you don't have to:


text:
Radiation Oncology/Skin/Randomized

Non-melanoma Skin Cancer Randomized Evidence

Surgery vs RT

 * Gustave Roussy (1982-1988) -- surgery vs RT
 * Randomized. 347 patients, primary BCC of the face, <4 cm, confirmed by bx. Arm 1) Surgical resection, at least 2 mm margin vs Arm 2) RT using 3 available techniquest: interstitial brachytherapy Ir-192 65-70 Gy over 5 days (55%), superficial contact RT 50 kV 36/2-40/2 over 2 weeks (33%), orthovoltage RT 8-250 kV 60 Gy in 2-4 Gy/fx 3x/week (12%).
 * 1997 PMID 9218740 -- "Basal cell carcinoma of the face: surgery or radiotherapy? Results of a randomized study." (Avril MF, Br J Cancer. 1997;76(1):100-6.)
 * Outcome: 4-year local failure surgery 0.7% vs RT 7.5% (SS), by modality interstitial BT 9% vs contact RT 7% vs orthovoltage RT 5%.
 * Toxicity: Cosmesis significantly better after surgery than RT, good result according to patients surgery 87% vs RT 69% (SS). Dyspigmentation and telangiectasia in 65%
 * Conclusion: Surgery preferred to RT in smaller BCC of the face

Imiquimod cream 5% (Aldara)

 * Germany -- Imiquimod x 8 weeks vs Imiquimod x 12 weeks
 * Randomized. 90/102 patients with nodular basal cell. Arm 1) imiquimod TIW x8 weeks vs. Arm 2) imiquimod TIW x12 weeks. Both followed by excsion
 * 2007 PMID 17610993 -- "A phase III, randomized, open label study to evaluate the safety and efficacy of imiquimod 5% cream applied thrice weekly for 8 and 12 weeks in the treatment of low-risk nodular basal cell carcinoma." (Eigentler TK, J Am Acad Dermatol. 2007 Oct;57(4):616-21.)
 * Outcome: No difference between arms. Clinical clearance 78%, histological clearance 64%. Residual tumor in 17% of clinical CR
 * Toxicity: minor/moderate local inflammation in 92%
 * Conclusion: No difference between arms. Modest activity, due to 17% residual tumor after clinical CR, recommend excision for all

title: Radiation Oncology/Skin/Randomized


title: User:Dead3y3


text:
Automobile Repair/Nissan/Maxima (4th Generation)/Changing the fuel filter

Tools/Parts needed

 * A short Phillips-head screw driver
 * New fuel filter
 * Some absorbent paper towels or a rag

Procedure

 * 1) First remove fuel pump fuse, this located in the dash board fusebox.  Its a blue 15A fuse all the way on the right side a little over half way down.
 * 2) Now start the engine and wait for it to stall, once it stalls turn it over a few more times to get all the pressure out of the fuel lines.
 * 3) Now find the fuel filter, its in the very back of the engine compartment behind the intake.
 * 4) The fuel filter has two hoses, one coming in the bottom from the fuel pump the and the other coming out the top.  There are clamps on each hose, loosen them with the Phillips-head screw diver and pull them away from the filter.
 * 5) Now pull the hoses off of the filter and try to soak up any fuel remaining in the line with a towel.
 * 6) Attach each line to the new filter and push the clamps back over the hoses and re-tighten the screws with the Phillips-head screw driver.
 * 7) Now just put the fuel pump fuse back in the fuse box.


text:
JavaScript/Useful software tools

A list of useful tools for JS programmers.

Editors / IDEs

 * Adobe Brackets: Another browser-based editor by Adobe
 * Eclipse: The Eclipse IDE includes an editor and debugger for JS
 * Notepad++: A great tool for editing any kind of code. It includes syntax highlighting for many programming languages.
 * Programmers' Notepad: A general tool for programming many languages.
 * Scripted: An open-source browser-based editor by Spring Source
 * Sublime Text: One of the most used editors for HTML/CSS/JS editing
 * Web Storm or IntelliJ IDEA: both IDEs include an editor and debugger for JS, IDEA also includes a Java development platform

Engines and other tools

 * JSLint: static code analysis for JS
 * jq - " 'jq' is like sed for JSON data "
 * List of ECMAScript engines

title: JavaScript/Useful software tools


text:
XQuery/Excel and XML

Excel spreadsheet to XML
Simple tabular spreadsheet data in Excel 2003 and above can be converted to XML using an additional plugin. When downloaded, to install, go to Tools>Add-ins>>Browse to locate the downloaded file and then install. An additional item 'XML tools' should appear on the tool bar.

Converting the spreadsheet

 * 1) Select the XML tools in the menu bar and 'Convert range to a list'. Guided by the tool, select the required cell range, set option for headings and choose 'Advanced' to enter your own name for the root of the document and for each row.
 * 2) Save the spreadsheet as XML data with an xml extension
 * 3) If you need to change the spreadsheet to add or remove columns,  convert the XML  back to a data list by going to Data>> List >> Convert to range.  Make the changes required and then reconvert back to XML
 * 4) If the spreadsheet contains dates or times, you may have problems in conversion.  Set the date format to yyyy-mm-dd. When you convert to XML you will be informed that date formats are incompatible - click "use existing formatting"
 * 5) As a last resort, export the sheet as tab-delimited text, then re-import, ensuring all data is  imported as Text rather than General (which will recognize the dates and set a date type).

Creating an XML spreadsheet from scratch

 * 1) To create a new spreadsheet, enter the headings first.  Select all columns and set the formatting to text.  If you don’t you will likely run into problems with dates and times where it is often difficult to wrest control away from Microsoft.
 * 2) Enter dates in the XML format yyyy-mm-dd - you can set the date format to this
 * 3) Enter the data in the table
 * 4) Finally convert to XML as above

Export from XQuery to Spreadsheet
Data is commonly exported as CSV files but Excel will load tabular XML files which are straightforward to generate with XQuery.

For example, this table of Employee data displays in a browser as indented XML with folding symbols. Saving the file saves the XML data prior to transformation to this display format.

In Firefox, when the page is saved as XML, the filename is the script name with an additional XML suffix. The user will usually need to change this file name. The saved file can then be opened in Excel and after a couple of challenges, the data will be imported.

In IE6, the right-button menu provides an option to export directly to Excel.

The default file name can be set by the exporting script using the HTTP header Disposition....(need example)

Reading and Writing XML Spreadsheet 2003 Format
An example of reading and writing Excel files in the XML Spreadsheet 2003 format is located at https://github.com/lcahlander/codelist-compare

The Microsoft reference for XML Spreadsheet 2003 is located at XML Spreadsheet Reference

title: XQuery/Excel and XML


text:
Radiation Oncology/RT Fields

We are slowly starting to work on putting fields on here... if you have nice fields, please share :) These are just examples; fields for each patient should be designed based on individual contours and situation

 * Cervix, Early
 * Cervix, Advanced
 * Heterotopic Ossification, Elbow
 * Myelodysplastic Spleen

title: Radiation Oncology/RT Fields


text:
User talk:76.1.246.26

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

Xania talk 22:44, 24 September 2007 (UTC)

title: User talk:76.1.246.26


text:
User talk:128.205.55.96

Xania talk 22:46, 24 September 2007 (UTC)

title: User talk:128.205.55.96


text:
User talk:206.15.249.238

Xania talk 22:47, 24 September 2007 (UTC)

title: User talk:206.15.249.238


text:
User talk:204.185.169.253

Your block will expire in 1 day

Xania talk 22:49, 24 September 2007 (UTC)

title: User talk:204.185.169.253


text:
User talk:76.235.123.137

Xania talk 22:50, 24 September 2007 (UTC)

title: User talk:76.235.123.137


text:
User talk:208.66.198.229

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

Xania talk 22:51, 24 September 2007 (UTC)

title: User talk:208.66.198.229


text:
User talk:Kyaus001

Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.

Xania talk 23:21, 24 September 2007 (UTC)

title: User talk:Kyaus001


text:
User talk:Aylaozcan

Come introduce yourself at the new users page. If you have any questions, you can ask there or contact me personally.– Mike.lifeguard  | talk 00:27, 25 September 2007 (UTC)

title: User talk:Aylaozcan


text:
Growing Edible Sprouts/Introduction

Growing Edible Sprouts is the practice of soaking, draining and then rinsing edible seeds at regular intervals until they germinate, or sprout, into an edible sprout.

title: Growing Edible Sprouts/Introduction


text:
Growing Edible Sprouts/Seeds

One of the most common sprouts is that of the mung bean (Vigna radiata), often sold as ‘Chinese Bean Sprouts’; another common sprout is the alfalfa sprout.

Other seeds that can be sprouted for eating include adzuki bean, almond, amaranth, annatto seed, anise seed, arugula, barley, basil, navy bean, pinto bean, lima bean, broccoli, buckwheat, cabbage, canola seed, caragana, cauliflower, celery, chia seed, chickpeas, chives, cilantro (coriander), clover, cress, dill, fennel, fenugreek, flax seed, garlic, hemp seed, kale, kamut, kat, leek, green lentils, pearl millet, mizuna, mustard, oats, onion, black-eyed peas, green peas, pigeon peas, snow peas, peanut, psyllium, pepita (pumpkin seeds), quinoa, radish, rye, sesame, soybean, spelt, sunflower, tatsoi, triticale, watercress, and wheat berries.

Many sprouts are not edible, such as kidney beans. Before eating any sprouts, find out if that species is edible as a sprout. Also, be sure that the seeds are intended for sprouting or human consumption rather than sowing. Seeds intended for sowing may be treated with chemical dressings. Several countries, such as New Zealand, also require that some varieties of edible seed be heat-treated, thus making them impossible to sprout.

Many varieties of nuts, such as almonds and peanuts, can also be started in their growth cycle by soaking and sprouting, although because the sprouts are generally still very tiny when eaten, they are usually called "soaks."

title: Growing Edible Sprouts/Seeds


text:
Growing Edible Sprouts/Water and Air

Moisture, warmth, and in most cases, indirect sunlight are necessary for sprouting. Some sprouts, such as mung beans, can be grown in the dark. Little time, effort or space is needed to make sprouts.

To sprout seeds, the seeds are moistened, then left at room temperature (between 13 and 21 degrees Celsius) in a sprouting vessel. Many different types of vessels can be used. One type is a simple glass jar with a piece of cloth secured over its rim. ‘Tiered’ clear plastic sprouters are commercially available, allowing a number of "crops" to be grown simultaneously. By staggering sowings, a constant supply of young sprouts can be ensured. Any vessel used for sprouting must allow water to drain from it, because sprouts that sit in water will rot quickly. The seeds will swell and begin germinating within a day or two.

Sprouts are rinsed as little as twice a day, but possibly three or four times a day in hotter climates, to prevent them from souring. Each seed has its own ideal sprouting time. Depending on which seed is used, after three to five days they will have grown to two or three inches in length and will be suitable for consumption. If left longer they will begin to develop leaves, and are then known as baby greens. A popular baby green is sunflower after 7-10 days. The growth process of any sprout can be slowed or halted by refrigerating until needed.

title: Growing Edible Sprouts/Water and Air


text:
Growing Edible Sprouts/Nutrition

Sprouts are often classified as herbs rather than vegetables in grocery stores in the United States, the assumption being that sprouts are used to provide flavor or texture to food, rather than being a significant part of a person's diet. Not all sprout varieties have been analyzed for nutritional content.

Two types of sprouts, mung bean sprouts and alfalfa sprouts, are analyzed by the United States Department of Agriculture (USDA) for content of certain nutrients. The USDA analyzes food by weight and volume for specific nutrients considered essential to good health at certain levels. As is true with most edible plants, alfalfa sprouts and mung bean sprouts contain protein, carbohydrates, lipids (fats), minerals, vitamins, and other nutrients.

Alfalfa sprouts weigh 33 grams (1.2 oz) per cup volume, and mung bean sprouts weigh 104 grams (3.7 oz) per cup volume. (Keep in mind that a cup volume is not the same as a liquid measure of one cup, which is 8 fluid ounces.)

Mung bean sprouts, by weight and volume, have most nutrient values exceeding raw spinach, a vegetable high in most plant-based nutrients analyzed by the USDA. Alfalfa sprouts have four times the protein of iceberg lettuce by weight, but only twice its protein by volume. Lettuce has less vitamin C and more vitamin A than alfalfa sprouts.

"Seeds that sprout in distilled water contain more potassium, phosphorus, magnesium, calcium, and sulphur than before the seeds begin to sprout."

Nutritional Content of Alfalfa Sprouts
Comparing the nutrients in a cup of alfalfa sprouts to the nutrients in the same volume of lettuce or spinach will give you some idea how young leafy sprout nutrients compare to those in the mature leaves of commonly consumed plants.

Alfalfa sprouts are higher in protein and lipids than lettuce and spinach greens, but alfalfa sprouts contain very little sugar. Alfalfa sprouts are a good source of phosphorus and zinc, but they are not an especially good source of calcium or iron. Alfalfa sprouts are not a good source of vitamins A, E or K, but the lipids in alfalfa sprouts are predominantly polyunsaturated. Alfalfa sprouts are not a good source of beta carotene.

Toxins in Sprouts
Some legumes can contain toxins, which can be reduced by soaking, sprouting and cooking (e.g., stir frying). Joy Larkcom advises that to be on the safe side “one shouldn’t eat large quantities of raw legume sprouts on a regular basis, no more than about 550g (20oz) daily”.

Buckwheat greens contain fagopyrin, a naturally occurring substance in the buckwheat plant. When ingested in sufficient quantity, fagopyrin is known to cause the skin of animals and people to become phototoxic, which is to say hypersensitive to sunlight, particularly if juiced or eaten in large quantities.

title: Growing Edible Sprouts/Nutrition


text:
User talk:Tai

Welcome message
Hello, and welcome to Wikibooks!

Here are some tips to help you get started:
 * To learn the wiki-markup-language syntax, see Help:Editing.
 * You should sign your name on Talk and vote pages using four tildes, like this: ~~~~
 * There is a box at the top of the edit window that will insert this, too; it looks like part of a signature.
 * Remember to conduct any editing experiments in the sandbox.
 * You can tell the community something about yourself in your userpage.
 * You can get to this page by clicking the tab at the top of the page labeled with your registered username.
 * If you are a Wikipedian, see Wikibooks for Wikipedians for a primer on how things work here (it's a little different).
 * If you want to base your work here on materials from Wikipedia, please use WB:RFI (requests for importation) to bring the material over in compliance with the GFDL.
 * If you're an instructor and plan on using Wikibooks for a class project, see Guidelines for class projects
 * Please say hello at the Staff Lounge with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Please take a look at Naming policy before starting a new book.
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

You will find more resources in Community Portal. If you want to ask a question, visit the Study help desk, the Staff lounge, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be a good idea to add this page to your "watchlist" so that you can see when any new information is posted there. You can do that by clicking the tab labeled "watch" at the top of the page.

Good luck! --Panic 04:46, 25 September 2007 (UTC)

title: User talk:Tai


text:
User talk:BekaT

Welcome message
Hello, and welcome to Wikibooks!

Here are some tips to help you get started:
 * To learn the wiki-markup-language syntax, see Help:Editing.
 * You should sign your name on Talk and vote pages using four tildes, like this: ~~~~
 * There is a box at the top of the edit window that will insert this, too; it looks like part of a signature.
 * Remember to conduct any editing experiments in the sandbox.
 * You can tell the community something about yourself in your userpage.
 * You can get to this page by clicking the tab at the top of the page labeled with your registered username.
 * If you are a Wikipedian, see Wikibooks for Wikipedians for a primer on how things work here (it's a little different).
 * If you want to base your work here on materials from Wikipedia, please use WB:RFI (requests for importation) to bring the material over in compliance with the GFDL.
 * If you're an instructor and plan on using Wikibooks for a class project, see Guidelines for class projects
 * Please say hello at the Staff Lounge with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Please take a look at Naming policy before starting a new book.
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

You will find more resources in Community Portal. If you want to ask a question, visit the Study help desk, the Staff lounge, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be a good idea to add this page to your "watchlist" so that you can see when any new information is posted there. You can do that by clicking the tab labeled "watch" at the top of the page.

Good luck! --Panic 04:47, 25 September 2007 (UTC)

title: User talk:BekaT


text:
User talk:Brown educ 491

Welcome message
Hello, and welcome to Wikibooks!

Here are some tips to help you get started:
 * To learn the wiki-markup-language syntax, see Help:Editing.
 * You should sign your name on Talk and vote pages using four tildes, like this: ~~~~
 * There is a box at the top of the edit window that will insert this, too; it looks like part of a signature.
 * Remember to conduct any editing experiments in the sandbox.
 * You can tell the community something about yourself in your userpage.
 * You can get to this page by clicking the tab at the top of the page labeled with your registered username.
 * If you are a Wikipedian, see Wikibooks for Wikipedians for a primer on how things work here (it's a little different).
 * If you want to base your work here on materials from Wikipedia, please use WB:RFI (requests for importation) to bring the material over in compliance with the GFDL.
 * If you're an instructor and plan on using Wikibooks for a class project, see Guidelines for class projects
 * Please say hello at the Staff Lounge with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Please take a look at Naming policy before starting a new book.
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

You will find more resources in Community Portal. If you want to ask a question, visit the Study help desk, the Staff lounge, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be a good idea to add this page to your "watchlist" so that you can see when any new information is posted there. You can do that by clicking the tab labeled "watch" at the top of the page.

Good luck! --Panic 04:47, 25 September 2007 (UTC)

Copyright problem with Image:TechShop.jpg

 * Please provide a source for this image. Thanks! – Mike.lifeguard  | talk 22:27, 27 November 2007 (UTC)

title: User talk:Brown educ 491


text:
User talk:HenkvD

Welcome message
Hello, and welcome to Wikibooks!

Here are some tips to help you get started:
 * To learn the wiki-markup-language syntax, see Help:Editing.
 * You should sign your name on Talk and vote pages using four tildes, like this: ~~~~
 * There is a box at the top of the edit window that will insert this, too; it looks like part of a signature.
 * Remember to conduct any editing experiments in the sandbox.
 * You can tell the community something about yourself in your userpage.
 * You can get to this page by clicking the tab at the top of the page labeled with your registered username.
 * If you are a Wikipedian, see Wikibooks for Wikipedians for a primer on how things work here (it's a little different).
 * If you want to base your work here on materials from Wikipedia, please use WB:RFI (requests for importation) to bring the material over in compliance with the GFDL.
 * If you're an instructor and plan on using Wikibooks for a class project, see Guidelines for class projects
 * Please say hello at the Staff Lounge with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Please take a look at Naming policy before starting a new book.
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

You will find more resources in Community Portal. If you want to ask a question, visit the Study help desk, the Staff lounge, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be a good idea to add this page to your "watchlist" so that you can see when any new information is posted there. You can do that by clicking the tab labeled "watch" at the top of the page.

Good luck! --Panic 04:47, 25 September 2007 (UTC)

title: User talk:HenkvD


text:
User talk:Sasgh001

Welcome message
Hello, and welcome to Wikibooks!

Here are some tips to help you get started:
 * To learn the wiki-markup-language syntax, see Help:Editing.
 * You should sign your name on Talk and vote pages using four tildes, like this: ~~~~
 * There is a box at the top of the edit window that will insert this, too; it looks like part of a signature.
 * Remember to conduct any editing experiments in the sandbox.
 * You can tell the community something about yourself in your userpage.
 * You can get to this page by clicking the tab at the top of the page labeled with your registered username.
 * If you are a Wikipedian, see Wikibooks for Wikipedians for a primer on how things work here (it's a little different).
 * If you want to base your work here on materials from Wikipedia, please use WB:RFI (requests for importation) to bring the material over in compliance with the GFDL.
 * If you're an instructor and plan on using Wikibooks for a class project, see Guidelines for class projects
 * Please say hello at the Staff Lounge with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Please take a look at Naming policy before starting a new book.
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

You will find more resources in Community Portal. If you want to ask a question, visit the Study help desk, the Staff lounge, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be a good idea to add this page to your "watchlist" so that you can see when any new information is posted there. You can do that by clicking the tab labeled "watch" at the top of the page.

Good luck! --Panic 04:47, 25 September 2007 (UTC)

title: User talk:Sasgh001


text:
User talk:Angusyoungfan

Welcome message
Hello, and welcome to Wikibooks!

Here are some tips to help you get started:
 * To learn the wiki-markup-language syntax, see Help:Editing.
 * You should sign your name on Talk and vote pages using four tildes, like this: ~~~~
 * There is a box at the top of the edit window that will insert this, too; it looks like part of a signature.
 * Remember to conduct any editing experiments in the sandbox.
 * You can tell the community something about yourself in your userpage.
 * You can get to this page by clicking the tab at the top of the page labeled with your registered username.
 * If you are a Wikipedian, see Wikibooks for Wikipedians for a primer on how things work here (it's a little different).
 * If you want to base your work here on materials from Wikipedia, please use WB:RFI (requests for importation) to bring the material over in compliance with the GFDL.
 * If you're an instructor and plan on using Wikibooks for a class project, see Guidelines for class projects
 * Please say hello at the Staff Lounge with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Please take a look at Naming policy before starting a new book.
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

You will find more resources in Community Portal. If you want to ask a question, visit the Study help desk, the Staff lounge, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be a good idea to add this page to your "watchlist" so that you can see when any new information is posted there. You can do that by clicking the tab labeled "watch" at the top of the page.

Good luck! --Panic 04:47, 25 September 2007 (UTC)

title: User talk:Angusyoungfan


text:
User talk:Dshort002

Welcome message
Hello, and welcome to Wikibooks!

Here are some tips to help you get started:
 * To learn the wiki-markup-language syntax, see Help:Editing.
 * You should sign your name on Talk and vote pages using four tildes, like this: ~~~~
 * There is a box at the top of the edit window that will insert this, too; it looks like part of a signature.
 * Remember to conduct any editing experiments in the sandbox.
 * You can tell the community something about yourself in your userpage.
 * You can get to this page by clicking the tab at the top of the page labeled with your registered username.
 * If you are a Wikipedian, see Wikibooks for Wikipedians for a primer on how things work here (it's a little different).
 * If you want to base your work here on materials from Wikipedia, please use WB:RFI (requests for importation) to bring the material over in compliance with the GFDL.
 * If you're an instructor and plan on using Wikibooks for a class project, see Guidelines for class projects
 * Please say hello at the Staff Lounge with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Please take a look at Naming policy before starting a new book.
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

You will find more resources in Community Portal. If you want to ask a question, visit the Study help desk, the Staff lounge, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be a good idea to add this page to your "watchlist" so that you can see when any new information is posted there. You can do that by clicking the tab labeled "watch" at the top of the page.

Good luck! --Panic 04:48, 25 September 2007 (UTC)

title: User talk:Dshort002


text:
User talk:Rabbit827

Welcome message
Hello, and welcome to Wikibooks!

Here are some tips to help you get started:
 * To learn the wiki-markup-language syntax, see Help:Editing.
 * You should sign your name on Talk and vote pages using four tildes, like this: ~~~~
 * There is a box at the top of the edit window that will insert this, too; it looks like part of a signature.
 * Remember to conduct any editing experiments in the sandbox.
 * You can tell the community something about yourself in your userpage.
 * You can get to this page by clicking the tab at the top of the page labeled with your registered username.
 * If you are a Wikipedian, see Wikibooks for Wikipedians for a primer on how things work here (it's a little different).
 * If you want to base your work here on materials from Wikipedia, please use WB:RFI (requests for importation) to bring the material over in compliance with the GFDL.
 * If you're an instructor and plan on using Wikibooks for a class project, see Guidelines for class projects
 * Please say hello at the Staff Lounge with any questions or ideas.
 * Eventually, you might want to read the Manual of Style and Policies and Guidelines.
 * Please take a look at Naming policy before starting a new book.
 * Remember to maintain a Neutral point of view.
 * Explore, be bold in editing pages, and have fun!

You will find more resources in Community Portal. If you want to ask a question, visit the Study help desk, the Staff lounge, IRC channel or ask me personally on my talk page. For site news, see the Bulletin board. It might be a good idea to add this page to your "watchlist" so that you can see when any new information is posted there. You can do that by clicking the tab labeled "watch" at the top of the page.

Good luck! --Panic 04:48, 25 September 2007 (UTC)

title: User talk:Rabbit827


text:
Past LSAT Explained/Method of Argument(LR)

Type
It is mentioned as one possible reason for adopting a policy for which the author suggests an additional reason.

Taking the highest score among multiple LSAT scores may relieve test anxiety for many law school applicants. As critics point out, however, it also encourages students to take the test multiple times, incurring unnecessary costs and time for test preparation. Yet, since the ABA statistics show that the highest score is the better predictor for law school performance than the average score, law schools should change their policy to consider the highest test score rather than the average.

Type
It is a claim that the author attempts to refute with counterarguments. The admissions officer argues that the average score of all LSAT taken is the best measure of the applicant's ability. This is clearly nonsense. Suppose we have one college senior who received a 160 and then a 172. Compare this person with another who received 166 twice. Can we say their abilities are equal? How about someone who got a 172 the first time and 160 the second time due to illness? People who have one score are usually do not take it again because they are satified with the score and often they believe it is the highest possible score.

Type
It is a hypothesis for which the teacher offers additional evidence.

Type
It is cited as an insufficient reason for elimination.

Type
It is cited as an objection that has been raised to the position the author is supporting.

Type
The argument proceeds by

Type
a method of reasoning employed by the argument

Type
a technique of reasoning employed by the argument

Type
X responds by

Type
responds in which one of the following ways

Type
uses which one of the following techniques in countering

Type
the role of the argument X in the argument is

Type
the statement X figures in the argument in which one of the following ways

Type
the statement X plays which of the following roles in the argument?

Type
It presents the conclusion of the argument.

Type
It makes a key word in the argument more precise.

Type
It illustrates a consequence of one of the claims that are used to support the conclusion.

Type
It distracts attention from the point at issue.

Type
It concedes a point that is then used to support the conclusion.


text:
Google Services And Products

Google is the world's most popular search engine. Receiving several billion search queries a day it is the place many people turn to for information fast. But many do not know that there are other Google services and products that are constantly being developed with a focus on innovation. This Wikibook will show the user how to use these services and products for both basic computer user and the advanced user.

Contents

 * [[File:50%.svg]]/Search/
 * [[File:100%.svg]]/Authors/

title: Google Services And Products


text:
User talk:Always811154

作業及討論區

網路學習
小組定義：

芸茵的定義：網路學習是數位學習的一種,但是主要透過網路為媒介,提供資訊與促進學習.

瑞蓮的定義： 就字面上的定義來說，網路學習就是一種利用電腦透過網際網路來學習的方式（Rosenberg,2001）. 而狹義的e-learning就是網路學習，在網際網路上建構數位學校，讓老師及學生可以在數位教室中，進行教與學的活動稱之（陳年興, 魏春旺，2006）. 我國經建會人力規劃處（2001）對網路學習下定義為：「指運用網路促成的學習，包括學習內容的製作、傳遞與擷取學習經驗的管理及學習社群的交流等. 」

羿介的定義：以網路為媒介或平台的教學方式，通常有「同步」與「非同步」兩種模式. 網路學習可以是靜態教學方法(如超連結網頁)和互動教學方法(如討論區、bbs)的混合型式.

網路輔助學習
小組定義：

芸茵的定義：

瑞蓮的定義：將資訊科技融入於課程、教材與教學中，讓資訊科技成為師生一項不可或缺的教學工具與學習工具，使得資訊科技的使用成為教室日常教學活動的一部份，並且延伸地視資訊科技為一心智工具或認知工具，可使學生增進思考及解決問題的能力、協助建構自己的知識體系，達成高層次的學習. （王全世，民89；沈慶珩，民93）

羿介的定義：與網路學習的差別在於在此網路是作為傳統教學方式或教材的輔助，而非教學的主要方式或是媒介.

遠距教學
小組定義：

芸茵的定義：

瑞蓮的定義：遠距教育是一種有系統的教育活動，教材與教學活動由教育機構事先製作完成，在教育的情境中教師與學生可以是分離的，在教與學的過程可以是非同步的，透過科技媒體來連結教師與學生，並提供雙向溝通的功能，使得教師、教材、學生之間得以得互動，而能達到預期的教育目標. （黃孟元、黃嘉勝，民88）

羿介的定義：指學習者和傳授知識或技能的教學者及機構有一定物理距離的教學情境. 以綜合利用電訊傳播或網路科技來達成學習的目標.

資訊科技融入教學
小組定義：

芸茵的定義：使用資訊科技為mindtool促進學習,而非僅藉由資訊科技傳遞知識.

瑞蓮的定義：將資訊科技融入於課程、教材與教學中，讓資訊科技成為師生一項不可或缺的教學工具與學習工具，使得資訊科技的使用成為教室日常教學活動的一部份，並且延伸地視資訊科技為一心智工具或認知工具，可使學生增進思考及解決問題的能力、協助建構自己的知識體系，達成高層次的學習. （王全世，民89；沈慶珩，民93）

羿介的定義：將資訊科技應用在傳統教學的教材、教法和課程中，使得課程和教學的深度和廣度提升，或成為師生參考資料和解決問題的有效工具.

數位學習
小組定義：

芸茵的定義：

瑞蓮的定義：e-learning又稱為e化學習或數位學習. 美國訓練發展協會（簡稱ASTD, 2006）將e-learning 定義為「一組廣泛的應用與程序，例如：網路化學習、電腦化學習、虛擬教室以及數位共同學習. 藉由網際網路、內部網路、外部網路、錄音帶、錄影帶、衛星廣播、互動式電視、唯讀光碟或者其他工具，來傳遞內容的學習方式」. 廣義的e-learning是指凡是採用e化工具來進行學習的方式，就可以稱為 e-learning. （陳年興, 魏春旺，2006）

羿介的定義：泛指利用電腦、網路、或多媒體為媒介或是管道的學習方式.

e-Learning
小組定義：

芸茵的定義：

瑞蓮的定義：同數位學習的定義. 意即e-learning又稱為e化學習或數位學習. 美國訓練發展協會（簡稱ASTD, 2006）將e-learning 定義為「一組廣泛的應用與程序，例如：網路化學習、電腦化學習、虛擬教室以及數位共同學習. 藉由網際網路、內部網路、外部網路、錄音帶、錄影帶、衛星廣播、互動式電視、唯讀光碟或者其他工具，來傳遞內容的學習方式」. 廣義的e-learning是指凡是採用e化工具來進行學習的方式，就可以稱為 e-learning. （陳年興, 魏春旺，2006）

羿介的定義：同數位學習.

關係圖
小組定義：

芸茵的定義：

瑞蓮的定義：

羿介的定義：

title: User talk:Always811154


text:
User talk:Esan

Defination of elearning
Information Technology and Technology - 2007 fall semester 資訊科技與教育

遠距教育

數位學習

資訊教育

title: User talk:Esan


text:
User talk:Minling

960919 網路學習 網路輔助學習 遠距教學

我已經把大家要po的地方都區分好了，小心不要刪掉別人的唷~ by Dawn Wu

網路學習
敏玲的定義: 利用網際網路所進行的教學活動，對於傳統的教學產生許多的改變與影響. 聖育的定義: 學習者利用網際網路的媒體使用和電子教學環境、平台等等來學習或是訓練 大略有三種學習形式：(1)同步(2)非同步(3)混成(blended)式 瑜鴻的定義: 學習者經由網路連結到網站或網路平台，並利用其所提供的數位教材以及資源獲取知識或經驗.

網路輔助學習
敏玲的定義: 利用網際網路的工具輔助學習，進而達成學習成效.

聖育的定義: 教師利用電腦來協助學生學習，以縮短學習時間、提高學習興趣、增加學習成效 以老師為解說課堂內容為主

瑜鴻的定義 即網路輔助傳統面對面學習，教學者運用電腦、網路、影音多媒體技術 提升課程的活潑與寫實性並能進一步引發學習者的興趣與提高互動.

遠距教學
敏玲的定義: 遠距教學方式則隨應用電腦與電信之傳播媒體的演進，在各階段發揮其不同的功效. 因地理上的距離，老師與學生無法同地同時進行教學活動，藉由遠距教學之方式作為時空隔閡之橋樑，達到教育目的. 空大是我國第一個從事遠距教學的機構，以現有的無線電視頻道為教學的傳輸系統

聖育的定義: 遠距教學主要是一種跨越時間、空間以及地點的學習方式，最早是以隔空教學這個名詞來稱呼； 意義為當學生與老師被時空阻隔時，師生之間就必須藉由傳播媒體，來傳遞資訊以提供互動 其構成的元素，我認為有以下幾種:(1)跨時間空間(2)以媒體為基礎(3)以學生為學習的重心

瑜鴻的定義 是指教學者和學習者經由傳播通訊媒體、網路、電腦相關軟硬體視訊設備等， 在沒有時間和空間的限制下同步進行的教與學活動.

資訊科技融入教學
敏玲的定義: 資訊科技融入教學，從科技整合的觀點，包含電腦的軟硬體及教學策略的整合，其目的提高 學生的學習成效，並使學生能扮演主動的學習者.

聖育的定義: 教師能夠妥善的運用科技資源以及相關媒體來設計教學的內容，並且 運用在課程之中，同時學習者也可以利用這些資訊媒體去分析知識、運用 同時能夠有效率的解決問題並且整合學習資源等等以提升學習效果.

瑜鴻的定義 教學者在教學時，能妥善運用資訊科技、網路、媒體於教學內容中，並透過資訊科技的特色， 讓學習者能有效率的學習，進而提昇教師的教學效能、及學生的學習成果.

數位學習
敏玲的定義: 數位學習利用電子化的教學科技，讓學習者透過網路與電腦輔助的學習環境與機制，不受時間與地點的限制，獲得專家 或講師的智慧傳授、進行學習，並更進一步促成組織內知識的擷取、傳播、保存與管理.

聖育的定義: 能夠運用網際網路以及資訊科技工具為學習的一種學習模式，藉由數位化(digital)所提供 之教學內容來創造學習經驗以達成學習目的.

瑜鴻的定義 學習者與教學者不再受限於傳統面對面授課固定時間、地點的限制，可以隨時隨地透過網路進行互動教學， 學習者可以依自己的學習環境及狀態彈性的調整自己的學習進度；教學者亦可視學習者的情況調整其教學進度. 數位學習的教學模式可分為同步學習(Synchronous Learning) 、非同步學習(Asynchronous Learning) 、混合式學習(Blended Learning)三種.

e-Learning
敏玲的定義:

聖育的定義: e-learnig 就如同數位學習的本意，在這邊的e代表了許多意義； 如electronic(電子化) 將傳統的紙本文字數位、電子化 efficiency(有效率) 運用之媒體以及科技能夠建構屬於個人知識，同時能夠縮減不必要的人力以及財力 等等 瑜鴻的定義 透過任何電子化科技來進行的學習方式.

title: User talk:Minling


text:
XQuery/Wikipedia Page scraping

Page scraping allows any web page to be the source of raw data suitable for transformation. This example takes the data on the Wikipedia current events page 24 September 2007 and transforms to a simple HTML page

The key components of an XQuery page scraper are:

 * 1) The fn:doc function which accepts a URL and retrieves the page as XML.  Many pages are not well-formed XML, but the Wikipedia pages are.
 * 2) Setting a namespace if the page has a default namespace. This page has a default namespace of "http://www.w3.org/1999/xhtml" so a namespace must be declared and its namespace prefix used in path expressions which access the page's XML.
 * 3) Identification of a path to the selected content. In this case, the content is located in a td tag with a class of 'description'
 * 4) Re-basing any relative URLs.  Here the links to Wikipedia articles have relative URLs.  To re-base these, the XML is serialized to a string with util:serialize, the relative URLs edited with replace, and the string  converted back to XML using util:parse

Sample XQuery to Extract Data from Wikipedia Current Events Page
In this example, there is some date re-formating to do since the date format in the page's URL is not the XML formated date. Links to the previous and next days are included, making use of XQuery date arithmetic.

title: XQuery/Wikipedia Page scraping


text:
LPI Linux Certification/Kernel Components

Detailed Objective (201.1)
(LPIC-2 Version 4.5)

Weight: 2

Description: Candidates should be able to utilize kernel components that are necessary to specific hardware, hardware drivers, system resources and requirements. This objective includes implementing different types of kernel images, identifying stable and development kernels and patches, as well as using kernel modules.

Key Knowledge Areas:
 * Kernel 2.6.x, 3.x and 4.x documentation

The following is a partial list of the used files, terms and utilities:
 * xz compression
 * xz compression
 * xz compression
 * xz compression
 * xz compression

Kernel Image Formats
Two types of kernel image formats can be used on Intel platforms: zImage and bzImage. The difference between them is the way they bootstrap and how large the kernel can be, not the compression algorithm as one might think. Both use gzip for compression.

zImage

This is the old boot image format for Intel, which works on all known PC hardware. The bootstrap and the unpacked kernel are loaded into the good old, 8086-era 640 KB of low memory. The allowed kernel size is 520 KB. If your kernel excedes this size, you either have to switch to bzImage or put more of the kernel into modules. The boot image builder will tell you when this is the case.

bzImage

The b in this format stands for big. The bzImage kernel image is not restricted to 520 KB or even 640 KB. bzImage is now the preferred boot image. Though there are some reports of boot failures using this boot image type, these problems are being pursued because the kernel developers want the format to work on all Intel hardware.


text:
LPI Linux Certification/Compiling A Kernel

Detailed Objectives (201.2)
(LPIC-2 Version 4.5)

Weight: 2

Description: Candidates should be able to properly configure a kernel to include or disable specific features of the Linux kernel as necessary. This objective includes compiling and recompiling the Linux kernel as needed, updating and noting changes in a new kernel, creating an initrd image and installing new kernels.

Key Knowledge Areas:
 * Kernel Makefiles
 * Kernel 2.6.x/3.x make targets
 * Customize the current kernel configuration.
 * Build a new kernel and appropriate kernel modules.
 * Install a new kernel and any modules.
 * Ensure that the boot manager can locate the new kernel and associated files.
 * Module configuration files
 * Use DKMS to compile kernel modules.
 * Awareness of
 * Awareness of

The following is a partial list of the used files, terms and utilities:
 * make targets (all, config, xconfig, menuconfig, gconfig, oldconfig, mrproper, zImage, bzImage, modules, modules_install, rpm-pkg, binrpm-pkg, deb-pkg)
 * module tools
 * make targets (all, config, xconfig, menuconfig, gconfig, oldconfig, mrproper, zImage, bzImage, modules, modules_install, rpm-pkg, binrpm-pkg, deb-pkg)
 * module tools
 * module tools
 * module tools
 * module tools


text:
LPI Linux Certification/Patching A Kernel

Detailed Objective
Weight: 1

Description: Candidates should be able to properly patch a kernel to add support for new hardware. This objective also includes being able to properly remove kernel patches from already patched kernels.

 * Key knowledge area(s):
 * Kernel Makefiles

 * The following is a partial list of the used files, terms and utilities:
 * patch
 * gzip
 * bzip2


text:
LPI Linux Certification/Customising A Kernel

Detailed Objective
Weight: 2

Description: Candidates should be able to customise, build and install a 2.6 kernel for specific system requirements, by patching, compiling and editing configuration files as required. This objective includes being able to assess requirements for a kernel compile as well as build and configure kernel modules.

 * Key knowledge area(s):
 * Customize the current kernel configuration
 * Build a new kernel and appropriate kernel modules
 * Install a new kernel and any modules
 * Ensure that the boot manager can locate the new kernel and associated files
 * /usr/src/linux/
 * Module configuration files

 * The following is a partial list of the used files, terms and utilities:
 * patch
 * make
 * module tools
 * /usr/src/linux/*
 * /usr/src/linux/.config
 * /lib/modules/kernel-version/*
 * /boot/*
 * make targets: all, config, menuconfig, xconfig, gconfig oldconfig, modules, install, modules_install, depmod, rpm-pkg, binrpm-pkg, deb-pkg


text:
LPI Linux Certification/Customising System Startup & Boot Processes

Detailed Objective (202.1)
(LPIC-2 Version 4.5)

Weight: 4

Description: Candidates should be able to query and modify the behaviour of system services at various targets / run levels. A thorough understanding of the systemd, SysV Init and the Linux boot process is required. This objective includes interacting with systemd targets and SysV Init runlevels.

Key Knowledge Areas:
 * Systemd
 * SysV init
 * Linux Standard Base Specification (LSB)

The following is a partial list of the used files, terms and utilities:
 * and
 * and
 * and
 * and
 * and
 * and
 * and
 * and
 * and
 * and
 * and


text:
LPI Linux Certification/System Recovery

Detailed Objective (202.2)
(LPIC-2 Version 4.5)

Weight: 4

Description: Candidates should be able to properly manipulate a Linux system during both the boot process and during recovery mode. This objective includes using both the init utility and init-related kernel options. Candidates should be able to determine the cause of errors in loading and usage of bootloaders. GRUB version 2 and GRUB Legacy are the bootloaders of interest. Both BIOS and UEFI systems are covered.

Key Knowledge Areas:
 * BIOS and UEFI
 * NVMe booting
 * GRUB version 2 and Legacy
 * grub shell
 * boot loader start and hand off to kernel
 * kernel loading
 * hardware initialisation and setup
 * daemon/service initialisation and setup
 * Know the different boot loader install locations on a hard disk or removable device.
 * Overwrite standard boot loader options and using boot loader shells.
 * Use systemd rescue and emergency modes.

Terms and Utilities:
 * ,  and   with SysV init
 * The contents of,   and
 * EFI System Partition (ESP)
 * GRUB
 * UEFI shell
 * Master boot record
 * UEFI shell
 * Master boot record
 * UEFI shell
 * Master boot record
 * Master boot record

title: LPI Linux Certification/System Recovery


text:
LPI Linux Certification/Operating The Linux File System

Detailed Objective (203.1)
(LPIC-2 Version 4.5)

Weight: 4

Description: Candidates should be able to properly configure and navigate the standard Linux filesystem. This objective includes configuring and mounting various filesystem types.

Key Knowledge Areas:
 * The concept of the  configuration.
 * Tools and utilities for handling swap partitions and files.
 * Use of UUIDs for identifying and mounting file systems
 * Understanding of systemd mount units

Terms and Utilities:
 * and
 * and
 * and
 * and

Mounting and umounting partition
To access an existing partition you need to mount it first using the mount command. For example if you want to mount a ntfs partition on /mnt/windows you should issue the following command: mount -t ntfs /dev/hda3 /mnt/windows Of course you need to change hda3 with your ntfs partition. To umount a partition you simply need to use umount umount /mnt/windows or umount /dev/hda3 If you use mount without arguments it will print the currently mounted devices, you can also see /proc/mounts and /etc/mtab to discover which partition are currently mounted.

Fstab
If you want to use a more automatic method to mount filesystem you should edit /etc/fstab

proc           /proc           proc    defaults        0       0 /dev/hda2      /               ext3    defaults        0       1 /dev/hda4      none            swap    defaults        0       0 /dev/hda1      /boot           ext3    defaults        0       2 /dev/hda3      /mnt/windows    ntfs    defaults        0       0 /dev/hdb       /media/cdrom    iso9660 ro,user,noauto  0       0 /dev/fd0       /media/floppy   auto    user,noauto     0       0

In the above example of /etc/fstab we have the ntfs partition mounted automatically during the system boot on /mnt/windows, while on the cdrom and floppy devices we have specified the noauto and user options, this means that they aren't mounted during boot but also that any user can mount it whenever they need. The sixth field should be 1 for root filesystem and 2 for other fs that need to be checked with fsck during boot.

Swap
The swap partition can be used as virtual memory, to create a swap partition you should use mkswap

mkswap /dev/hda4

and need to be activated with swapon

swapon /dev/hda4

you can also deactivate it with swapoff

swapoff /dev/hda4

Sync
The sync utility can be used to force the change onto the partition, modern filesystem like ext3 or reiserfs sync the partition every time that a change is made so you don't need to issue the command manually.


text:
LPI Linux Certification/Maintaining A Linux File System

Detailed Objective (203.2)
(LPIC-2 Version 4.5)

Weight: 4

Description: Candidates should be able to properly maintain a Linux filesystem using system utilities. This objective includes manipulating standard filesystems and monitoring SMART devices.

Key Knowledge Areas:
 * Tools and utilities to manipulate ext2, ext3 and ext4
 * Tools and utilities to perform basic Btrfs operations, including subvolumes and snapshots
 * Tools and utilities to manipulate XFS
 * Awareness of ZFS

Terms and Utilities:
 * ,,  ,   and
 * ,,  ,   and
 * ,,  ,   and
 * ,,  ,   and
 * ,,  ,   and
 * ,,  ,   and

Formatting a partition
Before you format a partition you need to choose the right filesystem for your needs. The most common filesystem on linux is ext3 which is a journaled filesystem based on ext2. To format a partition with a filesystem you need to use the mkfs.* commands

#ext3 mkfs.ext3 /dev/hda1 #fat mkfs.vfat /dev/hda1 #xfs mkfs.xfs /dev/hda1 #reiserfs mkfs.reiserfs /dev/hda1

to create an ext2/ext3 filesystem you can also use the mke2fs utility

mke2fs /dev/hda1 mke2fs -j /dev/hda1
 * 1) ext2
 * 1) ext3

Configuring and repair filesystem
tune2fs it's an utility used to tune ext2/ext3 filesystem

tune2fs -j /dev/hda1 tune2fs -c 30 /dev/hda1 tune2fs -i 10d /dev/hda1
 * 1) add the journal to an ext2 filesystem(convert from ext2 to ext3)
 * 1) set the max mount count before the filesystem is checked for errors to 30
 * 1) set the max time before the filesystem is checked for errors to 10 days

you can also tune a reiserfs partition using reiserfstune

reiserfstune --journal-new-device /dev/hda2 -f /dev/hda1
 * 1) create a new journal for /dev/hda1 into /dev/hda2

to check a filesystem for errors you can use fsck.*

#ext3 fsck.ext3 /dev/hda1 #fat fsck.vfat /dev/hda1 #xfs fsck.xfs /dev/hda1 #reiserfs fsck.reiserfs /dev/hda1

you can also just run fsck /dev/hda1 directly and it will detect the filesystem


text:
LPI Linux Certification/Creating & Configuring File System Options

Detailed Objectives (203.3)
(LPIC-2 Version 4.5)

Weight: 2

Description: Candidates should be able to configure automount filesystems using AutoFS. This objective includes configuring automount for network and device filesystems. Also included is creating filesystems for devices such as CD-ROMs and a basic feature knowledge of encrypted filesystems.

Key Knowledge Areas:
 * autofs configuration files
 * Understanding of automount units
 * UDF and ISO9660 tools and utilities
 * Awareness of other CD-ROM filesystems (HFS)
 * Awareness of CD-ROM filesystem extensions (Joliet, Rock Ridge, El Torito)
 * Basic feature knowledge of data encryption (dm-crypt / LUKS)

Terms and Utilities:


text:
LPI Linux Certification/Configuring RAID

Detailed Objective (204.1)
(LPIC-2 Version 4.5)

Weight: 2

Description: Candidates should be able to configure and implement software RAID. This objective includes using and configuring RAID 0, 1 and 5.

Key Knowledge Areas:
 * Software raid configuration files and utilities

Terms and Utilities:
 * partition type 0xFD
 * partition type 0xFD
 * partition type 0xFD
 * partition type 0xFD


text:
LPI Linux Certification/Adding New Hardware

Detailed Objective
Weight: 3

Description: Candidates should be able to configure internal and external devices for a system including new hard disks, dumb terminal devices, serial UPS devices, multi-port serial cards, and LCD panels.

 * Key knowledge area(s):
 * X.org
 * XFree86
 * Module tools
 * Tools and utilities to list various hardware information (e.g. lsdev, lspci, etc.)
 * Tools and utilities to manipulate legacy interfaces (RS232, LPT, etc)
 * Tools and utilities to manipulate USB devices

 * The following is a partial list of the used files, terms and utilities:
 * modprobe
 * lsmod
 * lsdev
 * lspci
 * setserial
 * usbview
 * lsusb


text:
LPI Linux Certification/Software & Kernel Configuration

Detailed Objective
Weight: 2

Description: Candidates should be able to configure kernel options to support various drives. This objective includes using LVM (Logical Volume Manager) to manage hard disk drives and partitions, as well as software tools to view & modify hard disk settings.

 * Key knowledge area(s):
 * Tools and utilities to configure DMA for IDE devices including ATAPI and SATA
 * LVM tools and utilities
 * Tools and utilities to manipulate or analyse system resources (e.g. interrupts)

 * The following is a partial list of the used files, terms and utilities:
 * /proc/interrupts
 * hdparm
 * tune2fs
 * sysctl


text:
LPI Linux Certification/Configuring PCMCIA Devices

Detailed Objective
Weight: 1

Description: Candidates should be able to configure a Linux installation to include support for mobile computer hardware extensions. This objective includes configuring those devices.

 * Key knowledge area(s):
 * PCCard and PCMCIA
 * PCCard and PCMCIA configuration files, tools and utilities

 * The following is a partial list of the used files, terms and utilities:
 * /etc/pcmcia/
 * *.opts
 * cardctl
 * cardmgr


text:
LPI Linux Certification/Configuring A Samba Server

Detailed Objectives
(LPIC-2 Version 4.5)

Weight: 5

Description: Candidates should be able to set up a Samba server for various clients. This objective includes setting up Samba as a member in an Active Directory. Furthermore, the configuration of simple CIFS and printer shares is covered. Also covered is a configuring a Linux client to use a Samba server. Troubleshooting installations is also tested.

Key Knowledge Areas:
 * Samba 4 documentation
 * Samba 4 configuration files
 * Samba 4 tools and utilities and daemons
 * Mounting CIFS shares on Linux
 * Mapping Windows user names to Linux user names
 * User-Level, Share-Level and AD security

Terms and Utilities:


text:
LPI Linux Certification/Configuring An NFS Server

Detailed Objectives (209.2)
(LPIC-2 Version 4.5)

Weight: 3

Description: Candidates should be able to export filesystems using NFS. This objective includes access restrictions, mounting an NFS filesystem on a client and securing NFS.

Key Knowledge Areas:
 * NFS version 3 configuration files
 * NFS tools and utilities
 * Access restrictions to certain hosts and/or subnets
 * Mount options on server and client
 * TCP Wrappers
 * Awareness of NFSv4

Terms and Utilities:


text:
LPI Linux Certification/System Logging

Detailed Objective
Weight: 2

Description: Candidates should be able to configure the syslog daemon. This objective also includes configuring the logging daemon to send log output to a central log server or accept log output as a central log server.

 * Key knowledge area(s):
 * syslog configuration files
 * syslog
 * standard facilities, priorities and actions

 * The following is a partial list of the used files, terms and utilities:
 * syslog.conf
 * syslogd
 * klogd
 * logger

title: LPI Linux Certification/System Logging


text:
LPI Linux Certification/Packaging Software

Detailed Objective
Weight: 1

Description: Candidates should be able to build a software package. This objective includes building or rebuilding both RPM and DEB packaged software.

 * Key knowledge area(s):
 * RPM description, software and commands
 * DEB description, software and commands
 * SPEC file format
 * debian/rules file format

 * The following is a partial list of the used files, terms and utilities:
 * rpmbuild
 * The contents of /var/lib/rpm and /usr/lib/rpm/
 * var/cache/debconf/
 * dpkg-deb
 * dpkg


text:
LPI Linux Certification/Backup Operations

Detailed Objective (206.2)
(LPIC-2 Version 4.5)

Weight: 3

Description: Candidates should be able to use system tools to back up important system data.

Key Knowledge Areas:
 * Knowlegde about directories that have to be include in backups.
 * Awareness of network backup solutions such as Amanda, Bacula, Bareos and BackupPC.
 * Knowledge of the benefits and drawbacks of tapes, CDR, disk or other backup media.
 * Perform partial and manual backups.
 * Verify the integrity of backup files.
 * Partially or fully restore backups.

Terms and Utilities:
 * and
 * and
 * and
 * and


text:
LPI Linux Certification/Automating Tasks Using Scripts

Detailed Objective
Weight: 3

Description: Candidates should be able to write simple scripts to automate tasks using different common scripting languages. Tasks for automation include checking processes, process execution, parsing logs, synchronising files across machines, monitoring files for changes, generating and sending e-mail alerts and notifying administrators when specified users log in or out.

 * Key knowledge area(s):
 * Standard text manipulation software such as awk and sed
 * BASH
 * cron configuration files
 * at daemon usage
 * Remote copying software such as rsync and scp
 * Perl: basic commands

 * The following is a partial list of the used files, terms and utilities:
 * perl, bash, awk, sed
 * crontab
 * at


text:
LPI Linux Certification/Creating Recovery Disks

Detailed Objective
Weight: 1

Description: Candidates should be able to create bootdisks for system entrance and recovery disks for system repair.

 * Key knowledge area(s):
 * Filesystem configuration files
 * INIT configuration files
 * Any standard editor
 * Familiarity with the location and contents of the LDP Bootdisk-HOWTO
 * Tools to manipulate the MBR
 * Tools and utilities to copy and mount filesystems
 * GRUB
 * LILO
 * Loop devices
 * Making CD or USB storage devices bootable

 * The following is a partial list of the used files, terms and utilities:
 * /etc/fstab
 * /etc/inittab
 * /usr/sbin/rdev
 * /bin/cat
 * /bin/mount (includes -o loop switch)
 * /sbin/lilo
 * /bin/dd
 * /sbin/mke2fs
 * /usr/sbin/chroot


text:
LPI Linux Certification/Identifying Boot Stages

Detailed Objective
Weight: 1

Description: Candidates should be able to determine, from bootup text, the 4 stages of the boot sequence and distinguish between each.

 * Key knowledge area(s):
 * boot loader start and hand off to kernel
 * kernel loading
 * hardware initialisation and setup
 * daemon initialisation and setup

 * The following is a partial list of the used files, terms and utilities:
 * Not applicable.


text:
LPI Linux Certification/Troubleshooting Bootloaders

Detailed Objective
Weight: 1

Description: Candidates should be able to determine specific stage failures and corrective techniques.

 * Key knowledge area(s):
 * LILO
 * GRUB
 * Know the different bootloader install locations on a hard disk or removable device
 * Overwriting standard bootloader options or using bootloader shells

 * The following is a partial list of the used files, terms and utilities:
 * The contents of /boot/ and /boot/grub/
 * /etc/lilo.conf
 * grub
 * grub-install
 * lilo


text:
LPI Linux Certification/General Troubleshooting

Detailed Objective
Weight: 1

Description: Candidates should be able to recognise and identify boot loader and kernel specific stages and utilise kernel boot messages to diagnose kernel errors. This objective includes being able to identify and correct common hardware issues and be able to determine if the problem is hardware or software.

 * Key knowledge area(s):
 * /proc filesystem
 * Various system and daemon log files
 * Content of /, /boot, and /lib/ modules
 * Screen output during bootup
 * Kernel syslog entries in system logs (if entry is able to be gained)
 * Tools and utilities to analyse information about the used hardware
 * Tools and utilities to trace software

 * The following is a partial list of the used files, terms and utilities:
 * dmesg
 * /sbin/lspci
 * /usr/bin/lsdev
 * /sbin/lsmod
 * /sbin/modprobe
 * /sbin/insmod
 * /bin/uname
 * strace
 * strings
 * ltrace
 * lsof


text:
LPI Linux Certification/Troubleshooting System Resources

Detailed Objective
Weight: 1

Description: Candidates should be able to identify, diagnose and repair local system issues when using software from the command line.

 * Key knowledge area(s):
 * Core system variables
 * The contents of:
 * /etc/profile && /etc/profile.d/
 * /etc/init.d/
 * /etc/rc.*
 * /etc/sysctl.conf
 * /etc/bashrc
 * /etc/ld.so.conf
 * or other appropriate global shell configuration files
 * Any standard editor
 * Standard tools, utilities and commands to manipulate the above files and variables

 * The following is a partial list of the used files, terms and utilities:
 * /bin/ln
 * /bin/rm
 * /sbin/ldconfig
 * /sbin/sysctl


text:
LPI Linux Certification/Troubleshooting Environment Configurations

Detailed Objective
Weight: 1

Description: Candidates should be able to identify common local system and user environment configuration issues and common repair techniques.

 * Key knowledge area(s):
 * Core system variables
 * init configuration files
 * init start process
 * cron configuration files
 * Login process
 * User-password storage files
 * Determine user group associations
 * SHELL configuration files of bash and csh
 * Analysing which processes or daemons are running

 * The following is a partial list of the used files, terms and utilities:
 * /etc/inittab
 * /etc/rc.local
 * /etc/rc.boot
 * /var/spool/cron/crontabs/
 * The default shell configuration file(s) in /etc/
 * /etc/login.defs
 * /etc/syslog.conf
 * /etc/passwd
 * /etc/shadow
 * /etc/group
 * /sbin/init
 * /usr/sbin/cron
 * /usr/bin/crontab


text:
Talk:Blender 3D: Noob to Pro/Flying Through A Canyon

I've gone through and made some grammatical and spelling fixes, as well as clarifying several points and integrating several users additions into the text. It is now entirely followable and applicable to 2.49b. It still remains unfinished at the bottom with the water bit. Next steps to improve it could be to add some illustrative pictures and finish the bottom bit or simply delete that section. --WithAlligators (talk) 23:16, 2 March 2010 (UTC)

This is a decent tutorial, but it has so many spelling and gramatical errors that it is difficult to follow. I suggest updating it.

Tosnic says: I really do not understand one thing of the last three points under "creating and working a path" which write: "Go back to the animation screen. Change the End Frame to 250. Now, on the right hand side, with the path selected, select the IPO type Path on the screen.  We need to make the speed last all 250 frames. While in the IPO Editor view, hit K, or go to View -> Show Keys. Select the last key. It should be at frame 100 already. Simply move it over 150 frames with Grab (g) and Ctrl Playback your animation to enjoy it" The bold text is especially cryptic to me. Where can I select the "IPO type Path"?

Cryptic this is. Once again Transcendant on #blender@freenode cleared this one up for me - in the IPO Editor Window change the dropdown box on the bottom right from "Object" to "Path". You will now see the 'Speed' component of the animation.

Change type of tutorial
I noticed one user had mentioned that a clouds texture worked well for this tutorial as well, I tried it out and after playing around with it a little, I found that it also makes excellent landscapes! How about I totally rewrite this tutorial as how to make a landscape? --JamesNZ (discuss • contribs) 09:03, 18 July 2011 (UTC)


text:
User:RobinH/monobook.js

import_script('User:Whiteknight/google.js');

title: User:RobinH/monobook.js


text:
Cookbook talk:Sauerkraut I

Grams of Salt
6 grams salt = 1 teaspoon salt 18 grams salt = 1 table spoon salt Jmcw37 12:52, 25 September 2007 (UTC)

title: Cookbook talk:Sauerkraut I


text:
User:Nidish

wait

title: User:Nidish