Get
You'll find Get is used in a very similar way to retrieving data with CodeIgniter's Active Record class. All the relevant query clauses from Active Record are available in DataMapper so you have the full power of retrieving data, in Active Record style!
Note: There are enough differences between CodeIgniter and DataMapper's Active Record like query clauses that you should read on to be able to take full advantage of it.
Now, let's look at all the available methods. We'll assume we have a DataMapper model setup, named Object.
Subsections
- Basic Get (This Section)
- Field Selection
- Limiting Results
- Query Grouping
- Other Features
- Method Chaining
- Active Record Caching
$object->get();
Runs the selection query and returns the result. Can be used by itself to retrieve all records from a table:
$o = new Object(); $o->get(); // The $o object is populated with all objects from its corresponding table
The first and second parameters enable you do set a limit and offset clause:
$o = new Object(); $o->get(10, 20); // The $o object is populated with 10 objects from its corresponding table, starting from record 20
You can view the results in a couple of ways. Viewing the first result:
$o = new Object(); $o->get(); echo $o->title;
Viewing all results:
$o = new Object(); $o->get(); foreach ($o as $obj) { echo $obj->title; }
If you are looping over the results, and don't need direct access, you may see a performance improvement by using get_iterated.
$object->validate->get();
Normally, get() will generate its query from building up any query clauses you have setup before calling get(). If none are setup, it will default to selecting all records from the objects corresponding table. However, there is a special situation where get() will use the values present within the current object. This happens if you run the validate() function before a get() call.
Note: When doing $object->validate()->get(); all other query clauses (such as select, where etc) will be ignored.
Ok, so to explain this, I'll use an example I've used before from the Getting Started page. Taking part of the example from there, we see that the User model is setup to encrypt the password field with the salt from the matching users stored record (by username), when they attempt to login.
User model (excerpt)
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142function login() { // backup username for invalid logins $uname = $this->username; // Create a temporary user object $u = new User(); // Get this users stored record via their username $u->where('username', $uname)->get(); // Give this user their stored salt $this->salt = $u->salt; // Validate and get this user by their property values, // this will see the 'encrypt' validation run, encrypting the password with the salt $this->validate()->get(); // If the username and encrypted password matched a record in the database, // this user object would be fully populated, complete with their ID. // If there was no matching record, this user would be completely cleared so their id would be empty. if ($this->exists()) { // Login succeeded return TRUE; } else { // Login failed, so set a custom error message $this->error_message('login', 'Username or password invalid'); // restore username for login field $this->username = $uname; return FALSE; } }
Here's how the models login function was called. You can see the username and unencrypted password is set on the user object before calling the login function.
Controller (excerpt)
// Create user object $u = new User(); // Put user supplied data into user object // (no need to validate the post variables in the controller, // if you've set your DataMapper models up with validation rules) $u->username = $this->input->post('username'); $u->password = $this->input->post('password'); // Attempt to log user in with the data they supplied, using the login function setup in the User model // You might want to have a quick look at that login function up the top of this page to see how it authenticates the user if ($u->login()) { echo '
Welcome ' . $this->username . '!
'; echo '
You have successfully logged in so now we know that your email is ' . $this->email . '.
'; } else { // Show the custom login error message echo '
' . $this->error->login . '
'; }
So, inside, the models login function, $object->validate->get(); is called which runs the validation functions, defined in the model, on the objects properties, and then it does a get using the validated properties.
$object->get_where();
Identical to the above function except that it permits you to add a "where" clause in the first parameter, instead of using the $object->where() function:
$o = new Object(); $o->get_where(array('id', => $id), $limit, $offset);
Please read the where function below for more information.
Field Selection
Use the following methods to limit or change which fields are selected.
You can select values from related objects and join tables in the next section, Get (Advanced). There are also methods for selecting SQL Functions and Subqueries.
$object->select();
Permits you to write the SELECT portion of your query:
$o = new Object(); $o->select('title, description'); $o->get(); // The $o object is populated with all objects from its corresponding table, but with only the title and description fields populated
Note: If you are selecting all (*) from a table you do not need to use this function. When omitted, DataMapper assumes you wish to SELECT *
$object->select_max();
Writes a "SELECT MAX(field)" portion for your query. You can optionally include a second parameter to rename the resulting field.
$o = new Object(); $o->select_max('age'); $o->get(); // The $o object is populated with a single object from its corresponding table, but with only the age field populated, which contains the maximum age
$object->select_min();
Writes a "SELECT MIN(field)" portion for your query. As with select_max(), You can optionally include a second parameter to rename the resulting field.
$o = new Object(); $o->select_min('age'); $o->get(); // The $o object is populated with a signle object from its corresponding table, but with only the age field populated, which contains the minimum age
$object->select_avg();
Writes a "SELECT AVG(field)" portion for your query. As with select_max(), You can optionally include a second parameter to rename the resulting field.
$o = new Object(); $o->select_avg('age'); $o->get(); // The $o object is populated with a single object from its corresponding table, but with only the age field populated, which contains the average age
$object->select_sum();
Writes a "SELECT SUM(field)" portion for your query. As with select_max(), You can optionally include a second parameter to rename the resulting field.
$o = new Object(); $o->select_sum('age'); $o->get(); // The $o object is populated with a single object from its corresponding table, but with only the age field populated, which contains the sum of all ages
$object->distinct();
Adds the "DISTINCT" keyword to a query
$o = new Object(); $o->distinct(); // When $o->get() is called, a DISTINCT select of records will be made
Limiting Results
Use the following methods to limit or change which rows are returned.
You can query values from related objects and join tables in the next section, Get (Advanced). There are also methods for using SQL Functions and Subqueries in queries.
$object->where();
This function enables you to set WHERE clauses using one of four methods:
Note: All values passed to this function are escaped automatically, producing safer queries.
- Simple key/value method:
$o = new Object(); $o->where('name', $name); // When $o->get() is called, the above where clause will be included in the get query
If you use multiple where function calls they will be chained together with AND between them:
$o = new Object(); $o->where('name', $name); $o->where('title', $title); $o->where('status', $status); // When $o->get() is called, all of the above where clause will be included in the get query
- Custom key/value method:
You can include an operator in the first parameter in order to control the comparison:
$o = new Object(); $o->where('name !=', $name); $o->where('id <', $id); // When $o->get() is called, all of the above where clause will be included in the get query (with operators)
- Associative array method:
$o = new Object(); $array = array('name' => $name, 'title' => $title, 'status' => $status); $o->where($array); // When $o->get() is called, the array of where clauses will be included in the get query
You can include your own operators using this method as well:
$array = array('name !=' => $name, 'id <' => $id, 'date >' => $date); $o = new Object(); $o>where($array);
- Custom string:
You can write your own clauses manually:
$where = "name="Joe" AND status="boss" OR status="active""; $o = new Object(); $o->where($where);
$object->or_where();
This function is identical to the one above, except that multiple instances are joined by OR:
$o = new Object(); $o->where('name !=', $name); $o->or_where('id >', $id); // When $o->get() is called, all of the above where clause will be included in the get query separated by OR's
$object->where_in();
Generates a WHERE field IN ('item', 'item') SQL query joined with AND if appropriate
$o = new Object(); $names = array('Frank', 'Todd', 'James'); $o->where_in('username', $names); // When $o->get() is called, all records where the username is Frank, Todd, or James will be returned
$object->or_where_in();
Generates a WHERE field IN ('item', 'item') SQL query joined with OR if appropriate
$o = new Object(); $firstnames = array('Frank', 'Todd', 'James'); $lastnames = array('Smith', 'Jones'); $o->where_in('firstname', $firstnames); $o->or_where_in('lastname', $lastnames); // When $o->get() is called, all records where the firstname is Frank, Todd, or James, or all records where the lastname is Smith or Jones, will be returned
$object->where_not_in();
Generates a WHERE field NOT IN ('item', 'item') SQL query joined with AND if appropriate
$o = new Object(); $names = array('Frank', 'Todd', 'James'); $o->where_not_in('username', $names); // When $o->get() is called, all records where the username is not Frank, Todd, or James will be returned
$object->or_where_not_in();
Generates a WHERE field NOT IN ('item', 'item') SQL query joined with OR if appropriate
$o = new Object(); $firstnames = array('Frank', 'Todd', 'James'); $lastnames = array('Smith', 'Jones'); $o->where_not_in('firstname', $firstnames); $o->or_where_not_in('lastname', $lastnames); // When $o->get() is called, all records where the firstname is not Frank, Todd, or James, or all records where the lastname is not Smith or Jones, will be returned
$object->like();
This function enables you to generate LIKE clauses, useful for doing searches.
For case-insensitive comparisons, see ilike below.
Note: All values passed to this function are escaped automatically.
- Simple key/value method:
$o = new Object(); $o->like('title', 'match'); // When $o->get() is called, all records with a title like match will be returned
If you use multiple function calls they will be chained together with AND between them:
$o = new Object(); $o->like('title', 'match'); $o->like('body', 'match'); // When $o->get() is called, all records with a title like match and a body like match will be returned
If you want to control where the wildcard (%) is placed, you can use an optional third argument. Your options are 'before', 'after' and 'both' (which is the default).
$o = new Object(); $o->like('title', 'match', 'after'); // When $o->get() is called, all records with a title starting with match will be returned
- Associative array method:
$array = array('title' => $match, 'page1' => $match, 'page2' => $match); $o = new Object(); $o->like($array); // When $o->get() is called, all records with the title, page1, and page2 like the specified matches will be returned
$object->or_like();
This function is identical to the one above, except that multiple instances are joined by OR:
$o = new Object(); $o->like('title', 'match'); $o->or_like('body', $match); // When $o->get() is called, all records with a title like match or a body like match will be returned
$object->not_like();
This function is identical to like(), except that it generates NOT LIKE statements:
$o = new Object(); $o->not_like('title', 'match'); // When $o->get() is called, all records with a title not like match will be returned
$object->or_not_like();
This function is identical to not_like(), except that multiple instances are joined by OR:
$o = new Object(); $o->like('title', 'match'); $o->or_not_like('body', 'match'); // When $o->get() is called, all records with a title like match or a body not like match will be returned
$object->ilike();
The ilike methods have exactly the same format as the like methods. However, they convert both the query and the column to upper case first, to ensure case-insensitive matching. This method is better than writing your own, because it can protect identifiers and the string properly.
Also available as or_ilike, not_ilike, and or_not_ilike.
Query Grouping
You can create more advanced queries by grouping your clauses. This allows you to specify construct such as (a OR b) AND (c OR NOT d).
Note: Every group_start must be balanced by exactly one group_end.
$object->group_start()
Starts a group. Every statement generated until group_end will be joined by an AND to the rest of the query. Groups can be nested.
Example below.
$object->or_group_start
Every statement generated until group_end will be joined by an OR to the rest of the query.
$object->not_group_start
Every statement generated until group_end will be joined by an AND NOT to the rest of the query.
$object->or_not_group_start
Every statement generated until group_end will be joined by an OR NOT to the rest of the query.
$object->group_end
Ends the most recently started group.
Grouping Example
$o = new Object(); // Returns all objects where a, or where b AND c // SQL: a OR b AND c $o->where('a', TRUE)->or_where('b', TRUE)->where('c', TRUE)->get(); // Returns all objects where a, and where b or c // SQL: a AND (b OR c) $o->where('a', TRUE)->group_start()->where('b', TRUE)->or_where('c', TRUE)->group_end()->get(); // Returns all objects where a AND b, or where c // SQL: (a AND b) OR c $o->group_start()->where('a', TRUE)->where('b', TRUE)->group_end()->or_where('c', TRUE)->get();
Nested Grouping Example
// Generates: // (a AND (b OR c)) AND d $o->group_start() ->where('a', TRUE) ->group_start() ->where('b', TRUE) ->or_where('c', TRUE) ->group_end() ->group_end() ->where('d', TRUE)->get();
Other Features
Other features related to generating your SQL query. (You can apply many of these methods to related objects and join tables in the next section, Get (Advanced).)
$object->group_by();
Permits you to write the GROUP BY portion of your query:
$o = new Object(); $o->group_by('title'); // When $o->get() is called, all returned records will be grouped by title
You can also pass an array of multiple values as well:
$o = new Object(); $o->group_by(array('title', 'date')); // When $o->get() is called, all returned records will be grouped by title and then date
$object->having();
Permits you to write the HAVING portion of your query. There are 2 possible syntaxe, 1 argument or 2:
$o = new Object(); $o->having('user_id = 45'); // When $o->get() is called, all records having a user_id of 45 will be returned $o->having('user_id', 45); // As above, when $o->get() is called, all records having a user_id of 45 will be returned
You can also pass an array of multiple values as well:
$o = new Object(); $o->having(array('title =' => 'My Title', 'id <' => $id)); // When $o->get() is called, all records having a title of My Title and an id less than 45 will be returned
If you are using a database that CodeIgniter escapes queries for, you can prevent escaping content by passing an optional third argument, and setting it to FALSE.
$o = new Object(); $o->having('user_id', 45, FALSE);
$object->or_having();
Identical to having(), only separates multiple clauses with "OR".
$object->order_by();
Lets you set an ORDER BY clause. The first parameter contains the name of the column you would like to order by. The second parameter lets you set the direction of the result. Options are asc or desc, or random.
$o = new Object(); $o->order_by("title", "desc"); // When $o->get() is called, all returned records will be ordered by title descending
You can also pass your own string in the first parameter:
$o = new Object(); $o->order_by('title desc, name asc'); // When $o->get() is called, all returned records will be ordered by title descending, then name ascending
Or multiple function calls can be made if you need multiple fields.
$o = new Object(); $o->order_by("title", "desc"); $o->order_by("name", "asc"); // When $o->get() is called, all returned records will be ordered by title descending, then name ascending
Note: random ordering is not currently supported in Oracle or MSSQL drivers. These will default to 'ASC'.
Default Order By
You can specify a default order to your classes, by setting the variable $default_order_by.
class Task extends DataMapper {
...
// Default to sorting tasks with overdue tasks at the top, then priority, then title.
var $default_order_by = array('overdue' => 'desc', 'priority' => 'desc', 'title');
...
}
Now whenever you call, for example, $task->get() or $user->tasks->get(), the results will automatically be sorted.
To prevent SQL errors, automatic sorting is disabled in these cases:
- If no default sort order has been specified.
- If you specify your own sort order, using a order_by method.
- The query does not have * or table.* selected. This would only be when you have overridden the default selection.
$object->limit();
Lets you limit the number of rows you would like returned by the query:
$o = new Object(); $o->limit(10); // When $o->get() is called, the number of records returned will be limited to 10
The second parameter lets you set a result offset.
$o = new Object(); $o->limit(10, 20); // When $o->get() is called, the number of records returned will be limited to 10, starting from record 20
Method Chaining
Method chaining allows you to simplify your syntax by connecting multiple functions. Consider this example:
$o = new Object(); $o->where('id', $id)->limit(10, 20)->get();
The alternate of the above without method chaining would be:
$o = new Object(); $o->where('id', $id); $o->limit(10, 20); $o->get();
Active Record Caching
Since DataMapper uses Active Record for all its queries, it makes sense you should be able to access the Active Record caching methods. While not "true" caching, Active Record enables you to save (or "cache") certain parts of your queries for reuse later. Normally, when an Active Record call is completed, all stored information is reset for the next call. With caching, you can prevent this reset, and reuse information easily.
Cached calls are cumulative. If you make 2 cached select() calls, and then 2 uncached select() calls, this will result in 4 select() calls. There are three Caching functions available:
$object->start_cache()
This function must be called to begin caching. All Active Record queries of the correct type (see below for supported queries) are stored for later use.
$object->stop_cache()
This function can be called to stop caching.
$object->flush_cache()
This function deletes all items from the Active Record cache.
Here's a usage example:
$o = new Object(); $o->start_cache(); $o->select('field1'); $o->stop_cache(); $o->get(); // The $o object is populated with all records from its corresponding table, but with only the 'field1' field being populated $o->select('field2'); $o->get(); // The $o object is populated with all records from its corresponding table, but with both the 'field1' and 'field2' fields being populated $o->flush_cache(); $o->select('field2'); $o->get(); // The $o object is populated with all records from its corresponding table, but with only the 'field2' field being populated
Note: The following fields can be cached: ‘select’, ‘from’, ‘join’, ‘where’, ‘like’, ‘group_by’, ‘having’, ‘order_by’, ‘set’


java.lang.Object java.io.OutputStream cz.dhl.ftp.FtpOutputStream
Allows writing into FTP file.
Ftp
,
FtpFile
| Constructor Summary | |
FtpOutputStream(FtpFile file)
Opens 'store' OutputStream for given filename. |
|
FtpOutputStream(FtpFile file,
boolean append)
Open either 'store' or 'append' OutputStream for given filename. |
|
FtpOutputStream(FtpFile file,
FtpConnect connect,
CoConsole console)
Opens 'store' concurent OutputStream for given filename. |
|
FtpOutputStream(FtpFile file,
FtpConnect connect,
CoConsole console,
boolean append)
Open either 'store' or 'append' concurent OutputStream for given filename. |
| Method Summary | |
void |
close()
Close current data transfer and close data connection. |
void |
flush()
Flushes this output stream and forces any buffered output bytes to be written out. |
void |
write(byte[] b)
Writes b.length bytes from the specified byte array
to this output stream. |
void |
write(byte[] b,
int off,
int len)
Writes len bytes from the specified byte array
starting at offset off to this output stream.
|
void |
write(int b)
Writes the specified byte to this output stream. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public FtpOutputStream(FtpFile file) throws java.io.IOException
This constructor behaves similarly to
.FtpOutputStream(FtpFile,boolean)
file
- the file to be opened for writing
java.io.IOException
- socket errorpublic FtpOutputStream(FtpFile file, boolean append) throws java.io.IOException
STOR - store
This command causes the server-DTP to accept the data transferred via the data connection and to store the data as a file at the server site. If the file specified in the pathname exists at the server site, then its contents shall be replaced by the data being transferred. A new file is created at the server site if the file specified in the pathname does not already exist.
APPE - append (with create)
This command causes the server-DTP to accept the data transferred via the data connection and to store the data in a file at the server site. If the file specified in the pathname exists at the server site, then the data shall be appended to that file; otherwise the file specified in the pathname shall be created at the server site.
file
- the file to be opened for writingappend
- if true, then bytes will be written to the
end of the file rather than the beginning
java.io.IOException
- socket errorpublic FtpOutputStream(FtpFile file, FtpConnect connect, CoConsole console) throws java.io.IOException
This constructor behaves similarly to
.FtpOutputStream(FtpFile,FtpConnect,CoConsole,boolean)
file
- the file to be opened for writingconnect
- login detailsconsole
- message output
java.io.IOException
- socket errorpublic FtpOutputStream(FtpFile file, FtpConnect connect, CoConsole console, boolean append) throws java.io.IOException
Single ftp connection cannot handle multiple concurent data transfers. This limitation can be eliminated by creating new ftp connection for each concurent data transfer. This constructor creates separate Ftp instance.
Note (1) supplying same CoConsole instance for multiple sessions will produce messed output.
Note (2) This code may need to be run in separate thread to process multiple files concurently.
STOR - store
This command causes the server-DTP to accept the data transferred via the data connection and to store the data as a file at the server site. If the file specified in the pathname exists at the server site, then its contents shall be replaced by the data being transferred. A new file is created at the server site if the file specified in the pathname does not already exist.
APPE - append (with create)
This command causes the server-DTP to accept the data transferred via the data connection and to store the data in a file at the server site. If the file specified in the pathname exists at the server site, then the data shall be appended to that file; otherwise the file specified in the pathname shall be created at the server site.
file
- the file to be opened for writingconnect
- login detailsconsole
- message outputappend
- if true, then bytes will be written to the
end of the file rather than the beginning
java.io.IOException
- socket errorFtpOutputStream(FtpFile,boolean)
| Method Detail |
public void close() throws java.io.IOException
If no reply ABOR - abort
This command tells the server to abort the previous FTP service command and any associated transfer of data. No action is to be taken if the previous command has been completed (including data transfer). The control connection is not to be closed by the server, but the data connection must be closed. There are two cases for the server upon receipt of this command:
(1) the FTP service command was already completed. The server closes the data connection (if it is open) and responds with a 226 reply, indicating that the abort command was successfully processed.
(2) the FTP service command is still in progress. The server aborts the FTP service in progress and closes the data connection, returning a 426 reply to indicate that the service request terminated abnormally. The server then sends a 226 reply, indicating that the abort command was successfully processed.
java.io.IOException
- socket errorpublic void flush() throws java.io.IOException
flush
is
that calling it is an indication that, if any bytes previously
written have been buffered by the implementation of the output
stream, such bytes should immediately be written to their
intended destination.
java.io.IOException
- if an I/O error occurs.public void write(byte[] b) throws java.io.IOException
b.length
bytes from the specified byte array
to this output stream. The general contract for write(b)
is that it should have exactly the same effect as the call
write(b, 0, b.length)
.
b
- the data.
java.io.IOException
- if an I/O error occurs.write(byte[], int, int)
public void write(byte[] b, int off, int len) throws java.io.IOException
len
bytes from the specified byte array
starting at offset off
to this output stream.
The general contract for write(b, off, len)
is that
some of the bytes in the array b
are written to the
output stream in order; element b[off]
is the first
byte written and b[off+len-1]
is the last byte written
by this operation.
The write
method of OutputStream
calls
the write method of one argument on each of the bytes to be
written out. Subclasses are encouraged to override this method and
provide a more efficient implementation.
If b
is null
, a
NullPointerException
is thrown.
If off
is negative, or len
is negative, or
off+len
is greater than the length of the array
b
, then an IndexOutOfBoundsException is thrown.
b
- the data.off
- the start offset in the data.len
- the number of bytes to write.
java.io.IOException
- if an I/O error occurs. In particular,
an IOException
is thrown if the output
stream is closed.public void write(int b) throws java.io.IOException
write
is that one byte is written
to the output stream. The byte to be written is the eight
low-order bits of the argument b
. The 24
high-order bits of b
are ignored.
b
- the byte
.
java.io.IOException
- if an I/O error occurs. In particular,
an IOException
may be thrown if the
output stream has been closed.


| Area | Title |
World | Assessment of the Status of the World's Remaining Closed Forests |
| Bailey Ecoregions Map (Net Primary Productivity Project) |
| Bazilevich Global Primary Productivity : Phytomass, Net Primary Production, and Mortmass |
| Biogeographical Regions of the World Africo-Tropical Realm (Udvardy, 1975) |
| BIOME 6000 PMIP 2 Vegetation Maps for the Mid-Holocene and Last Glacial Maximum |
| Drylands : Aridity Zones of the World (or for 10 maps of World's drylands) |
| EarthTrends - Maps (World Resources Institute) |
| Geographical Distribution of Indigenous Vegetation / by A.K. Johnston &
Arthur Henfrey ; Map of Schouws Phyto-geographic Regions with the Distribution of Plants Especially Influencing the Physiognomy of the Vegetation of the Globe. 1854 |
| Global Atlas of Palaeovegetation Since the Last Glacial Maximum (Includes maps of Europe, Eurasia, Africa, Australasia, North America and South America / Quaternary Environments Network) |
| Global Biodiversity: Species Numbers of Vascular Plants (Click on Forschung, then Biodiversitätskartierung) |
| Global Distribution of Current Forests |
| Global Distribution of Original and Remaining Forests |
| Global Land Cover Characterization |
| Global 200: Blueprint for a Living Planet (World Wildlife Fund) |
|
GVM Global 2000 Landcover / JRC Ispra (Downloadable datasets in various formats) |
| Holdridge Life Zones Collected at IIASA |
|
Interactive Forest Maps: (World, Africa, Asia, North America, South America, Oceania, Europe and Russia) |
| Interactive Global Forest Watch Maps |
| Major Biomes of the World |
|
Malagasy/Indo-australo-malesian Phytogeographic Connections |
| Map of Global Disturbed Areas |
| Map Showing Change in Global Forest Cover from 1990 to 2025
(Predicted) |
| Matthews Global Vegetation Database |
| Matthews Natural Wetlands Database : Wetlands Type |
| Matthews Seasonal Integrated Albedo for 32 Vegetation Types |
| NOAA/GVI Eight-year (1983-90) Mean Maximum for World Desertification Atlas |
| OBIS: Ocean Biogeographic Information System (includes distribution maps of diatoms) |
| Olson Major World Ecosystem Complexes (Oak Ridge National Laboratory) |
| Terrestrial Ecoregions of the World (National Geographic, WWF) |
| Umrisse der Pflanzengeographie, 1838 (In: Dr. Heinrich Berghaus Physikalischer Atlas, 1849) |
| World : Agricultural Mosaics and Grasslands |
| World Approximate Global Distribution of Savannahs |
| World Atlas of Biodiversity |
| World : Biodiversity and World Map |
| World Distribution of Coral Reefs and Mangroves |
| World Distribution of Tropical Rain Forest (after Trewartha 1961) |
| World : Dry Tropical Forests (FAO) |
| World : Forest and Other Wooded Land" |
| World -- Vegetation & Ocean Currents (In: Times Survey Atlas of the World, 1922) |
| World : Vegetation Health |
| World Vegetation Map from NOAA/GVI Data |
| World Wilderness Areas : Countries with the Most Wilderness (Sierra Club, World Bank, UNEP/GRID) |
| World Wildlife Fund Eco-regions for the Neotropics |
| World's Forests 2000 |
| World's Remaining Closed Rorests (also by continent) |
Americas | New Paleovegetation Maps of the Americas at 1 kyr Intervals, 15,000 - 9,000 c14 Years B.P. |
Eurasia | Climate in Northern Eurasia 6000 Years Ago Reconstructed from Pollen Data |
| Changes in the Woody Biomass Carbon Pool of Northern Temperate and Boreal
Forests between the Late 1990s and the Early 1980s and Pool Size During Late 1990s |
| Comparison of Present and Past Northern Limits for Tree Survival or Climatic Limits of the Boreal Forest |
| Global Atlas of Palaeovegetation Since the Last Glacial Maximum (Includes maps of Europe, Eurasia, Africa, Australasia, North America and South America / Quaternary Environments Network) |
| Northern Eurasia Landcover / JRC Ispra (Downloadable datasets in various formats -- in "Products" section) |
Latin America | Cloud Forest Sites in Latin America (UNEP-WCMC) |
| Latin America : Land Cover |
| A Vegetation Map of Latin America = Mapa de la vegetación de América del Sur |
| Vegetation Map of Latin America / JRC Ispra (Downloadable datasets in various formats -- in "Products" section) |
Middle East | Mountains and Mountain Forests Middle East and Central Asia (UNEP-WCMC) |
| Vegetation Map of the Middle East (Legibility problems) |
| Western Asia Temperate Forest and Protected Areas |
| Area | Title |
Africa | Actual Biomass Density in Tropical Africa |
| Africa : Digital Vegetation Model |
| Africa : Dry Plant Formations |
| Africa : Land Cover for the Year 2000 |
| Africa : Natural Vegetation |
| Africa : Open Forests South of the Equator |
| Africa : Phyto-geographic Domains |
| Africa : Vegetation |
| Africa : Vegetation |
| Central African Program for the Environment (Distribution of Active Fires - Southern Hemisphere, 1989; Forest Types of Central Africa; GAC Burns, Northern Central Africa, 1986-1987; GAC Burns, Southern Central Africa, 1989; GAC Continental Landcover Classification of Africa from AVHRR GAC Images, 1982-1987; JERS-1 SAR Global Rain Forest Mapping Project: Africa, 1996-1997; Vegetation Map of Central Africa from AVHRR LAC and GAC Images Used in CARPE Map; White Vegetation Dataset, 1983) |
| [CARPE-L] Land-cover map of Africa = Carte d'occupation du sol d'Afrique / JRC Ispra (Downloadable datasets in various formats -- in "Products" section) |
| Land Cover Map of Africa Derived from AVHRR GAC Data |
| Cloud Forest Sites in Africa (UNEP-WCMC) |
| Current Vegetation Map of Africa |
| Degradation Ratio in Tropical African Forests |
| EarthTrends - Maps (World Resources Institute) |
| GAC Continental Landcover Classification of Africa from AVHRR GAC Images, 1982-1987 |
| Global Atlas of Palaeovegetation Since the Last Glacial Maximum (Includes maps of Europe, Eurasia, Africa, Australasia, North America and South America / Quaternary Environments Network) |
| The Holocene Landscape and Vegetation History of Northern and Western Africa |
|
Interactive Forest Maps: (World, Africa, Asia, North America, South America, Oceania, Europe and Russia) |
| JERS-1 Map of Tropical Forest of Africa |
| The Last of the World's Ancient Forests / Greenpeace (contains maps/imagery of: Europe, Degradation of Forests in Archangelsk Region 1963-1999, Asian Russia, Africa, Growing Concessions in Ancient Forests of Cameroon 1959-1999, North America, Chile, Indonesia; small maps showing ancient and other forests) |
| Mountains and Mountain Forests Africa |
| Natural Vegetation in Africa (US CIA) |
| Prevailing Vegetation (Inset on: Africa -- Political. In: Times Survey Atlas of the World, 1922) |
| Vegetation Map of Africa during the Climatic Optimum Warm/Humid Period |
| Vegetation Map of Africa during the Extreme Cold/Dry Last Glacial Period |
| Vegetation of Subsahara Africa |
| White vegetation dataset, 1983 |
| White's 1983 Vegetation Map of Africa : a Contrasting Approach
or Vegetation of Africa (White 1983) |
Africa, Central | Afrique Central Ouest, Afrique Central Est (In: Atlas des populations indigènes des forêts denses humides) |
| Central African Program for the Environment (Distribution of Active Fires - Southern Hemisphere, 1989; Forest Types of Central Africa; GAC Burns, Northern Central Africa, 1986-1987; GAC Burns, Southern Central Africa, 1989; GAC Continental Landcover Classification of Africa from AVHRR GAC Images, 1982-1987; JERS-1 SAR Global Rain Forest Mapping Project: Africa, 1996-1997; Vegetation Map of Central Africa from AVHRR LAC and GAC Images Used in CARPE Map; White Vegetation Dataset, 1983) |
| Central Africa Ecoregions and Protected Areas [World Wildlife Fund] |
| Forest types of Central Africa |
| New Vegetation Map of Central Africa, Derived from SPOT-VEGETATION Imagery of 1998 (update of the JRC-TREES map of 1992) (alternate site) |
| Potential Biomass Density in Central Africa |
| Vegetation of Central Africa |
| Vegetation Map of Central Africa Derived from AVHRR Data |
| Vegetation Map of Central Africa Derived from AVHRR LAC and GAC Imagery |
| Vegetation Map of Central Africa Derived from NOAA AVHRR Data (GAC and LAC) |
| West and Central Africa : Locations of Humid Forest and Savannah Benchmark Research Areas in the Agroecological and Soil Zones and Land Cover |
Africa, North | Present and Holocene Landscape and Vegetation History of Northern
and Western Africa |
Africa, Southern | Southern Africa : Normalised Difference Vegetation |
| Southern Africa Temperate Forest and Protected Areas (Map 8 UNEP-WCMC) |
Africa, West | West and Central Africa : Locations of Humid Forest and Savannah Benchmark Research Areas in the Agroecological and Soil Zones and Land Cover |
| Present and Holocene Landscape and Vegetation History of Northern
and Western Africa |
Angola | Angola : Vegetation Cover |
Benin | Atlas of Natural and Agronomic Resources of Niger and Benin |
| Vegetation Zones in Niger and Benin : Past and Present Zonation |
Botswawa | Botswana : Climatic and Human Induced Changes in Vegetation |
| Botswana : Vegetation |
Burundi | Africover (Food and Agriculture Organisation of the United Nations) -- layers include: forests, land cover, rangeland |
Cameroon | Africa Vegetation Maps : Congo, Democratic Republic of Congo (formerly Zaire), Gabon, Cameroon |
| Ecological Map of the Vegetation Cover of Cameroon |
| Forest Cover and Forestry Concessions: Cameroon, Central African Republic, Congo (Brazzaville), Congo, Equatorial Guinea, Gabon, Russia, Sarawak |
| The Last of the World's Ancient Forests / Greenpeace (contains maps/imagery of: Europe, Degradation of Forests in Archangelsk Region 1963-1999, Asian Russia, Africa, Growing Concessions in Ancient Forests of Cameroon 1959-1999, North America, Chile, Indonesia; small maps showing ancient and other forests) |
Central African Republic | Forest Cover and Forestry Concessions: Cameroon, Central African Republic, Congo (Brazzaville), Congo, Equatorial Guinea, Gabon, Russia, Sarawak |
Congo (Brazzaville) | Forest Cover and Forestry Concessions: Cameroon, Central African Republic, Congo (Brazzaville), Congo, Equatorial Guinea, Gabon, Russia, Sarawak |
| Africa Vegetation Maps : Congo, Democratic Republic of Congo (formerly Zaire), Gabon, Cameroon |
Congo (Zaïre) | Africa Vegetation Maps : Congo, Democratic Republic of Congo (formerly Zaire), Gabon, Cameroon |
| Forest Cover and Forestry Concessions: Cameroon, Central African Republic, Congo (Brazzaville), Congo, Equatorial Guinea, Gabon, Russia, Sarawak |
| Phytogeography of Congo from Des Coings, 1969 |
| Vegetation of Democratic Republic of Congo from Devred, 1958 |
Côte d'Ivoire | Indice de végétation (NDVI) en Côte d'Ivoire :
saison agricole 1999 (février à décembre) |
Egypt | Africover (Food and Agriculture Organisation of the United Nations) -- layers include: land cover, rangeland |
Equatorial Guinea | Forest Cover and Forestry Concessions: Cameroon, Central African Republic, Congo (Brazzaville), Congo, Equatorial Guinea, Gabon, Russia, Sarawak |
Eritrea | Africover (Food and Agriculture Organisation of the United Nations) -- layers include: land cover, rangeland |
Gabon | Africa Vegetation Maps : Congo, Democratic Republic of Congo (formerly Zaire), Gabon, Cameroon |
| Forest Cover and Forestry Concessions: Cameroon, Central African Republic, Congo (Brazzaville), Congo, Equatorial Guinea, Gabon, Russia, Sarawak |
| Phytogeography of Gabon from Caballe, 1978 |
| Vegetation of Democratic Republic of Congo from Devred, 1958 |
Kenya | Africover (Food and Agriculture Organisation of the United Nations) -- layers include: forests, land cover, rangeland |
| Human-impacted Groves of Mangroves : Gazi (Kenya) |
| Satellite Images of Kenya |
Liberia | Indice de végétation (NDVI) au Libéria :
saison agricole 2000 (février à décembre) |
Madagascar | Madagascar : a New Approach to Vegetation Classification and Mapping |
| Madagascar Protected Areas (Magadascar GIS, Royal Botanic Gardens, Kew) |
| Madagascar Remaining Primary Vegetation (Magadascar GIS, Royal Botanic Gardens, Kew) |
| Madagascar Remaining Primary Vegetation Classified by the Underlying Geology (Magadascar GIS, Royal Botanic Gardens, Kew) |
| Madagascar's Littoral Forests |
|
Malagasy/Indo-australo-malesian Phytogeographic Connections |
| Vegetation map of Madagascar derived from SPOT-4 VEGETATION data |
Mali | Indice de végétation (NDVI) au Mali : saison agricole 1999 (avril à octobre) |
Mozambique | Normalized Difference Vegetation Index for the growing season in Mozambique:
September 1998 to April 1999 |
Namibia | Namibia : Main Biomes and Vegetation Types |
Niger | Atlas of Natural and Agronomic Resources of Niger and Benin |
| Vegetation Zones in Niger and Benin : Past and Present Zonation |
| Area | Title |
Asia | (see also Eurasia) |
| Eastern Asia Temperate Forest and Protected Areas (Map 10 UNEP-WCMC) |
|
Interactive Forest Maps: (World, Africa, Asia, North America, South America, Oceania, Europe and Russia) |
| Vegetation Index Map of Asia (1986, 1990, 1993) |
| Western Asia Temperate Forest and Protected Areas (Map 11 UNEP-WCMC) |
Asia, Central | Asia : Distribution of Dry Forests in Tropical Central Asia |
| Central Asia Landcover / JRC Ispra (Downloadable datasets in various formats -- in "Products" section) |
| Mountains and Mountain Forests Middle East and Central Asia (UNEP-WCMC) |
| South Central Asia Landcover / JRC Ispra (Downloadable datasets in various formats -- in "Products" section) |
Asia, East | Mountains and Mountain Forests Far East (UNEP-WCMC) |
Asia, South | Mountains and Mountain Forests Continental South and Southeast Asia (UNEP-WCMC) |
Asia, Southeastern | Cloud Forest Sites in South-east Asia (Covers also New Guinea, Australia and surrounding islands, UNEP-WCMC) |
| Mountains and Mountain Forests Continental South and Southeast Asia (UNEP-WCMC) |
| Mountains and Mountain Forests Insular Southeast Asia (UNEP-WCMC) |
| South East Asia Landcover / JRC Ispra (Downloadable datasets in various formats -- in "Products" section) |
Afghanistan | Afghanistan: Drought and Vegetation |
Aral Sea Region | Aral Sea: Vegetation Degradation |
Borneo | Bornéo Nord, Bornéo Sud (In: Atlas des populations indigènes des forêts denses humides) |
Burma | Forest Cover in Burma, 1985 |
China | Aggregated Vegetation Distribution in China, Russia and Mongolia |
| China Landcover / JRC Ispra (Downloadable datasets in various formats -- in "Products" section) |
| Flora of China Checklist [and Distribution Maps] |
| Potential land cover simulated by BIOME-LUC in China, Mongolia, and Russia |
| Vegetation Map of China |
China--Hengduan Mtns. | Biodiversity of the Hengduan Mountains Region, China |
China--Tibet | Tibet Forest & Vegetation Types |
India | Distribution of the Major Moist Forest Formations |
India--Kerala | Moist Forest Distribution for a Sample Indian State (Kerala) |
| Moist Forests and Protected Areas of Kerala |
India--Nilgiri Dist. | India : Vegetation of Nilgiri District |
| India : Nilgiri district land use (after Pascal et al. 1982, Bellan
1987) |
Indonesia | Célèbes; Moluques et Seram (In: Atlas des populations indigènes des forêts denses humides) |
| Indonesia : Babon Catchment : Land use/vegetation Map |
| Indonesia : Vegetation Map of Lorentz National Park |
| The Last of the World's Ancient Forests / Greenpeace (contains maps/imagery of: Europe, Degradation of Forests in Archangelsk Region 1963-1999, Asian Russia, Africa, Growing Concessions in Ancient Forests of Cameroon 1959-1999, North America, Chile, Indonesia; small maps showing ancient and other forests) |
| Natural Forest Cover Change in Indonesia, 1985-1997 [and related maps] |
| Natural Forest Cover Change in Indonesia, 1985-1997 [Forests and
Logging Concessions] [requires WINZIP] |
| Welcome to Nature Conservation in Indonesia (Site also includes maps of Irian Jaya, Java-Bali, Kalimantan, Maluku, Nusa-Tenggara, Sulawesi & Sumatra) |
Indonesia -- Irian Jaya | Nouvelle-Guinée Ouest, Nouvelle-Guinée Est = Irian Jaya; Papua New Guinea (In: Atlas des populations indigènes des forêts denses humides) |
Indonesia -- Sumatra | Sumatra (In: Atlas des populations indigènes des forêts denses humides) |
Iraq | Iraq : Former Marshes and Water Diversion Projects in Southeastern Iraq, June 1994 |
| Republic of Iraq : Vegetation |
Israel | [Generalized Vegetation Map of Israel] |
Japan | Japan : National actual Vegetation map (600KB ) |
Japan--Hokkaido | Distribution Maps of Vascular Plants in Hokkaido, Japan |
Kazakhstan | Kazakhstan -- Haloxylon Forest near Balkhash Lake |
Korea | The Normalized Difference Vegetation Index for Korea |
Malaysia | Forest Cover and Forestry Concessions: Cameroon, Central African Republic, Congo (Brazzaville), Congo, Equatorial Guinea, Gabon, Russia, Sarawak |
| Malaisie peninsulaire (In: Atlas des populations indigènes des forêts denses humides) |
Mekong River Valley | Mekong River Commission for Sustainable Development (Includes land use maps) |
Mongolia | Aggregated Vegetation Distribution in China, Russia and Mongolia |
| Potential land cover simulated by BIOME-LUC in China, Mongolia, and Russia |
Philippines | Philippines (In: Atlas des populations indigènes des forêts denses humides) |
Thailand | Thailand : [Forests] |
Vietnam | Centres of Plant Diversity and Endemic Birds Areas |
| Distribution of the Major Moist Forest Formations |


{# Group create page. #}
{% extends "../base.html" %}
{% block head_title %}Create a group{% end %}
{% block body_title %}Create a group{% end %}
{% block main_content %}
A member of a group may read any {{ terminology('order') }}
of another member of that group. This feature is therefore suitable
for true working groups, but not for the occasional
collaboration.
{% end %} {# block main_content #}
{% block javascript_autofocus %}
{% end %}


{{$ctrl.resolve.resolveObj.address.name}}
{{$ctrl.resolve.resolveObj.address.address1}}
{{$ctrl.resolve.resolveObj.address.address2}}
{{$ctrl.resolve.resolveObj.address.city+" "+$ctrl.resolve.resolveObj.address.state+ " "+$ctrl.resolve.resolveObj.address.zip}}
{{$ctrl.resolve.resolveObj.address.country}}
Phone: {{$ctrl.resolve.resolveObj.address.phone}}


MonoidOperation
|
|
| Category: functors |
Component type: concept |
Description
A Monoid Operation is a special sort of Binary Function. A
Binary Function must satisfy three conditions in order to
be a Monoid Operation. First, its first argument type and second
argument type must be the same, and its result type must be the
same as its argument type. Second, there must be an identity
element. Third, the operation must be associative. Examples
of Monoid Operations are addition and multiplication. [1]
Refinement of
Binary Function
Associated types
|
Argument type
|
The type of the Monoid Operation's first argument and second argument,
and also the type returned when the Monoid Operation is returned.
|
Notation
|
F
|
A type that is a model of MonoidOperation
|
|
T
|
F's argument type.
|
|
f
|
Object of type F
|
|
x, y, z
|
Objects of type T
|
Definitions
A type F that is a model of binary function is associative if
F's first argument type, second argument type, and result type are
the same, and if, for every object f of type F and for every
objects x, y, and z of F's argument type,
f(x, f(y, z)) is the same as f(f(x, y), z). [2]
Valid Expressions
In addition to the expressions described in the Binary Function
requirements, the following expressions must be valid.
|
Name
|
Expression
|
Type requirements
|
Return type
|
|
Function call
|
f(x, y)
|
|
T
|
|
Identity element
|
identity_element(f) [3]
|
|
T
|
Expression semantics
|
Name
|
Expression
|
Precondition
|
Semantics
|
Postcondition
|
|
Function call
|
f(x, y)
|
x and y are in the domain of f.
|
Calls f with x and y as arguments.
|
|
|
Identity element
|
identity_element(f)
|
|
Returns the monoid's identity element. That is, the return value
is a value id of type T such that, for all x in the domain
of f, f(x, id) and f(id, x) both return x.
|
|
Complexity guarantees
Invariants
|
Associativity
|
For any x, y, and z of type T, f(x, f(y, z)) and
f(f(x, y), z) return the same value. [4]
|
|
Identity element.
|
There exists some element id of type T such that, for all
x of type T, f(x, id) and f(id, x) both return x.
The expression identity_element(f) returns id.
|
Models
Notes
[1]
A monoid is one of three closely related algebraic structures.
A semigroup is a set S, and a binary operation *, with the
properties that * is closed on S (that is, if x and y are elements of
S then x * y is also a member of S) and that * is associative (that
is, if x, y, and z are elements of S, then x * (y * z) = (x * y) * z).
A monoid is a semigroup that has an identity element. That is,
there exists some element id such that, for all x in S, x * id = id * x =
x. Finally, a group is a monoid with the property that every element
has an inverse. That is, for every x in S, there exists an element
xi such that x * xi = xi * x = id. As an example, the set of
real numbers under multiplication is a monoid (the identity element
is 1), but it isn't a group. It isn't a group because 0 has no inverse.
[2]
Mathematics textbooks typically write this as an equation,
instead of using words like "is the same as". We can't use
equality in this definition, however, because F's argument type
might not be equality comparable. If F's argument typeis
equality comparable, however, then these two expression are expected
to be equal: the condition of associativity becomes
f(x, f(y, z)) == f(f(x, y), z)
[3]
This is implemented as an overloaded function. The function
identity_element is defined, in function.h, for arguments of
type plus<T> and multiplies<T>. If you define a new
Monoid Operation F (matrix multiplication, for example), you must
overload identity_element for arguments of type F.
[4]
Associativity is not the same as commutativity. That is, the requirement
that x * (y * z) == (x * y) * z is completely unrelated to
the requirement that x * y == y * x. Monoid operations are
required to be associative, but they are not required to be
commutative. As an example, square matrices under multiplication
form a monoid even though matrix multiplication is not commutative.
See also
Binary Function, plus, multiplies
Copyright © 1996 Silicon Graphics, Inc.
|


Returns a multifield value containing information about the restrictions for the specified method.
(get-method-restrictions <generic-function-name> <method-index>)


Grace Millane's 'killer smuggles suitcase with backpacker's body inside from hotel'
CCTV footage showed British backpacker Grace Millane's alleged killer transporting a suitcase containing her dead body. The defendant is accused of murdering Grace after a Tinder date
by Matthew Dresch, Stephen D'Antal, https://www.mirror.co.uk/authors/matthew-dresch/The parents of Grace Millane wept in court today as they watched CCTV showing her alleged killer taking her body to the woods.
Prosecutors say the 27-year-old defendant, who cannot be named for legal reasons, stuffed the British backpackers body into a suitcase and buried it in bushland in Auckland, New Zealand.
Her parents and their police chaperone broke down in tears today as footage was shown in Auckland High Court, where the alleged killer is on trial for murdering the British backpacker.
He denies the charge and instead claims Grace, who he met through the dating application Tinder, died by accident during rough sex.
Property developer David Millane, 61, and his wife Gill, from Wickford in Essex, have sat through every day of the harrowing murder trial.
They have heard how their daughter died the night before her 22nd birthday.
Today, the mum and dad saw how cameras captured her date buying a suitcase and a shovel and transporting her body in a red Toyota hatchback he rented the day she died in December last year.
The powerfully built man was seen wheeling a luggage trolley into a lift at the CityLife hotel in central Auckland where he lived full time and going up to his GBP190 a week room.
Shortly afterwards, he returned with the trolley laden with two suitcases, one of which he has since admitted contained university graduate Grace’s naked body folded into a foetal position.
Mr and Mrs Millane wept quietly and were comforted by Detective Toni Jordan, a family liaison officer who was herself wiping away tears.
Det Jordan gave evidence yesterday about how she had spotted the suspect outside the CityLife in central Auckland where he lived and had run after him with a colleague before taking him for questioning him at a police station.
The officer has since been a constant companion to the Millanes throughout their ordeal, travelling to Britain to access Grace’s laptop and other personal belongings.
Jurors were earlier shown images of the moment detectives found the suitcase in a wooded area outside Auckland where she had been on a Tinder date.
Police tracked down the burial site through the movements of the 27-year-old defendant’s phone, which led them to a lay-by about 10 miles west of the city.
Police and forensic experts have already told the court how the shallow grave was found about 15 yards from the road.
Grace's body was naked, but intact, in a foetal position.
The trial continues.


Page Stack
Edity McEditface uses a convention when building pages where any page (.html) file can have a javascript (.js), style sheet (.css) and a settings file (.json) with the same file name will be gathered up and used as a single page. When the content renders a stack is created starting at the content page and adding each layout defined in the settings above that up to the default layout that provides the main site structure.
This graphic shows the page stack. The arrows point up the stack starting at the individual page on the bottom to the default.html master layout at the top. Each file in the page stack can define its own content files the same way the page file does. Any variables defined in the stack will be overwritten by the item that is lower on the stack, so a variable in a page file overrides a variable in a layout file. Any linked content specified at any point in the stack will be included in the final render only once even if it is defined multiple times.
Creating Layout Files
Layout files are how you create a common site layout without having to do it on each page. The main required thing that is needed in one of these files is a mainContent variable that determines where the page below this one in the stack goes in this layout. By building your pages this way it should be easy to open and close your html tags in the same file. If you don't want the next page in the stack to be nested inside the layout, but instead chained onto the end of that layout, put your mainContent variable after the closing tag. There is no implied hierarchy that the files must follow for their html, the stack is just the order the pages will be evaluated in. Variables are defined with a double bracket, then the variable name then double closing brackets.
default.html
This is the only required layout file. It determines the main layout of the page. You must include all relevant html tags including <html> and <head>, <body> etc. You should include the following variables inside this page where you need them to go.
- css - Where the list of css files included should go. These tags will be fully formed.
- title - The title of the page defined in its settings.
- mainContent - Where you want the main content to go.
- javascript - Where you want the included javascript to go. This would ideally be right before the closing body tag, but can be wherever makes sense for your website.
intermediarylayout.html
You can have as many of these as you need to build your pages. These represent a chunk of content inside the generated page. You only need to define the html that is required for your page to work, don't bother with the <html>, <head>, <body> etc tags. You also only need to define a mainContent variable where you want the next item in the stack to go. These layouts can be called anything you want.
page.html
The individual page. This can have any name. This will most likely be edited by Edity McEditface through its interface directly. It will always be at the bottom of the stack and therefore does not need to define a mainContent variable.


Mohammed Usama did an amazing job with my photo
Email<EMAIL_ADDRESS>Usama Photography has done anamazing job thanks to them i got a job as a model.
Email: cristie12@fake.com


Systems and Computing Engineering Student
From: Cúcuta, Colombia
Current City: Bogotá, Colombia
Currently studying at Universidad de los Andes
Spanish: Native
English: Advanced
Portuguese: Begginer


Instructions
(Use arrow keys, or drag with mouse to select mode of payment)
1. Payment through Credit/Debit Card or Paytm will be accepted.
2. Credit/Debit Card payment will incur an additional tax of 0.75%
3. Paying through Paytm will require you to first fill a Google Form, where you need to provide the number through which you will be making the transaction.
5. Once you fill the Google Form, you need to pay through paytm within 24 hours, or you will need to register again.
6. You will recieve a confirmation message once you have been registered, after payment.
For any queries,Contact:<PHONE_NUMBER>


27 April 2000
Disease Outbreak Reported
Saudi Arabia-Update: Health authorities have reported a revised total of 225 cases, including 57 deaths since the Haj last month. Bacterial investigations have now confirmed Neisseria meningitidis serogroup A in 54 cases, serogroup W135 in 50 cases, and serogroup B in 1 case. The situation is being closely monitored by the health authorities, with case management and contact tracing in place.
Netherlands-Update: There have been 2 confirmed cases of N. meningitidis serogroup W135 and 2 probable cases, including 1 death reported. Case management and contact tracing are also being carried out.
Please see the previous report of meningococcal disease in these two countries.


| | |
- core.computefeature.ComputeFeatureBase(builtins.object)
-
- stress_from_wrist
class stress_from_wrist(core.computefeature.ComputeFeatureBase) |
| |
This class extracts all the RR interval data that is present for a person on a specific day.
Calculates the necessary features from the rr interval data and assigns each minute of the day as
Stress/Not stress state.
Algorithm::
Input:
RR interval datastream.
Each DataPoint contains the following three things
1. A list of RR-interval array. Each entry in the list corresponds to a realization
of the position of R peaks in that minute
2. Standard Deviation of Heart Rate within the minute
3. A list corresponding to the heart rate values calculated from variable realizations
of the RR interval on a sliding window of window size = 8 second and window offset = 2 second.
Steps:
1. Extract all the RR interval data for a user on a specific day
2. Extract all the 16 features per minute of the RR interval data
3. Standardize each feature row and output stress/not stress state
Output:
A datastream containing a list of datapoints, each DataPoint represents one minute where sample=0
means the user was not stressed and sample=1 means the person was stressed
:Features:
1. 82nd perentile
2. 18th perentile
3. mean
4. median
5. standard deviation
6. inter quartile deviation
7. skewness
8. kurtosis
9. Energy in very low frequency range
10. Energy in very high frequency range
11. Energy in low frequency range
12. Ration of low to high frequency energy
13. quartile deviation
14. heart rate
15. median of inter percentile difference
16. standard deviation of inter percentile difference
:References
K. Hovsepian, M. al’Absi, E. Ertin, T. Kamarck, M. Nakajima, and S. Kumar,
"cStress: Towards a Gold Standard for Continuous Stress Assessment in the Mobile Environment,"
ACM UbiComp, pp. 493-504, 2015. |
| |
- Method resolution order:
- stress_from_wrist
- core.computefeature.ComputeFeatureBase
- builtins.object
Methods defined here:
- get_and_save_data(self, streams:dict, day:str, stream_identifier:str, user_id:str, json_path:list)
- This function takes all the streams of one user and extracts all the RR interval data the person has for a
specific day and calculates a feature matrix of shape (m,16) where m is the number of minutes of rr interval data
present for the day.
It then transforms the feature matrix on a row by row basis with a pre trained standard transformation and
applies the stess model to get a binary output of 0/1 meaning stress/not stress.
It saves the stress datastream
:param dict streams: All the streams of a user
:param str day: day in string format
:param str stream_identifier: stream name of rr interval
:param str user_id: uuid of user
:param list json_path: the names of the json files where the metadata of stress from wrist is written
- get_feature_for_one_window(self, rr:list) -> numpy.ndarray
- This function takes as input a list of many realizations of where the R peaks are present in one minute of
PPG data and calculates 16 features from it.
The features are:
1. 82nd perentile
2. 18th perentile
3. mean
4. median
5. standard deviation
6. inter quartile deviation
7. skewness
8. kurtosis
9. Energy in very low frequency range
10. Energy in very high frequency range
11. Energy in low frequency range
12. Ration of low to high frequency energy
13. quartile deviation
14. heart rate
15. median of inter percentile difference
16. standard deviation of inter percentile difference
:param list rr: A list of numpy array. Each array contains a realization of RR interval timeseries for the same one
minute of data
:return: A numpy array of shape(1,16) representing the 16 features calculated from one minute of data
:rtype: np.ndarray
- process(self, user:str, all_days:list)
- Takes the user identifier and the list of days and does the required processing
:param str user: user id string
:param list all_days: list of days to compute
Methods inherited from core.computefeature.ComputeFeatureBase:
- __init__(self, CC=None)
- Initialize self. See help(type(self)) for accurate signature.
- get_latest_stream_id(self, user_id, stream_name)
- store(self, identifier, owner, name, data_descriptor, execution_context, annotations, stream_type=1, data=None, localtime=True)
- All store operations MUST be through this method.
- store_stream(self, filepath:str, input_streams:list, user_id:<module 'uuid' from '/usr/lib/python3.6/uuid.py'>, data:list, localtime=True)
- This method saves the computed DataStreams from different features
Data descriptors inherited from core.computefeature.ComputeFeatureBase:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
| |


Stetho is a debug bridge for Android applications that I find it to be very useful, House can sideload stethor.jar and inject it into your application for debug purpose. It will only be turned on if you click the button below.
stetho.jar
./data/local/tmp/stetho.jar
, e.g. adb push stetho.jar /data/local/tmp/
.Load
button below, note this would restart the application.stetho.jar
, simply restart the app.


Coming soon!
Meanwhile, you can find noizHARDWARE here:
Minijack YouTube channel : audio tech, r&d and music
Instagram : eye candy
email : get in touch here!
Meanwhile, you can find noizHARDWARE here:
Minijack YouTube channel : audio tech, r&d and music
Instagram : eye candy
email : get in touch here!


public class Aerobic
extends java.lang.Object
| Constructor and Description |
|---|
Aerobic(int age,
java.lang.String sex)
Constructor takes an integer age, and string sex.
|
| Modifier and Type | Method and Description |
|---|---|
double |
get12minWalk()
Getter for the v02max of the 12-minute walk test
|
double |
getBench()
Gets the v02max for the benchtest
|
java.lang.String |
getBenchRating()
Getter method for the bench rating determined in setBenchRating().
|
double |
getRockport()
Getter for the v02max after the rockport walk test
|
void |
set12minWalk(double distance)
Calculates v02max for the 12-minute walk test
|
void |
setBench(int heartRate)
Sets the v02max for the benchtest.(15 second test)
|
void |
setBenchRating(int heartRate,
java.lang.String fileName)
Determines and sets the bench rating based off the results from the YMCA Step test.
|
void |
setRockport(double weight,
double walkTime,
int heartRate)
Sets the v02max for the RockPort test.
|
public Aerobic(int age, java.lang.String sex) throws java.io.FileNotFoundException
age
- age of the athletesex
- sex of the genderjava.io.FileNotFoundException
public void setBench(int heartRate)
heartRate
- Heart rate of the athlete after the testpublic double getBench()
public void setBenchRating(int heartRate, java.lang.String fileName) throws java.io.FileNotFoundException
heartRate
- The heart rate after the testfileName
- Location of a heart beat filejava.io.FileNotFoundException
public java.lang.String getBenchRating()
public void setRockport(double weight, double walkTime, int heartRate)
weight
- Weight of the athletewalkTime
- Time it took the athlete to walk 1 mileheartRate
- Heart rate of the athlete after their 1 mile walkpublic double getRockport()
public void set12minWalk(double distance)
distance
- The distance walked in meterspublic double get12minWalk()


KeyEvent
s that are triggered by the ESDKeyEvent
s that are triggered by the ESDStreamDeckController
from all cildren of the current
directory.StreamDeck
and will execute
the given Runnable
task when the stream deck button is pressed on release.


The University of Washington is a leader in both Computer Science and Statistics, creating a unique institution for performing cutting-edge Machine Learning research. This research occurs around many areas of campus, lead by a diverse set of faculty. The MODE Lab brings together faculty, students, and postdocs in CSE and Statistics. The focus of the lab is on Machine learning, Optimization, Distributed systems, and (E) statistics (or, for Spanish speakers, Estadística). Some example topics include:
Associate Professor
Associate Professor
Postdoctoral Fellow
Postdoctoral Fellow
Postdoctoral Associate
Graduate Student
Graduate Student
Graduate Student
Graduate Student
Graduate Student
Graduate Student
Graduate Student
Graduate Student
Graduate Student
Graduate Student
Graduate Student
Graduate Student
@inproceedings{Chen:ICLR16, title = {Net2Net: Accelerating Learning via Knowledge Transfer}, author = {Chen, T. and Goodfellow, I. and Shlens, J.}, booktitle = {International Conference on Learning Representation}, link = {http://arxiv.org/abs/1511.05641}, year = {2016} }
@inproceedings{Tank:KDD_cd_16, title = {Identifiability of Non-Gaussian Structural VAR Models for Subsampled and Mixed Frequency Time Series}, author = {Tank, A. and Fox, E. B. and Shojaie, A.}, booktitle = {Causal Discovery KDD Workshop}, link = {http://nugget.unisa.edu.au/CD2016/fulltext/KDD_subsamp.pdf}, year = {2016} }
@inproceedings{Aicher:KDDMiLeTS16:Scalable, title = {Scalable clustering of correlated time series using expectation propagation}, author = {Aicher, C. and Fox, E. B.}, booktitle = {2nd SIGKDD Workshop on Mining and Learning from Time Series}, year = {2016}, link = {http://www-bcf.usc.edu/%7Eliu32/milets16/paper/MiLeTS_2016_paper_23.pdf} }
@inproceedings{Foti:Nadkarni:Lee:Fox:KDDMiLeTS16, title = {Sparse plus low-rank graphical models of time series for functional connectivity in MEG}, author = {Foti, N. and Nadkarni, R. and Lee, A. KC and Fox, E. B.}, booktitle = {2nd SIGKDD Workshop on Mining and Learning from Time Series}, link = {http://www-bcf.usc.edu/%7Eliu32/milets16/paper/MiLeTS_2016_paper_22.pdf}, year = {2016} }
@inproceedings{Tank:KDD_ts_16, title = {Granger Causality Networks for Categorical Time Series}, author = {Tank, A. and Fox, E. B. and Shojaie, A.}, booktitle = {2nd SIGKDD Workshop on Mining and Learning from Time Series}, link = {http://www-bcf.usc.edu/%7Eliu32/milets16/paper/MiLeTS_2016_paper_24.pdf}, year = {2016} }
@article{Aldor-Noiman:StatisticaSinica2016, title = {Spatio-Temporal Low Count Processes with Application to Violent Crime Events}, author = {Aldor-Noiman, S. and Brown, L.D. and Fox, E.B. and Stine, R.A.}, journal = {Statistica Sinica}, volume = {26}, pages = {1587--1610}, year = {2016} }
@article{Baldassano:JNE2016, title = {A Novel Seizure Detection Algorithm Informed by Hidden {M}arkov Model Event States}, author = {Baldassano, S. and Wulsin, D. and Ung, H. and Blevins, T. and Brown, M.-G. and Fox, E.B. and Litt, B.}, journal = {Journal of Neural Engineering}, volume = {13}, number = {3}, pages = {036011}, year = {2016} }
@article{Davis:Epilepsia2016, title = {Mining Continuous Intracranial {EEG} in Focal Canine Epilepsy: {R}elating Interictal Bursts to Seizure Onsets}, author = {Davis, K. and Ung, H. and Wulsin, D. and Wagenaar, J. and Fox, E.B. and Patterson, E. and Vite, C. and Worrell, G. and Litt, B.}, journal = {Epilepsia}, volume = {57}, number = {1}, pages = {89--98}, year = {2016} }
@unpublished{Ma:Fox:Chen:Wu:2016, title = {A Unifying Framework for Devising Efficient and Irreversible MCMC Samplers}, author = {Ma, Y.-A. and Fox, E. and Chen, T. and Wu, L.}, link = {https://arxiv.org/abs/1608.05973}, year = {2016} }
@inproceedings{Tank:Foti:Fox:2015, title = {Bayesian structure learning for stationary time series}, author = {Tank, A and Foti, N. J. and Fox, E. B.}, booktitle = {Uncertainty in Artificial Intelligence}, link = {http://arxiv.org/pdf/1505.03131v2.pdf}, year = {2015} }
@inproceedings{Gillenwater:NIPS2014, author = {Gillenwater, J. and Kulesza, A. and Fox, E.B. and Taskar, B.}, title = {Expectation-Maximization for Learning Determinantal Point Processes}, booktitle = {Neural Information Processing Systems 27}, year = {2015}, publisher = {MIT Press} }
@inproceedings{Johnson:ICML2015, author = {Johnson, T. B. and Guestrin, C.}, title = {Blitz: A Principled Meta-Algorithm for Scaling Sparse Optimization}, booktitle = {International Conference on Machine Learning}, link = {http://jmlr.org/proceedings/papers/v37/johnson15.pdf}, year = {2015} }
@inproceedings{Chen:AISTATS15, author = {Chen, T. and Singh, S. and Taskar, B. and Guestrin, C.}, title = {Efficient Second-Order Gradient Boosting for Conditional Random Fields}, link = {http://homes.cs.washington.edu/%7Etqchen/data/pdf/GBCRF-AISTATS15.pdf}, booktitle = {International Conference on Artificial Intelligence and Statistics}, year = {2015} }
@inproceedings{Tank:2015a, author = {Tank, A. and Foti, N. J. and Fox, E. B.}, title = {Streaming variational inference for {B}ayesian nonparametric mixture models}, booktitle = {International Conference on Artificial Intelligence and Statistics}, link = {http://arxiv.org/abs/1412.0694}, year = {2015} }
@inproceedings{Ma:Chen:Fox:2015, title = {A Complete Recipe for Stochastic Gradient {MCMC}}, author = {Y.-A, Ma and Chen, T. and Fox, E. B.}, booktitle = {Advances in Neural Information Processing Systems}, link = {http://papers.nips.cc/paper/5891-a-complete-recipe-for-stochastic-gradient-mcmc.pdf}, year = {2015} }
@article{AdamsFoxSudderthTeh:2015, title = {Guest Editors’ Introduction to the Special Issue on Bayesian Nonparametrics}, author = {Adams, R.P. and Fox, E.B. and Sudderth, E.B. and Teh, Y.W.}, journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence}, volume = {37}, number = {2}, pages = {209--211}, year = {2015}, publisher = {IEEE} }
@article{Fox:JMLR2015, title = {Bayesian Nonparametric Covariance Regression}, author = {Fox, E.B. and Dunson, D.B.}, journal = {Journal of Machine Learning Research}, volume = {16}, pages = {2501--2542}, year = {2015} }
@inproceedings{Affandi:ICML2014, author = {Affandi, R.H. and Fox, E.B. and Adams, R.P. and Taskar, B.}, title = {Learning the Parameters of Determinantal Point Process Kernels}, booktitle = {Proc. International Conference on Machine Learning}, year = {2014}, month = jun }
@inproceedings{Affandi:NIPS2013, author = {Affandi, R.H. and Fox, E.B. and Taskar, B.}, title = {Approximate Inference in Continuous Determinantal Processes}, booktitle = {Neural Information Processing Systems 26}, year = {2014}, publisher = {MIT Press} }
@inproceedings{Chen:ICML14, author = {Chen, T. and Fox, E. B. and Guestrin, C.}, title = {Stochastic Gradient {H}amiltonian Monte Carlo}, booktitle = {International Conference on Machine Learning}, link = {http://arxiv.org/abs/1402.4102}, code = {http://www.github.com/tqchen/ML-SGHMC}, year = {2014} }
@inproceedings{Foti:Xu:Laird:Fox:2014, title = {Stochastic variational inference for hidden {M}arkov models}, author = {Foti, N. J. and Xu, J. and Laird, D. and Fox, E. B.}, booktitle = {Advances in Neural Information Processing Systems}, link = {http://papers.nips.cc/paper/5560-stochastic-variational-inference-for-hidden-markov-models.pdf}, year = {2014} }
@article{Fox:AOAS2014, title = {Joint Modeling of Multiple Related Time Series via the Beta Process with Application to Motion Capture Segmentation}, author = {Fox, E.B. and Hughes, M.C. and Sudderth, E.B. and Jordan, M.I.}, journal = {Annals of Applied Statistics}, volume = {8}, number = {3}, pages = {1281--1313}, year = {2014} }
@inbook{FoxJordan:14, author = {Fox, E.B. and Jordan, M.I.}, chapter = {Mixed Membership Models for Time Series}, editor = {Airoldi, E. and Blei, D. and Erosheva, E. and Fienberg, S.E. and Bokalders, K.}, publisher = {Chapman \& Hall}, title = {Handbook on Mixed Membership Models}, year = {2014} }
@article{Drausin:AIJ2014, title = {Modeling the Complex Dynamics and Changing Correlations of Epileptic Events}, author = {Wulsin, D. and Fox, E.B. and Litt, B.}, journal = {Artificial Intelligence}, volume = {216}, pages = {55--75}, year = {2014} }
@article{Zaman:AOAS2014, title = {A {B}ayesian Approach for Predicting the Popularity of Tweets}, author = {Zaman, T. and Fox, E.B. and Bradlow, E.T.}, journal = {Annals of Applied Statistics}, volume = {8}, number = {3}, pages = {1583--1611}, year = {2014} }
@inproceedings{Wulsin:ICML2013, author = {Drausin, W. and Fox, E.B. and Litt, B.}, title = {Parsing Epileptic Events Using a {M}arkov Switching Process Model for Correlated Time Series}, booktitle = {Proc. International Conference on Machine Learning}, year = {2013}, month = jun }
@inproceedings{Affandi:AISTATS2013, author = {Affandi, R.H. and Kulesza, A. and Fox, E.B. and Taskar, B.}, title = {Nystrom Approximation for Large-Scale Determinantal Processes}, booktitle = {Proc. International Conference on Artificial Intelligence and Statistics}, year = {2013}, month = apr }
@inproceedings{ElArini:KDD2013, author = {El-Arini, K. and Xu, M. and Fox, E.B. and Guestrin, C.}, title = {Representing Documents Through Their Readers}, booktitle = {Proc. Conference on Knowledge, Discovery, and Data Mining}, year = {2013}, month = aug }
@inproceedings{FoxDunson:NIPS2012, author = {Fox, E.B. and Dunson, D.B.}, title = {Multiresolution {G}aussian Processes}, booktitle = {Neural Information Processing Systems 25}, year = {2013}, publisher = {MIT Press} }
@inproceedings{Hughes:NIPS2012, author = {Hughes, M.C. and Fox, E.B. and Sudderth, E.B.}, title = {Effective Split-Merge {M}onte {C}arlo Methods for Nonparametric Models of Sequential Data}, booktitle = {Neural Information Processing Systems 25}, year = {2013}, publisher = {MIT Press} }
@inproceedings{Fyshe:AISTATS2012, author = {Fyshe, A. and Fox, E.B. and Dunson, D.B. and Mitchell, T.M.}, title = {Hierarchical Latent Dictionaries for Models of Brain Activation}, booktitle = {Proc. International Conference on Artificial Intelligence and Statistics}, year = {2012}, month = apr }
@inproceedings{Affandi:UAI2012, author = {Affandi, R.H. and Kulesza, A. and Fox, E.B.}, title = {Markov Determinantal Point Processes}, booktitle = {Proc. Conference on Uncertainty in Artificial Intelligence}, year = {2012}, month = aug }


Try out our Premium Member services: Virtual Legal Assistant, Query Alert Service and an ad-free experience. Free for one month and pay only if you like it.
IN THE HIGH COURT OF JUDICATURE AT PATNA Civil Writ Jurisdiction Case No.20498 of 2019 ======================================================
Shambhu Sharan Singh S/o- Sri Bigan Singh Director, Vivekanand Mission School, resident of Biley Vihar (Lala Amouna), P.S. Daudnagar, District- Aurangabad.
... ... Petitioner/s Versus
1. The State of Bihar through Principal Secretary, Industry Department, Government of Bihar, Patna.
2. The Principal Secretary, Agriculture Department, Government of Bihar, Patna.
3. The Collector, Aurangabad, District- Aurangabad.
4. The Additional Collector-Cum- District Grievance Redressal Officer, Aurangabad, District- Aurangabad.
5. The Sub Divisional Officer, Daudnagar, P.S. Daudnagar, District-
Aurangabad.
6. The Bihar State Pollution Control Board through its Chairman, Parivesh Bhawan, Plot No.- NSB-02, Patliputra Industrial Area, Patna.
7. The Chairman, Bihar State Pollution Control Board, Parivesh Bhawan, Plot No.- NSB-02, Patliputra Industrial Area, Patna.
8. The Regional Officer, Bihar State Pollution Control Board, Parivesh Bhawan, Plot No.- NSB-02, Patliputra Industrial Area, Patna.
9. Laxman Prasad S/o Sri Rameshwar Singh Director/ Proprietor of Rameshwari Cold Storage, A Unit of Rameshwari Agro Service Pvt. Ltd., resident of Village- Bhakharuan More, Gaya Road, P.S.- Daudnagar, District- Aurangabad.
... ... Respondent/s ====================================================== Appearance :
For the Petitioner/s : Mr.Suraj Samdarshi with Mr Jainandra Kr. Advts. For the Respondent/s : Mr.Sanjeev Kumar with Mr. Rajeev Kr. Advts. For the P.C.B : Mr. Shivendra Kishore, Sr. Adv. ====================================================== CORAM: HONOURABLE MR. JUSTICE MADHURESH PRASAD ORAL JUDGMENT Date : 04-02-2020 Heard Mr. Suraj Samdarshi, learned counsel for the petitioner and Mr. Sanjeev Kumar, learned counsel for the private respondent and Mr. Shivendra Kishore, learned Sr. counsel for the Bihar State Pollution Control Board ( for brevity 'the Board').
Petitioner's counsel submits that he is aggrieved by the Patna High Court CWJC No.20498 of 2019 dt.04-02-2020 2/3 consent to operate the Cold Storage Unit granted under order dated 18.4.2019 by the Board.
The learned Sr. counsel, representing the Board, submits that the petitioner has remedy, by way of appeal, before the Member, Board of Revenue. The said submission has to be viewed in background of other submissions being advanced on behalf of the petitioner's counsel that the Cold Storage Unit was barred as being within the prohibited distance prescribed under the relevant law for the said purpose. The submission is that without proper physical verification and without any determination, regarding the proximity of the said Unit with the school in-question, the consent to operate has been granted by resorting to a misinterpretation of the provisions governing the prohibited distance of such Unit from the educational institutions, Hospitals and Courts.
These issues are issues of fact. The petitioner, as per the submissions of the learned Sr. counsel for the Board, has a remedy under Section 31 of the Air ( Prevention and Control of Pollution) Act, 1981, before the Member, Board of Revenue.
In view of the adequate alternative statutory remedy available to the petitioner, wherein, all these issues of facts can be raised and properly examined. This Court does not deem it appropriate to exercise the jurisdiction under Article 226 of the Constitution of India. The petitioner would be at liberty to avail of the remedy in accordance with law.
Patna High Court CWJC No.20498 of 2019 dt.04-02-2020 3/3 Learned counsel for the petitioner submits that on account of the pendency of the instant proceedings, the appeal would now be delayed, as per provisions contained in the Act. This Court would observe that if appeal is filed within a period of four (04) weeks from today, the Member, Board of Revenue, shall proceed to consider the same , in accordance with law, without raising the issue of delay.
With the aforesaid observation/direction the writ application is disposed off.
(Madhuresh Prasad, J) shyambihari/-
AFR/NAFR NAFR CAV DATE N/A Uploading Date 06.02.2020 Transmission Date N/A


Kotlin Rules
Overview
Setup
Add the following snippet to your WORKSPACE
file:
git_repository(
name = "io_bazel_rules_kotlin",
remote = "https://github.com/bazelbuild/rules_kotlin.git",
commit = "<COMMIT_HASH>",
)
load("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kotlin_repositories", "kt_register_toolchains")
kotlin_repositories(kotlin_release_version = "1.2.21")
kt_register_toolchains()
To enable persistent worker support, add the following to the appropriate bazelrc
file:
build --strategy=KotlinCompile=worker
test --strategy=KotlinCompile=worker
Standard Libraries
The Kotlin libraries that are bundled in a kotlin release should be used with the rules, the mandatory
standard libraries are added implicetly. After enabling
the repository the following Kotlin Libraries are also made available from the workspace com_github_jetbrains_kotlin
:
kotlin-test
,kotlin-reflect
.
So if you needed to add reflect as a dep use the following label @com_github_jetbrains_kotlin//:kotlin-reflect
.
Mixed Mode compilation
The JVM rules can compile both Java and Kotlin sources. The Java compiler wrapper is not optimized or persistent and does not have the features found in the native java rules. This mode is usefull for migrating a package to Kotlin over time.
Annotation Processing
Annotation processing works just as it does in Java, plugins are declared via a java_plugin
and may also be inherited from a java_library
via the exported_plugins
attribute. Annotation work in mixed-mode compilation and the Kotlin compiler take
care of processing both aspects.
An example which can be found under //examples/dagger
:
java_plugin(
name = "dagger_plugin",
deps = [
"@dagger_compiler//jar",
"@guava//jar",
"@dagger_producers//jar",
"@dagger//jar",
"@javax_inject//jar"
],
processor_class = "dagger.internal.codegen.ComponentProcessor"
)
java_library(
name = "dagger_lib",
exports = [
"@javax_inject//jar",
"@dagger//jar",
],
exported_plugins = ["dagger_plugin"]
)
kt_jvm_binary(
name = "dagger",
srcs = glob(["src/**"]),
main_class = "coffee.CoffeeApp",
deps = [":dagger_lib"],
)
kotlin_repositories
kotlin_repositories(kotlin_release_version)
Call this in the WORKSPACE file to setup the Kotlin rules.
Attributes
kotlin_release_version |
The kotlin compiler release version. If this is not set the latest release version is chosen by default. |
kt_register_toolchains
kt_register_toolchains()
register all default toolchains
kt_jvm_binary
kt_jvm_binary(name, deps, data, resources, srcs, jvm_flags, main_class, module_name, plugins, resource_jars, resource_strip_prefix, runtime_deps)
Builds a Java archive ("jar file"), plus a wrapper shell script with the same name as the rule. The wrapper shell script uses a classpath that includes, among other things, a jar file for each library on which the binary depends.
Note: This rule does not have all of the features found in java_binary
.
It is
appropriate for building workspace utilities. java_binary
should be preferred for release
artefacts.
Attributes
name |
A unique name for this rule. |
deps |
A list of dependencies of this rule.See general comments about |
data |
The list of files needed by this rule at runtime. See general comments about
|
resources |
A list of data files to include in a Java jar. |
srcs |
The list of source files that are processed to create the target, this can contain both Java and Kotlin files. Java analysis occurs first so Kotlin classes may depend on Java classes in the same compilation unit. |
jvm_flags |
A list of flags to embed in the wrapper script generated for running this binary. Note: does not yet support make variable substitution. |
main_class |
Name of class with main() method to use as entry point. |
module_name |
The name of the module, if not provided the module name is derived from the label. --e.g.,
|
plugins |
|
resource_jars |
Set of archives containing Java resources. If specified, the contents of these jars are merged into the output jar. |
resource_strip_prefix |
The path prefix to strip from Java resources, files residing under common prefix such as
|
runtime_deps |
Libraries to make available to the final binary or test at runtime only. Like ordinary deps, these will appear on the runtime classpath, but unlike them, not on the compile-time classpath. |
kt_jvm_import
kt_jvm_import(name, jars, runtime_deps, srcjar)
(experimental) Import Kotlin jars.
Status: This rule is not a counterpart to java_import
. The current purpose
for this rule is to import a kotlin jar without creating ijars. It will
eventually be replaced with java_import
.
If there is a need for expanding this rule we can instead
create a utility macro that delegates to this.
examples
# Old style usage -- reference file groups, do not used this.
kt_jvm_import(
name = "kodein",
jars = [
"@com_github_salomonbrys_kodein_kodein//jar:file",
"@com_github_salomonbrys_kodein_kodein_core//jar:file"
]
)
# This style will pull in the transitive runtime dependencies of the targets as well.
kt_jvm_import(
name = "kodein",
jars = [
"@com_github_salomonbrys_kodein_kodein//jar",
"@com_github_salomonbrys_kodein_kodein_core//jar"
]
)
# Import a single kotlin jar.
kt_jvm_import(
name = "kotlin-runtime",
jars = ["lib/kotlin-runtime.jar"],
srcjar = "lib/kotlin-runtime-sources.jar"
)
Attributes
name |
A unique name for this rule. |
jars |
The jars listed here are equavalent to an export attribute. The label should be either to a
single class jar, or multiple filegroup labels. When the
labels is a file_provider it should follow the conventions used in repositories generated by
the maven_jar rule --i.e., the rule expects a file_provider
with a single class jar and a single source jar. a source jar is recognized by the suffix
|
runtime_deps |
Additional runtime deps. |
srcjar |
The sources for the class jar. This should be set when importing a single class jar. |
kt_jvm_library
kt_jvm_library(name, deps, data, resources, srcs, exports, module_name, plugins, resource_jars, resource_strip_prefix, runtime_deps)
This rule compiles and links Kotlin and Java sources into a .jar file.
Attributes
name |
A unique name for this rule. |
deps |
A list of dependencies of this rule.See general comments about |
data |
The list of files needed by this rule at runtime. See general comments about
|
resources |
A list of data files to include in a Java jar. |
srcs |
The list of source files that are processed to create the target, this can contain both Java and Kotlin files. Java analysis occurs first so Kotlin classes may depend on Java classes in the same compilation unit. |
exports |
Exported libraries. Deps listed here will be made available to other rules, as if the parents explicitly depended on these deps. This is not true for regular (non-exported) deps. |
module_name |
The name of the module, if not provided the module name is derived from the label. --e.g.,
|
plugins |
|
resource_jars |
Set of archives containing Java resources. If specified, the contents of these jars are merged into the output jar. |
resource_strip_prefix |
The path prefix to strip from Java resources, files residing under common prefix such as
|
runtime_deps |
Libraries to make available to the final binary or test at runtime only. Like ordinary deps, these will appear on the runtime classpath, but unlike them, not on the compile-time classpath. |
kt_jvm_test
kt_jvm_test(name, deps, data, resources, srcs, friends, jvm_flags, main_class, module_name, plugins, resource_jars, resource_strip_prefix, runtime_deps, test_class)
Setup a simple kotlin_test.
Notes:
- The kotlin test library is not added implicitly, it is available with the label
@com_github_jetbrains_kotlin//:kotlin-test
.
Attributes
name |
A unique name for this rule. |
deps |
A list of dependencies of this rule.See general comments about |
data |
The list of files needed by this rule at runtime. See general comments about
|
resources |
A list of data files to include in a Java jar. |
srcs |
The list of source files that are processed to create the target, this can contain both Java and Kotlin files. Java analysis occurs first so Kotlin classes may depend on Java classes in the same compilation unit. |
friends |
A single Kotlin dep which allows the test code access to internal members. Currently uses the output jar of the module -- i.e., exported deps won't be included. |
jvm_flags |
A list of flags to embed in the wrapper script generated for running this binary. Note: does not yet support make variable substitution. |
main_class |
|
module_name |
The name of the module, if not provided the module name is derived from the label. --e.g.,
|
plugins |
|
resource_jars |
Set of archives containing Java resources. If specified, the contents of these jars are merged into the output jar. |
resource_strip_prefix |
The path prefix to strip from Java resources, files residing under common prefix such as
|
runtime_deps |
Libraries to make available to the final binary or test at runtime only. Like ordinary deps, these will appear on the runtime classpath, but unlike them, not on the compile-time classpath. |
test_class |
The Java class to be loaded by the test runner. |


|
chigraph
master
Systems programming language written for beginners in LLVM
|
A generic node type. More...
#include <chig/NodeType.hpp>
Public Member Functions | |
| NodeType (ChigModule &mod, std::string name={}, std::string description={}) | |
| Constructor. More... | |
| virtual | ~NodeType ()=default |
| Destructor. | |
| virtual std::unique_ptr< NodeType > | clone () const =0 |
| Clones the type. More... | |
| virtual Result | codegen (size_t execInputID, const llvm::DebugLoc &nodeLocation, const gsl::span< llvm::Value *> io, llvm::BasicBlock *codegenInto, const gsl::span< llvm::BasicBlock *> outputBlocks, std::unordered_map< std::string, std::shared_ptr< void >> &compileCache)=0 |
| A virtual function that is called when this node needs to be called. More... | |
| Context & | context () const |
| Get the Context this NodeType belongs to. More... | |
| const std::vector< NamedDataType > & | dataInputs () const |
| Get the data inputs for the node. More... | |
| const std::vector< NamedDataType > & | dataOutputs () const |
| Get the data outputs for the node. More... | |
| std::string | description () const |
| Get the description of the NodeType. More... | |
| gsl::span< const std::string > | execInputs () const |
| Get the execution inputs for the node. More... | |
| gsl::span< const std::string > | execOutputs () const |
| Get the execution outputs for the node. More... | |
| ChigModule & | module () const |
| Get the ChigModule this NodeType belongs to. More... | |
| std::string | name () const |
| Get the name of the NodeType in the ChigModule. More... | |
| bool | pure () |
| Get if this node is pure. More... | |
| std::string | qualifiedName () const |
| Get the qualified name of the node type, like module.name():name() More... | |
| virtual nlohmann::json | toJSON () const |
| Create the JSON necessary to store the object. More... | |
Protected Member Functions | |
| void | makePure () |
| Make this node pure For more info on what this means, see https://en.wikipedia.org/wiki/Pure_function Also, UE4 implements it https://docs.unrealengine.com/latest/INT/Engine/Blueprints/UserGuide/Functions/#purevsstopimpure Pure nodes only have no inexecs and no outexecs When they are called they are backpropagated and all called They should usually be cheap and sideaffectless. | |
| NodeInstance * | nodeInstance () const |
| Get the node instance. More... | |
| void | setDataInputs (std::vector< NamedDataType > newInputs) |
| Set the data inputs for the NodeType. More... | |
| void | setDataOutputs (std::vector< NamedDataType > newOutputs) |
| Set the data outputs for the NodeType. More... | |
| void | setDescription (std::string newDesc) |
| Set the description of the node. More... | |
| void | setExecInputs (std::vector< std::string > newInputs) |
| Set the exec inputs for the NodeType. More... | |
| void | setExecOutputs (std::vector< std::string > newOutputs) |
| Set the exec outputs for the NodeType. More... | |
| void | setName (std::string newName) |
| Set the name of the type. More... | |
A generic node type.
All user made types are of JsonNo deType type, which is defined in JsonModule.cpp. This allows for easy extension of the language.
Definition at line 23 of file NodeType.hpp.
|
inline |
Constructor.
| mod | The module to create the NodeType in |
| name | The name of the NodeType |
| description | The description of the NodeType |
Definition at line 32 of file NodeType.hpp.
References chig::ChigModule::context(), description(), name(), and ~NodeType().
|
pure virtual |
Clones the type.
Referenced by toJSON().
|
pure virtual |
A virtual function that is called when this node needs to be called.
| execInputID | The ID of the exec input |
| nodeLocation | The location of the node |
| io | This has the values that are the inputs and outputs of the function. This vector will always have the size of inputs.size() + outputs.size() and starts with the inputs. The types are gaurenteed to be the same as inputs and outputs |
| codegenInto | The BasicBlock object that is used to place calls into |
| outputBlocks | The blocks that can be outputted. This will be the same size as |
| compileCache | Cache for use of nodes numOutputExecs. |
Referenced by qualifiedName().
|
inline |
Get the Context this NodeType belongs to.
Definition at line 78 of file NodeType.hpp.
|
inline |
Get the data inputs for the node.
Definition at line 81 of file NodeType.hpp.
Referenced by chig::connectData(), chig::disconnectData(), and chig::NodeInstance::setType().
|
inline |
Get the data outputs for the node.
Definition at line 84 of file NodeType.hpp.
Referenced by chig::connectData(), chig::disconnectData(), and chig::NodeInstance::setType().
|
inline |
Get the description of the NodeType.
Definition at line 72 of file NodeType.hpp.
Referenced by NodeType().
|
inline |
Get the execution inputs for the node.
Definition at line 87 of file NodeType.hpp.
Referenced by chig::connectExec().
|
inline |
Get the execution outputs for the node.
Definition at line 90 of file NodeType.hpp.
Referenced by chig::connectExec(), and chig::disconnectExec().
|
inline |
Get the ChigModule this NodeType belongs to.
Definition at line 75 of file NodeType.hpp.
Referenced by qualifiedName().
|
inline |
Get the name of the NodeType in the ChigModule.
Definition at line 69 of file NodeType.hpp.
Referenced by NodeType(), and qualifiedName().
|
inlineprotected |
|
inline |
|
inline |
Get the qualified name of the node type, like module.name():name()
Definition at line 42 of file NodeType.hpp.
References codegen(), chig::ChigModule::fullName(), module(), and name().
Referenced by chig::connectData(), chig::connectExec(), chig::disconnectData(), chig::disconnectExec(), and chig::validateFunctionConnectionsAreTwoWay().
|
inlineprotected |
Set the data inputs for the NodeType.
| newInputs | The new inputs |
Definition at line 99 of file NodeType.hpp.
|
inlineprotected |
Set the data outputs for the NodeType.
| newOutputs | The new outputs |
Definition at line 102 of file NodeType.hpp.
|
inlineprotected |
Set the description of the node.
| newDesc | The new description |
Definition at line 120 of file NodeType.hpp.
|
inlineprotected |
Set the exec inputs for the NodeType.
| newInputs | The new inputs |
Definition at line 107 of file NodeType.hpp.
Referenced by makePure().
|
inlineprotected |
Set the exec outputs for the NodeType.
| newOutputs | The new outputs |
Definition at line 110 of file NodeType.hpp.
Referenced by makePure().
|
inlineprotected |
Set the name of the type.
| newName | The new name |
Definition at line 116 of file NodeType.hpp.
|
inlinevirtual |
Create the JSON necessary to store the object.
Definition at line 62 of file NodeType.hpp.
References clone().
Referenced by chig::connectData(), and chig::disconnectData().


Shear Conventions¶
A shear field (or in general an arbitrary spin-2 complex field, also known as a “spinor”)
is described by two real numbers in the input Catalog
, called \(g_1\) and \(g_2\).
The complex-valued \(g\) is defined as:
These values are used in all “G” correlation function classes: GGCorrelation
,
NGCorrelation
, KGCorrelation
, and GGGCorrelation
.
Spin-2 fields have the property that when the coordinate system rotates by an angle \(\theta\), the complex value changes by a factor of \(\text{exp}(-2 i \theta)\). That is, they transform as an ellipse or a “headless” line segment (where neither end is special, unlike a vector). When the coordinates are rotated by 180 degrees, the ellipse or line segment is mapped back onto itself, and the shear value is unchanged.
Flat Geometries¶
For flat two-dimensional geometries, the definition of the shear phase is fairly non-controversial. The standard definition holds that \(g\) is positive real when the shear is oriented parallel to the x-axis. It is negative real when parallel to the y-axis. It is positive imaginary when parallel to the line \(y=x\). And it is negative imaginary when parallel to the line \(y=-x\).
In other words, the phase angle \(\phi\) is measured counter-clockwise from the x-axis.
Spherical Geometries¶
For spherical or 3-d geometries, things get somewhat more complicated, because there is no consistent orientation that would work for all locations on the sphere. At the location of any particular galaxy, one can define a local rectilinear coordinate system where the shear is defined analogously to the flat geometry case, but these necessarily change as one moves around the celestial sphere.
TreeCorr uses the convention adopted by many recent weak lensing surveys, that the “up” direction is towards the north pole. As seen from Earth, this means that West is to the right. The measurement of the ellipticity of a galaxy involves rotating the local coordinates in the neighborhood of the galaxy such that north is oriented vertically, and then measuring the ellipticity in the normal way.
With this convention, \(g\) is positive real when the shear is oriented in the local E-W direction. It is negative real when oritented in the N-S direction. It is positive imaginary when oriented along NW-SE. And it is negative imaginary when oriented along NE-SW.
Options to adjust the convention¶
Not all surveys and simulations conform to the above convention, particularly related to the sign of the two components. The most common alternative is to align the axes with north still up, but as seen from space looking along the path of the light bundle as it travels towards Earth. This flips the E and W directions, so West is to the left, not right. The upshot of this choice is that it flips the sign of the imaginary component, g2. Sometimes simulations choose conventions that are equivalent to flipping the sign of g1, either instead of or in addition to flipping g2.
Because of this variation in conventions, TreeCorr provides two input parameters to
flip the sign of either component to match the standard convention.
Setting flip_g1=True
when making a Catalog
will cause it to flip the sign of all
the g1 values. Similarly, flip_g2=True
will flip the sign of all the g2 values.


{{ input.kanji }}
Which one is the correct {{ input.reading }} reading?
✔
❌
It is: {{ input.rightOption }}
Meaning: {{ input.meaning }}