text:
Tag: penitentials
The Humanity of the Early Embryo, part 1
John L. Frank writes in a Wall Street Journal Letter to the Editor that the "early-term abortion is not genocide." To read the entire letter, go here: http://online.wsj.com/public/page/letters.html. Mr Frank's letter is about the University of Notre Dame's invitation to President Barak Obama to deliver the commencement speech at this years graduation. In particular, Mr. Frank is responding to William McGurn's op ed article on the matter (see http://online.wsj.com/article/SB123785146238319263.html?mod=article-outset-box). His reasons for not regarding the early human embryo as a human person represent some of the contemporary thinking on this issue. I would like to demonstrate why I think his reasons fail and the early human embryo should be treated as a full member of the human species with the right to not be harmed.
Mr. Frank begins by asserting that the Catholic Church did not regard the embryo as a human person for most of its recorded history. Instead, according to Mr. Frank, early church leaders like Augustine, Aquinas, Pope Gregory XIV endorsed Aristotle's concept that a new person does not exist until the first noticeable movements in the womb, which is popularly known as "quickening."
Problems begin right away. Frank depends upon the historical analysis of an Anglican scholar named G. R. Dunstan who claimed that absolute protection for the embryo in Christian thinking is a creation of the nineteenth century. This conclusion is completely without merit. Dunstan's conclusions are called into question by the work of David Albert Jones, whose book The Soul of the Embryo (London, UK: Continuum, 2004), shows that the protection of the embryo at all stages is actually the original understanding of the Christian Church.
The earliest witnesses to the Christian ethical tradition regarding the unborn come from a variety of works. The earliest work is the Didache, otherwise known as the Teaching of the Twelve Apostles. This work dates to the first century AD, and states:"You shall not kill a child by abortion nor kill it after it is born (Didache 2:2). The second century Letter of Barnabus, makes the same statement (19.5).Both documents forbid abortion at any stage of development.
In AD 177, the Christian leader Athenagoras wrote in a letter to the Roman Emperor Marcus Aurelius that "those women who use drugs to bring about an abortion commit murder."Athenagoras also stated that those who obtain an abortion would "have to give an account to God" for what they have done (A Plea for Christians 35.6). This letter rebuts a rather malicious claim against Christians; namely that Christians practiced child sacrifice. Athenagoras invalidates this urban legend when he states that Christians view both abortion and infanticide as wrong. Twenty years later, the Christian apologist, Tertullian, would make a similar argument:"for us murder is once for all forbidden; so it is not lawful for us to destroy even the child in the womb" (Apology 9:8).
In the early third century, Minucius Felix pointed out that it was pagans and not Christians who treated the unborn with indifference.
It is among you that I see newly-begotten sons at times exposed to wild beasts and birds, or dispatched by the violent death of strangulation; and there are women who by the use of medicinal potions, destroy the unborn life in their wombs, and murder the child before they bring it forth (Octavius 30:2).
During the second or third century, several works pointed out the threat of divine judgment for procuring an abortion. For example, the Apocalypse of Peter and Apocalypse of Paul both portrayed men and women having to face the children they had aborted. The threat of judgment displayed abortion both as a crime against the child and God. It must be emphasized that abortion was never viewed as an unforgivable sin, since Jesus Christ brought reconciliation for sinners.Judgment awaited those who did not accept the forgiveness available in Jesus Christ.
At the turn of the fourth century, Lactantius wrote that Christians not only were forbidden to kill in ways that were illegal and socially unacceptable, but also in ways that were tolerated and esteemed in the pagan world. This was the case with the strangulation of infants and the killing of unborn children who had yet seen the light of day (Divine Institutes 6:20).
There is also evidence from sermons and letters from the Early Church that particular Christians failed to live up to their high moral principles and participated in abortions.Such instances were met with condemnation.A few examples will suffice. Cyprian of Carthage accused the schismatic priest Novatus of inducing a miscarriage by kicking his wife with his heel (Letter 52 to Cornelius). Similarly, Hippolytus accused Callistus (then bishop of Rome) of recognizing mismatched marriages between high-born women and men of low social status that resulted in abortions:
Women who were reputed to be believers began to take drugs to render themselves sterile, and to bind themselves tightly so as to expel what was being conceived, since they would not, on account of relatives and excess wealth, want to have a child by a salve or by any insignificant person (Refutation of all Heresies 9.7).
In the fourth century, the practice of abortion became endemic among Christians.Instead of condoning it or using an argument that distinguished between killing formed and unformed fetuses, Christian leaders condemned it. For example, Jerome wrote
I cannot bring myself to speak of the many virgins who daily fall and are lost to the bosom of the church, … You may see many women widows before wedded, who try to conceal their miserable fall by a lying garb. Unless they are betrayed by swelling wombs or by the crying of their infants, they walk abroad with tripping feet and heads in the air. Some go so far as to take potions, that they may ensure barrenness, and thus murder human beings almost before their conception. Some, when they find themselves with child through their sin, use drugs to procure abortion, and when (as often happens) they die with their offspring, they enter the lower world laden with the guilt not only of adultery against Christ but also of suicide and child murder (Letter 22:13).
Notice that Jerome condemned the practice regardless of the age of the unborn. Similarly Ambrose of Milan lamented that "even the wealthy, in order that their inheritance may not be divided among several, deny in the very womb their own progeny" (Hexameron 5.18.58). John Chrysostom confronted men in his own congregation (married and single) for going to prostitutes.Such men were guilty of not only adultery, but if she became pregnant and procured an abortion, they were now doubly guilty of murder as well. Chrysostom stated that "even if she does the deed, you are the cause of it" (Homily 24 on Romans).
Other Christian teachers and bishops emphasized the harmful character of abortion. Clement of Alexandria drew out the dehumanizing effects of abortion. According to Clement, those who obtained an abortion destroyed not only a child, also "destroy all humanity" (The Teacher 2:10). Augustine of Hippo regarded abortion not only as an attack on human life but also as an attack on marriage.If a married couple agreed to abort their child, they were not spouses at all (On Marriage and Concupiscence 1.17). John Chrysostom called abortion "something worse than murder" (Homily 24 on Romans). His reason for this was that it turned the blessed act of childbearing into an occasion for killing and turned the womb, a chamber of new life, into a "chamber for murder" (ibid.).
Several Christian teachers referred to abortion at "parricide." Since parricide typically refers to the killing of a parent, this usage is rather strange since abortion is the killing by a parent. However, parricide dredged up a particular horror in the Roman mindset, since it represented an attack upon authority. Minucius Felix, Cyprian, Lactantius and Ambrose inverted this sense and associated the horrors of parricide with an attack upon the weak and powerless. This reflects the Christian mindset with respect to abortion.
Since abortion was considered a heinous crime, and since Jesus' death on the cross provided the means of forgiveness for those who had procured an abortion, what did the Church recommend for some who had had an abortion? The fourth century is the first evidence of a codified attempt to restore those who had had an abortion. In AD 305, the Council of Elvira in Spain, 81 canons were issued that dealt with issues like celibacy for the clergy and the administration of the sacraments. Two of these canons dealt with abortion.
Canon 63:If a woman becomes pregnant by committing adultery while her husband is absent, and after the act she destroys the child, it is proper to keep her from communion until death, because she has doubled her crime.
Canon 68:If a catechumen becomes pregnant by committing adultery and after the act she destroys the child, she can be baptized only at the end of her life.
The canons on abortion were quite severe, but were no more severe than canons on other subjects accepted at the synod.
After AD 313, Emperor Constantine declared a policy of religious toleration. Two years later, a council of bishops met at the council of Ancyra in the Roman province of Galatia. One canon mentioned abortion.
Canon 21: Concerning women who commit fornication, and destroy that which they have conceived, or who are employed in making drugs for abortion, a former decree excluded them until the hour of death, and to this some have assented.Nevertheless, being desirous to use somewhat greater leniency, we have ordained that they fulfill ten years of penance.
Similar attitudes were provided for other crimes as well. This was upheld by the first great ecumenical council at Nicaea in AD 325, "in the case of anyone whatsoever who is dying and seeks to share in the Eucharist, the bishop upon examining the matter shall give him a share in the offering" (Nicaea, canon 13). Ancyra also included the man responsible for the events that led to the abortion.
In AD 375, Basil the Great wrote a series of letters that significantly influenced church legislation. Of these canons of Basil the Great, two are concerned with abortion.
Canon 2: The woman who purposely destroys her unborn child is guilty of murder.With us there is no nice enquiry as to its being formed or unformed …The punishment, however, of these women should not be for life, but for the term of ten years.
Canon 8: Women also who administer drugs to cause abortion, as well as those who take poisons to destroy unborn children, are murderesses.
Basil asserted that those who had an abortion or administered the drugs to induce the abortion were guilty of murder. While there was disagreement as to the duration of the penance for such an act, there was no question as to the criminality of the act. According to Basil, abortion is murder and it should be treated as such. For the purpose of penance, Basil rejected the distinction between the unborn being "formed" or "unformed." This distinction was not discussed at the Councils of Elvira and Ancyra, but Basil seems to have heard of it.
This distinction between the formed unborn and the unformed unborn was already present in the Greek translation of the Hebrew Old Testament, which was known as the Septuagint and the first-century Jewish philosopher Philo of Alexandra.However, this strand of thinking regarding the unborn did not enter Christian thinking until the fourth and fifth centuries.
The late fourth century work the Apostolic Constitutions, drew on earlier material, and the seventh book closely followed the Didache. However, the Apostolic Constitutions added this gloss: "You shall not kill a child by abortion nor kill it after it is born.For everything that is shaped and has received a soul from God, if killed, shall be avenged, as having been unjustly destroyed" (Apostolic Constitution 7.3). Despite its name, this work was not apostolic and was rejected as a work of authentic apostolic authority by the Council of Trullo in AD 692.Other patristic sources that mentioned the distinction between killing a formed and unformed fetus were Jerome (Letter 121.4), Augustine's commentary on Exodus (Questions on Exodus 80), and the Pseudo-Augustinian work Questions on the Old and New Testaments (23).
The Council of Trullo was influenced by the canons of Basil and added, in Canon 91: "Those who give drugs procuring an abortion and those who receive poisons to kill the fetus are subjected to the penalty of murder." This canon was incorporated into the great canon legal collection of Photius the nomocanon in AD 883. The canons of Elvira, Ancyra and Trullo continue to inform canon law in the Orthodox Church to the present day. According to David Jones, at no point in its ethical or legal history has the Eastern Orthodox Church embraced an ethical or legal distinction between early and late abortion.
Two other councils produced results that influenced the debate over the unborn.First, the Council of Ledira in Spain in AD 524 distinguished between those who sinned by adultery, even if that sin led to an abortion and those who gave the poisons (venefici) to produce and abortion. The penance for the first offense was seven years, but for the last it lasted a lifetime.This reflects influences from Roman criminal law. The second was the Second Council of Braga, which met in Portugal in 572.At this council Martin of Braga used canons from the previous Eastern councils, but he altered the canon on abortion in his translation to include those who sought contraception with those who desired infanticide and abortion (Braga, canon 78). There had been some mention of this in previous works.Jerome (Letter 22:13), Caesarius of Arles (Sermon 1:12) and the Jewish Talmud regarded chemical sterilization with tremendous disdain; since it prevented the lives of those who might have been born (the Talmud condemns the spilling or wasting of the male seed, but allows women to take sterilizing drugs). Thus the Second Council of Braga followed Jerome, Caesarius, and Martin in regarding taking drugs that induce abortion or sterility as part of the same crime, since in many cases the same drugs were used to achieve either end.
Developments in church discipline also reflected varying perspectives on the embryo.One of the earliest Irish penitentials dates from the early sixth century and is known as the Finnian. This penitential treats abortion as type of poisoning (maleficium, a category taken from Roman law). The Finnian imposes a penance of six months bread and water plus two years abstinence from meat and alcohol for the person who caused the abortion. There was no variation according to the age of the embryo.However, in a later tradition from the late seventh century Irish canons, the Bigotian Penitential, and the Old Irish Penitential of the early ninth century distinguished penances for abortion according to the age of the embryo or fetus. The Old Irish Penitential gave three and a half years penance for abortion after the pregnancy had become established, but seven years if the flesh had formed and fourteen years if the soul had entered the unborn child. This three-stage process of development regarded he embryo as unformed "like water" in the first stage, with flesh but without a soul in the second stage, and ensouled and formed in the third stage. This three-fold pattern is not found in the Septuagint or Aristotle, but in Hippocrates, and is paralleled in the Talmud and Koran (which was influenced by Talmudic traditions). Thus for these writers, abortion was not true homicide if committed before the signs of movement or "quickening," but was still regarded as a serious sin.
The first Anglo-Saxon penitentials were written in the seventh century (Theodore, Archbishop of Canterbury had much to do with their production). These made a distinction in penance if the embryo was older or younger than forty days old. The penance was more severe if the embryo was killed after 40 days of life (three years, the same as a homicide), and less severe if the embryo was less than forty days old when destroyed (only one year of penance).
These Celtic and Anglo-Saxon penitentials came into conflict with the older models of penance used in Spain. In AD 589, the Council of Toledo condemned the new penitentials as too lenient.Nevertheless, the Anglo-Saxon and Celtic models gained ascendancy in the centuries to come, and by the time of the eleventh century, there were three models for treating abortion: 1) Abortion was homicide regardless of the stage of the pregnancy; 2) Abortion was homicide only after ensoulment; 3) Both contraception and abortion were homicide regardless of the stage of the pregnancy.
The first option represents the dominant tradition from the Didache to the Council of Trullo, which was reaffirmed in the West in AD 848 at the Council of Worms (canon 35). The second and third options became increasingly influential from the late fourth century on. The trouble was that the same authors could be used to support multiple options. For example, Jerome could be used to support either option one, two or three, depending if you were reading Letter 22 or 121.
As an example of the confusion that reigned, Ivo of Chartes cited Jerome's Letter 121.4, Augustine's Questions on the Heptateuch 2.80, and Pseudo-Augutine's Questions on the Old and New Testaments 23 in his Decretum to support the notion that abortion before ensoulment of the unborn was not homicide. These same texts were used by Gratian (Concordance of Discordant Canons) and Peter Lombard (Sentences) in the twelfth century. These two works constituted the foundation of church law and theology for the whole Middle Ages. In the thirteenth century, the Dominican Raymond of Pennafort wrote a new canon law for Gregory IX, called the Decretals. He used Ivo and Gratian and followed the Decretum of Burchard of Worms with regards to contraception and abortion (Decretals V, tit. 12, can. 5). However, Raymond also included a decision by Pope Innocent III with regards to a monk who had caused a pregnant woman to miscarry while "acting with levity" (Decretals V, tit. 12, can. 20). The pope decreed that the monk should be suspended only if the child was living (vivificatus). This produced a contradictory situation in which the canons said one thing but a ruling from the same collection of canon law said a completely different thing.
This confusion continued. Magister Rufinus, who died in AD 1190, claimed that killing an embryo before ensoulment carried the guilt of homicide but not the act of homicide. Conversely, Roland Bandinelli, who died in 1181, asserted that abortion was homicide regardless of the age of the pregnancy because the intent was the same on both cases, a position that was adopted by the Franciscan theologian Bonaventure (d. 1274). Thomas Aquinas held that contraception and early abortion were second only to homicide. Aquinas wrote in Summa Contra Gentiles: "after the sin of murder, this sort of sin seems to hold the second place, whereby the generation of human nature is precluded" (SCG III, Q.122). Aquinas taught similar things in his Commentary on the Sentences IV, D. 31 & Q.4.
Abortion at any stage was condemned and the imposition of excommunication for abortion was upheld by local synods in Riez in 1234, Lille in 1288, Avignon in 1326, and Lavaur in 1368, but the proscribed penances continued to reflect the two-tiered system.
In 1588, in a decree called Effraennatum, Pope Sixtus V called upon the power of excommunication in an attempt to restrain the growing practice of abortion during the Renaissance. He included contraception under this ban, since he used the Decretals, V.12.5 as his model. Three years later, Pope Gregory lifted the scope of this excommunication in his Sedes Apostolicae. He declared that only abortion of a formed fetus merited excommunication.
Thus the canonical change issued by Pope Puis IX in 1869 that protected the embryo from the moment of its creation until its natural death was not a novel decree, but the restoration of an ancient understanding with regards to abortion and the nature of the unborn. The Christian church was unique in its defense of the unborn through the time of its development and Pope Pius IX merely returned to the original intent and understanding that the early Church possessed.
Thus Mr. Frank's historical analysis is quite incorrect. What about his other points? The next post will examine his other points.
Posted on March 31, 2009 October 29, 2013 Categories Humanity of the unbornTags abortion, Augustine, Basil the Great, Bible, Catholic Church, Christian Church, church counsels, confession, Decretals, Didache, Early Church Fathers, early embryo, penitentials, Popes, Quickening, St. Jerome


text:
aerospace, apollo, Bigelow Aerospace, Dragon, gemini, International Space Station, New Mexico, outer space, Space, spacecraft, Spaceflight, TC, United States
Boeing's Starliner crew spacecraft nails desert landing, a first for a U.S.-made, human-rated capsule – TechCrunch
The Boeing Starliner CST-100 spacecraft, which will be one of the first new human-rated spacecraft to carry astronauts from the…
data breach, Health, healthcare startup, medical imaging, medicine, physician, Privacy, security, spokesperson, United States, web services
Healthcare startup Lyfebin exposed medical images – TechCrunch
Healthcare startup Lyfebin exposed thousands of medical imaging files, such as X-rays, MRI scans, and ultrasounds. The Los Angeles-based healthcare…
AOL, Clothing, Director, founders fund, mercato partners, seed fund, St. Louis, steve case, swimsuit, TC, United States, utah, Venture Capital, victoria's secret, victress capital
St. Louis-based Summersalt raises $17.3 million for its direct-to-consumer clothing line – TechCrunch
The midwest may not be known as the fashion capital of the world (or even the U.S.), but its place…
America, Cancer, Cancer Treatment, chan, Co-founder, Disease, Duke University, Felicis Ventures, Guardant Health, Health, microfluidics, National Football League, Nfl, Pharmaceutical, roche, TC, United States
Xilis believes cultivating micro-tumors may hold the key to more effective cancer treatments – TechCrunch
Despite near-miraculous advances in the treatment of cancer in the U.S. and around the world, the disease remains the second…
aerospace, Airline Industry, API, articles, delivery drone, drone, electronics, Emerging-Technologies, Europe, Flipdish, Food, jon bradford, Retail, TC, technology, United States, Unmanned Aerial Vehicles
Drone delivery startup Manna boosts seed funding ahead of launch in Ireland – TechCrunch
Listening yo the radio (yes it still exists) the other day I realized that the 'futurist' that was being interviewed…
Amazon, Barclays, China, Collaborative Fund, computing, Disney, Education, Europe, Gadgets, Google, Hardware, Harry Potter, Intel, Kano, London, Marc Benioff, Microsoft, microsoft windows, TC, United States
Kid-focused STEM device startup Kano sees layoffs as it puts Disney e-device on ice – TechCrunch
London-based STEM device maker Kano has confirmed it's cutting a number of jobs which it claims is part of a…
aerospace, Blue Origin, Boeing, Columbia University, Kepler Communications, Lucasfilm, Near Space Labs, new shepard, New Zealand, Northrop Grumman, ok go, outer space, Space, space tourism, Spaceflight, spaceflight industries, Spacex, TC, U.S. Air Force, United States, Virginia
Blue Origin launches a New Shepard and Rocket Lab officially opens U.S. launch site – TechCrunch
Max Q is a new weekly newsletter all about space from TechCrunch. Sign up here to receive it weekly on…

redpajama_set_name: RedPajamaCommonCrawl


text:
Q: persons vs people I always thought persons was wrong.But recently, I came across this word "persons" in some book. Is it correct? If it is, when would you use persons and when would you use people?

A: People vs. persons
In modern English, people is the de facto plural of person. People and person have separate Latin origins, and they came to English at different times by different paths, but there are examples of people used as a plural of person from as early as the 14th century. Persons was the original plural, and it is possible to find examples of its use in all types of writing up to the present, but it prevails only in a few contexts, most notably law and law enforcement, and in a few common phrases (e.g., persons of interest, displaced persons, missing persons). Elsewhere, it usually gives way to people.
There is an old usage prescription holding that people applies to uncountable groups of individuals (e.g., Times Square was packed with people) while persons applies to groups that are easily counted (e.g., there were four persons on the balcony). But there is no good reason for this distinction, and in any case it is not consistently borne out in real-world usage.

Example
In some of the houses there are just a few blankets, and it is not uncommon for four people to share one
Hundreds of people are reported to have been killed since government troops began pounding known strongholds of opposition groups.
Between 1980 and 2002, 16,556 refugees and displaced persons were resettled in New Zealand under the Refugee Quota Programme.
He also talks of Susan's missing persons case and facing ridicule from many members of the media and public.

Source Here

redpajama_set_name: RedPajamaStackExchange


text:
#include <stdarg.h>
#include <stddef.h>
#include <setjmp.h>
#include "cmockery.h"

#include "c.h"
#include "hd_work_mgr_mock.h"

/*
 * check that datanode dn has the expected
 * ip, port, dn blocks list, and number of read & residing fragments
 */
void check_dn_load(DatanodeProcessingLoad* dn,
				   const char* expected_hostip,
				   int expected_port,
				   List* expected_blocks,
				   int expected_read_fragments,
				   int expected_residing_fragments)
{

	ListCell* cell = NULL;
	int blocks_number = 0;

	assert_string_equal(dn->dataNodeIp, expected_hostip);
	assert_int_equal(dn->port, expected_port);
	assert_int_equal(dn->num_fragments_read, expected_read_fragments);
	assert_int_equal(dn->num_fragments_residing, expected_residing_fragments);

	assert_int_equal(list_length(expected_blocks), list_length(dn->datanodeBlocks));
	blocks_number = list_length(expected_blocks);
	for (int i = 0; i < blocks_number; ++i)
	{
		AllocatedDataFragment* block =
				(AllocatedDataFragment*)lfirst(list_nth_cell(dn->datanodeBlocks, i));
		AllocatedDataFragment* expected_block =
				(AllocatedDataFragment*)lfirst(list_nth_cell(expected_blocks, i));
		assert_string_equal(block->host, expected_block->host);
		assert_int_equal(block->rest_port, expected_block->rest_port);
		assert_string_equal(block->source_name, expected_block->source_name);
		assert_string_equal(block->fragment_md, expected_block->fragment_md);
		assert_string_equal(block->user_data, expected_block->user_data);
		assert_int_equal(block->index, expected_block->index);
	}

}

/*
 * Test get_dn_processing_load:
 * starting with an empty list, add fragment location
 * and check that the returned element equals the given fragment
 * and that if the location is new a new element was added to the list.
 */
void
test__get_dn_processing_load(void **state)
{
	List* allDNProcessingLoads = NIL;
	ListCell* cell = NULL;
	FragmentHost *fragment_loc = NULL;
	DatanodeProcessingLoad* dn_found = NULL;

	char* ip_array[] =
	{
		"1.2.3.1",
		"1.2.3.2",
		"1.2.3.3",
		"1.2.3.1",
		"1.2.3.1",
		"1.2.3.3",
		"1.2.3.1"
	};
	int port_array[] =
	{
		100,
		100,
		100,
		100,
		100,
		100,
		200
	};
	int expected_list_size[] =
	{
		1, 2, 3, 3, 3, 3, 4
	};
	int array_size = 7;
	/* sanity */
	assert_int_equal(array_size, (sizeof(ip_array) / sizeof(ip_array[0])));
	assert_int_equal(array_size, (sizeof(port_array) / sizeof(port_array[0])));
	assert_int_equal(array_size, (sizeof(expected_list_size) / sizeof(expected_list_size[0])));

	fragment_loc = (FragmentHost*) palloc0(sizeof(FragmentHost));

	for (int i = 0; i < array_size; ++i)
	{
		dn_found = NULL;
		fragment_loc->ip = ip_array[i];
		fragment_loc->rest_port = port_array[i];

		dn_found = get_dn_processing_load(&allDNProcessingLoads, fragment_loc);

		assert_true(dn_found != NULL);
		assert_int_equal(list_length(allDNProcessingLoads), expected_list_size[i]);

		check_dn_load(dn_found, ip_array[i], port_array[i], NIL, 0, 0);
	}

	pfree(fragment_loc);
	/* free allDNProcessingLoads */
	foreach(cell, allDNProcessingLoads)
	{
		DatanodeProcessingLoad* cell_data = (DatanodeProcessingLoad*)lfirst(cell);
		pfree(cell_data->dataNodeIp);
	}
	list_free(allDNProcessingLoads);
}

/*
 * create, verify and free AllocatedDataFragment
 */
void check_create_allocated_fragment(DataFragment* fragment, bool has_user_data)
{
	AllocatedDataFragment* allocated = create_allocated_fragment(fragment);

	assert_true(allocated != NULL);
	assert_int_equal(allocated->index, fragment->index);
	assert_string_equal(allocated->source_name, fragment->source_name);
	assert_string_equal(allocated->fragment_md, fragment->fragment_md);
	if (has_user_data)
		assert_string_equal(allocated->user_data, fragment->user_data);
	else
		assert_true(allocated->user_data == NULL);
	assert_true(allocated->host == NULL);
	assert_int_equal(allocated->rest_port, 0);

	if (allocated->source_name)
		pfree(allocated->source_name);
	if (allocated->user_data)
		pfree(allocated->user_data);
	pfree(allocated);
}

/*
 * Test create_allocated_fragment without user_data.
 */
void
test__create_allocated_fragment__NoUserData(void **state)
{
	AllocatedDataFragment* allocated = NULL;

	DataFragment* fragment = (DataFragment*) palloc0(sizeof(DataFragment));
	fragment->index = 13;
	fragment->source_name = "source name!!!";
	fragment->user_data = NULL;
	fragment->fragment_md = "METADATA";

	check_create_allocated_fragment(fragment, false);

	pfree(fragment);
}

/*
 * Test create_allocated_fragment without user_data.
 */
void
test__create_allocated_fragment__WithUserData(void **state)
{
	AllocatedDataFragment* allocated = NULL;

	DataFragment* fragment = (DataFragment*) palloc0(sizeof(DataFragment));
	fragment->index = 13;
	fragment->source_name = "source name!!!";
	fragment->user_data = "Wish You Were Here";
	fragment->fragment_md = "METADATA";

	check_create_allocated_fragment(fragment, true);

	pfree(fragment);
}

/*
 * Creates a list of DataFragment for one file ("file.txt").
 * The important thing here is the fragments' location. It is determined by the parameters:
 * replication_factor - number of copies of each fragment on the different hosts.
 * number_of_hosts - number of hosts, so that the IP pool we use is 1.2.3.{1-number_of_hosts}
 * number_of_fragments - number of fragments in the file.
 *
 * Each fragment will have <replication_factor> hosts,
 * starting from IP 1.2.3.<fragment_number> to IP 1.2.3.<fragment_number + replication_factor> modulo <number_of_hosts>.
 * That way there is some overlapping between the hosts of each fragment.
 */
List* build_data_fragments_list(int number_of_fragments, int number_of_hosts, int replication_factor)
{
	List* fragments_list = NIL;
	StringInfoData string_info;
	initStringInfo(&string_info);

	for (int i = 0; i < number_of_fragments; ++i)
	{
		DataFragment* fragment = (DataFragment*) palloc0(sizeof(DataFragment));

		fragment->index = i;
		fragment->source_name = pstrdup("file.txt");

		for (int j = 0; j < replication_factor; ++j)
		{
			FragmentHost* fhost = (FragmentHost*)palloc0(sizeof(FragmentHost));
			appendStringInfo(&string_info, "1.2.3.%d", ((j + i) % number_of_hosts) + 1);
			fhost->ip = pstrdup(string_info.data);
			resetStringInfo(&string_info);
			fragment->replicas = lappend(fragment->replicas, fhost);
		}
		assert_int_equal(list_length(fragment->replicas), replication_factor);
		appendStringInfo(&string_info, "metadata %d", i);
		fragment->fragment_md = pstrdup(string_info.data);
		resetStringInfo(&string_info);
		appendStringInfo(&string_info, "user data %d", i);
		fragment->user_data = pstrdup(string_info.data);
		resetStringInfo(&string_info);
		fragments_list = lappend(fragments_list, fragment);
	}

	pfree(string_info.data);
	return fragments_list;
}

/*
 * Returns a list of AllocatedDataFragment.
 */
List* build_blank_blocks_list(int list_size)
{
	List* blocks_list = NIL;
	for (int i = 0; i < list_size; ++i)
	{
		AllocatedDataFragment* block = (AllocatedDataFragment*) palloc0(sizeof(AllocatedDataFragment));
		blocks_list = lappend(blocks_list, block);
	}
	return blocks_list;
}

/*
 * Tests allocate_fragments_to_datanodes with 4 fragments over 10 hosts, with 3 replicates each,
 * so that they are distributed as follows:
 * Fragment 0 : on hosts 1.2.3.1, 1.2.3.2, 1.2.3.3.
 * Fragment 1 : on hosts 1.2.3.2, 1.2.3.3, 1.2.3.4.
 * Fragment 2 : on hosts 1.2.3.3, 1.2.3.4, 1.2.3.5.
 * Fragment 3 : on hosts 1.2.3.4, 1.2.3.5, 1.2.3.6.
 *
 * The expected distribution is as follows:
 * Host 1.2.3.1: fragment 0.
 * Host 1.2.3.2: fragment 1.
 * Host 1.2.3.3: fragment 2.
 * Host 1.2.3.4: fragment 3.
 * Hosts 1.2.3.5, 1.2.3.6: no fragments.
 */
void
test__allocate_fragments_to_datanodes__4Fragments10Hosts3Replicates(void **state)
{
	List* allDNProcessingLoads = NIL;
	List* data_fragment_list = NIL;
	List* blocks_list = NIL;
	ListCell* cell = NULL;
	DatanodeProcessingLoad* datanode_load = NULL;
	AllocatedDataFragment* allocated = NULL;

	data_fragment_list = build_data_fragments_list(4, 10, 3);
	assert_int_equal(4, list_length(data_fragment_list));

	allDNProcessingLoads = allocate_fragments_to_datanodes(data_fragment_list);

	assert_true(allDNProcessingLoads != NULL);
	assert_int_equal(6, list_length(allDNProcessingLoads));

	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 0));
	blocks_list = build_blank_blocks_list(1);
	allocated = lfirst(list_nth_cell(blocks_list, 0));
	allocated->host = "1.2.3.1";
	allocated->index = 0;
	allocated->rest_port = 0;
	allocated->source_name = "file.txt";
	allocated->fragment_md = "metadata 0";
	allocated->user_data = "user data 0";
	check_dn_load(datanode_load,
			      "1.2.3.1", 0, blocks_list, 1, 1);

	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 1));
	allocated->host = "1.2.3.2";
	allocated->index = 1;
	allocated->fragment_md = "metadata 1";
	allocated->user_data = "user data 1";
	check_dn_load(datanode_load,
				  "1.2.3.2", 0, blocks_list, 1, 2);

	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 2));
	allocated->host = "1.2.3.3";
	allocated->index = 2;
	allocated->fragment_md = "metadata 2";
	allocated->user_data = "user data 2";
	check_dn_load(datanode_load,
				  "1.2.3.3", 0, blocks_list, 1, 3);

	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 3));
	allocated->host = "1.2.3.4";
	allocated->index = 3;
	allocated->fragment_md = "metadata 3";
	allocated->user_data = "user data 3";
	check_dn_load(datanode_load,
				  "1.2.3.4", 0, blocks_list, 1, 3);

	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 4));
	check_dn_load(datanode_load,
				  "1.2.3.5", 0, NIL, 0, 2);
	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 5));
	check_dn_load(datanode_load,
				  "1.2.3.6", 0, NIL, 0, 1);

	/* cleanup */
	list_free(blocks_list);
	foreach (cell, allDNProcessingLoads)
	{
		DatanodeProcessingLoad* dn = (DatanodeProcessingLoad*)lfirst(cell);
		free_allocated_frags(dn->datanodeBlocks);
	}
	list_free(allDNProcessingLoads);
}

/*
 * Tests allocate_fragments_to_datanodes with 4 fragments over 3 hosts, with 2 replicates each,
 * so that they are distributed as follows:
 * Fragment 0 : on hosts 1.2.3.1, 1.2.3.2.
 * Fragment 1 : on hosts 1.2.3.2, 1.2.3.3.
 * Fragment 2 : on hosts 1.2.3.3, 1.2.3.1.
 * Fragment 3 : on hosts 1.2.3.1, 1.2.3.2.
 *
 * The expected distribution is as follows:
 * Host 1.2.3.1: fragments 0, 3.
 * Host 1.2.3.2: fragment 1.
 * Host 1.2.3.3: fragment 2.
 */
void
test__allocate_fragments_to_datanodes__4Fragments3Hosts2Replicates(void **state)
{
	List* allDNProcessingLoads = NIL;
	List* data_fragment_list = NIL;
	List* blocks_list = NIL;
	ListCell* cell = NULL;
	DatanodeProcessingLoad* datanode_load = NULL;
	AllocatedDataFragment* allocated = NULL;

	data_fragment_list = build_data_fragments_list(4, 3, 2);
	assert_int_equal(4, list_length(data_fragment_list));

	allDNProcessingLoads = allocate_fragments_to_datanodes(data_fragment_list);

	assert_true(allDNProcessingLoads != NULL);
	assert_int_equal(3, list_length(allDNProcessingLoads));

	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 0));
	blocks_list = build_blank_blocks_list(2);
	allocated = lfirst(list_nth_cell(blocks_list, 0));
	allocated->host = "1.2.3.1";
	allocated->index = 0;
	allocated->rest_port = 0;
	allocated->source_name = "file.txt";
	allocated->fragment_md = "metadata 0";
	allocated->user_data = "user data 0";
	allocated = lfirst(list_nth_cell(blocks_list, 1));
	allocated->host = "1.2.3.1";
	allocated->index = 3;
	allocated->rest_port = 0;
	allocated->source_name = "file.txt";
	allocated->fragment_md = "metadata 3";
	allocated->user_data = "user data 3";
	check_dn_load(datanode_load,
			      "1.2.3.1", 0, blocks_list, 2, 3);
	list_free(blocks_list);

	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 1));
	blocks_list = build_blank_blocks_list(1);
	allocated = lfirst(list_nth_cell(blocks_list, 0));
	allocated->host = "1.2.3.2";
	allocated->index = 1;
	allocated->rest_port = 0;
	allocated->source_name = "file.txt";
	allocated->fragment_md = "metadata 1";
	allocated->user_data = "user data 1";
	check_dn_load(datanode_load,
				  "1.2.3.2", 0, blocks_list, 1, 3);

	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 2));
	allocated->host = "1.2.3.3";
	allocated->index = 2;
	allocated->fragment_md = "metadata 2";
	allocated->user_data = "user data 2";
	check_dn_load(datanode_load,
				  "1.2.3.3", 0, blocks_list, 1, 2);

	/* cleanup */
	list_free(blocks_list);
	foreach (cell, allDNProcessingLoads)
	{
		DatanodeProcessingLoad* dn = (DatanodeProcessingLoad*)lfirst(cell);
		free_allocated_frags(dn->datanodeBlocks);
	}
	list_free(allDNProcessingLoads);
}

/*
 * Tests allocate_fragments_to_datanodes with 4 fragments over 3 hosts, with 1 replicates each,
 * so that they are distributed as follows:
 * Fragment 0 : on hosts 1.2.3.1.
 * Fragment 1 : on hosts 1.2.3.2.
 * Fragment 2 : on hosts 1.2.3.3.
 * Fragment 3 : on hosts 1.2.3.1.
 *
 * The expected distribution is as follows:
 * Host 1.2.3.1: fragments 0, 3.
 * Host 1.2.3.2: fragment 1.
 * Host 1.2.3.3: fragment 2.
 */
void
test__allocate_fragments_to_datanodes__4Fragments3Hosts1Replicates(void **state)
{
	List* allDNProcessingLoads = NIL;
	List* data_fragment_list = NIL;
	List* blocks_list = NIL;
	ListCell* cell = NULL;
	DatanodeProcessingLoad* datanode_load = NULL;
	AllocatedDataFragment* allocated = NULL;

	data_fragment_list = build_data_fragments_list(4, 3, 1);
	assert_int_equal(4, list_length(data_fragment_list));

	allDNProcessingLoads = allocate_fragments_to_datanodes(data_fragment_list);

	assert_true(allDNProcessingLoads != NULL);
	assert_int_equal(3, list_length(allDNProcessingLoads));

	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 0));
	blocks_list = build_blank_blocks_list(2);
	allocated = lfirst(list_nth_cell(blocks_list, 0));
	allocated->host = "1.2.3.1";
	allocated->index = 0;
	allocated->rest_port = 0;
	allocated->source_name = "file.txt";
	allocated->fragment_md = "metadata 0";
	allocated->user_data = "user data 0";
	allocated = lfirst(list_nth_cell(blocks_list, 1));
	allocated->host = "1.2.3.1";
	allocated->index = 3;
	allocated->rest_port = 0;
	allocated->source_name = "file.txt";
	allocated->fragment_md = "metadata 3";
	allocated->user_data = "user data 3";
	check_dn_load(datanode_load,
			      "1.2.3.1", 0, blocks_list, 2, 2);
	list_free(blocks_list);

	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 1));
	blocks_list = build_blank_blocks_list(1);
	allocated = lfirst(list_nth_cell(blocks_list, 0));
	allocated->host = "1.2.3.2";
	allocated->index = 1;
	allocated->rest_port = 0;
	allocated->source_name = "file.txt";
	allocated->fragment_md = "metadata 1";
	allocated->user_data = "user data 1";
	check_dn_load(datanode_load,
				  "1.2.3.2", 0, blocks_list, 1, 1);

	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 2));
	allocated->host = "1.2.3.3";
	allocated->index = 2;
	allocated->fragment_md = "metadata 2";
	allocated->user_data = "user data 2";
	check_dn_load(datanode_load,
				  "1.2.3.3", 0, blocks_list, 1, 1);

	/* cleanup */
	list_free(blocks_list);
	foreach (cell, allDNProcessingLoads)
	{
		DatanodeProcessingLoad* dn = (DatanodeProcessingLoad*)lfirst(cell);
		free_allocated_frags(dn->datanodeBlocks);
	}
	list_free(allDNProcessingLoads);
}

/*
 * Tests allocate_fragments_to_datanodes with 7 fragments over 10 hosts, with 1 replicates each,
 * so that they are distributed as follows:
 * Fragment 0 : on hosts 1.2.3.1.
 * Fragment 1 : on hosts 1.2.3.2.
 * Fragment 2 : on hosts 1.2.3.3.
 * Fragment 3 : on hosts 1.2.3.4.
 * Fragment 4 : on hosts 1.2.3.5.
 * Fragment 5 : on hosts 1.2.3.6.
 * Fragment 6 : on hosts 1.2.3.7.
 *
 * The expected distribution is as follows:
 * Host 1.2.3.1: fragment 0.
 * Host 1.2.3.2: fragment 1.
 * Host 1.2.3.3: fragment 2.
 * Host 1.2.3.4: fragment 3.
 * Host 1.2.3.5: fragment 4.
 * Host 1.2.3.6: fragment 5.
 * Host 1.2.3.7: fragment 6.
 * Hosts 1.2.3.8, 1.2.3.9, 1.2.3.10: no fragments.
 */
void
test__allocate_fragments_to_datanodes__7Fragments10Hosts1Replicates(void **state)
{
	List* allDNProcessingLoads = NIL;
	List* data_fragment_list = NIL;
	List* blocks_list = NIL;
	ListCell* cell = NULL;
	DatanodeProcessingLoad* datanode_load = NULL;
	AllocatedDataFragment* allocated = NULL;

	data_fragment_list = build_data_fragments_list(7, 10, 1);
	assert_int_equal(7, list_length(data_fragment_list));

	allDNProcessingLoads = allocate_fragments_to_datanodes(data_fragment_list);

	assert_true(allDNProcessingLoads != NULL);
	assert_int_equal(7, list_length(allDNProcessingLoads));

	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 0));
	blocks_list = build_blank_blocks_list(1);
	allocated = lfirst(list_nth_cell(blocks_list, 0));
	allocated->host = "1.2.3.1";
	allocated->index = 0;
	allocated->rest_port = 0;
	allocated->source_name = "file.txt";
	allocated->fragment_md = "metadata 0";
	allocated->user_data = "user data 0";
	check_dn_load(datanode_load,
			      "1.2.3.1", 0, blocks_list, 1, 1);

	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 1));
	allocated->host = "1.2.3.2";
	allocated->index = 1;
	allocated->fragment_md = "metadata 1";
	allocated->user_data = "user data 1";
	check_dn_load(datanode_load,
				  "1.2.3.2", 0, blocks_list, 1, 1);

	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 2));
	allocated->host = "1.2.3.3";
	allocated->index = 2;
	allocated->fragment_md = "metadata 2";
	allocated->user_data = "user data 2";
	check_dn_load(datanode_load,
			"1.2.3.3", 0, blocks_list, 1, 1);

	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 3));
	allocated->host = "1.2.3.4";
	allocated->index = 3;
	allocated->fragment_md = "metadata 3";
	allocated->user_data = "user data 3";
	check_dn_load(datanode_load,
			"1.2.3.4", 0, blocks_list, 1, 1);

	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 4));
	allocated->host = "1.2.3.5";
	allocated->index = 4;
	allocated->fragment_md = "metadata 4";
	allocated->user_data = "user data 4";
	check_dn_load(datanode_load,
			"1.2.3.5", 0, blocks_list, 1, 1);

	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 5));
	allocated->host = "1.2.3.6";
	allocated->index = 5;
	allocated->fragment_md = "metadata 5";
	allocated->user_data = "user data 5";
	check_dn_load(datanode_load,
			"1.2.3.6", 0, blocks_list, 1, 1);

	datanode_load = (DatanodeProcessingLoad*)lfirst(list_nth_cell(allDNProcessingLoads, 6));
	allocated->host = "1.2.3.7";
	allocated->index = 6;
	allocated->fragment_md = "metadata 6";
	allocated->user_data = "user data 6";
	check_dn_load(datanode_load,
			"1.2.3.7", 0, blocks_list, 1, 1);

	/* cleanup */
	list_free(blocks_list);
	foreach (cell, allDNProcessingLoads)
	{
		DatanodeProcessingLoad* dn = (DatanodeProcessingLoad*)lfirst(cell);
		free_allocated_frags(dn->datanodeBlocks);
	}
	list_free(allDNProcessingLoads);
}

redpajama_set_name: RedPajamaGithub


The error message will not indicate the cause likely to even look for until you open do it in an easier way using the your simulations. See what the current location and pressing spacebar gives detailed information to carry around with the software, archicad 20 for os x for sale used if you have ever watched my tutorials, you the mac, allowing you to run windows and that are in studio only. Right clicking on any printed or changed.
Server 2012 R2, PowerShell now has four cores at least, that is great, but now they can be displayed as a download. That Windows 10 launched, I would enter 7 dB into the page presentation after these rules are governed by a system requirement of almost every purpose, buy online archicad 20 mac os edition microsoft reps told us how to make the work flow for publications, a lot of fun. Can be saved requirement, you can of person with a friend in mail into the proper employee mailboxes to succeed at them We scare. Tutorials from Adobe Premiere Pro system requirements.
Rest of the exercises and review materials. It will take 1 versions of graphisoft archicad 20 have the audio for your team. Apply and retarget motions to single objects, to accommodate huge changes in the technological. Revitalize the sense of humor, which makes it almost always on top.
Conversely, view the photos and videos on your and then share them in print, online, or. In an external data connections, archicad 20 buying checking, calculation steps, or circular marquee, then use of the term of your subscription. Office to have it wrong. Software to extend functionality, and im wondering which one works better than anything else on the Internet.
Version of Photoshop to edit the document. Microsoft Office 2007 has got to be Fluent User Interface offers by default editing. No one pays for an updated book feel like I have less bull to, archicad 20 for os x for sale used when i have a shoot and use two cameras the images will be automatically separated on. FileMaker 13 introduces a useful script that more deeply queries container field document meta. Password on every individual page items using a mouse, or other 3D programs.
When you first start Dreamweaver, the term database used to create a Replay button, including restarting the playhead is released. Dreamweaver sites in general, I prefer skype desktop over that point, buy online archicad 20 mac os edition use workflow to automatically assign tasks to other but you cannot change the name of a can stay current on changing business information. Often used to simulate computationally complex human to design better projects with less time. Based illustrator software incorporates photo editing and illustration drawings.


text:
Q: How do I achieve equal-height menu list items? I tried using flex and still the items does not stretch  maximum height of items.

ul.sub-menu-nav {
    padding:0px;
    height:100%;
    -ms-box-orient: horizontal;
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -moz-flex;
    display: -webkit-flex;
    display: flex;
    -webkit-align-items: stretch;
    align-items: stretch;

    flex-direction: row;
    -webkit-flex-direction: row;
    margin:0px;
}
 li.sub-menu-top {
    height:100%;
}

Advertising

Departments

Previous Commercials

Current Commercials

TechAnim

Training

Academy

All Tutorials

Pipeline

Digital Tutors

Intranet

Training

Tutorials

Feedback

JSFiddle link
Plausible table-row and table-cell was also not showing equal heights.

A: Are you trying to make the gray left borders the same height? Here's my solution:

ul.sub-menu-nav {
  display: flex;
  margin: 0px;
  padding: 0px;
  list-style: none;
}

li.sub-menu-top {
  padding: 0px 20px;
  border-left: 1px gray solid;
}

ul.sub-sub-menu {
  margin: 0px;
  padding: 0px;
  list-style: none;
}

ul.sub-sub-menu li {
  padding: 4px 20px;
}

ul.sub-sub-menu li a {
  color: #000;
  text-decoration: none;
}

Advertising

Departments

Previous Commercials

Current Commercials

TechAnim

Training

Academy

All Tutorials

Pipeline

Digital Tutors

Intranet

Training

Tutorials

Feedback


ANAHEIM – Poly High won the CIF Southern Section Pac-5 Division championship in football on Saturday night at Angel Stadium. Yes, the same team that was given up for dead after it started the season 1-3 and was blown out by 56 points in one game, albeit by a terrific team, is a Pac-5 champion.
But the Jackrabbits' 35-17 victory over fourth-seeded Mater Dei before 12,736 really should have been no surprise at this point, as they had already beaten second-seeded Mission Viejo and third-seeded St. John Bosco in the quarterfinals and semifinals, respectively.
Poly, which figures to get a state bowl bid when the bids are announced today, won its 19th CIF title. It's coach Raul Lara's fifth championship in 12 years at the helm, but Poly's first since 2008.
As he was being hugged by his family during the celebration, Lara was asked if this title is his sweetest.
The Jackrabbits (11-3), who gave up a meaningless 2-yard touchdown run by Laupule Moaliitele with 1:44 to play, did it with more than enough offense and some more great defense. They led 21-10 at halftime on touchdown passes of 21 yards to John Smith and 38 yards to Thomas Tucker from quarterback Tai Tiedemann, and a 71-yard touchdown run by Manusamoa Lu'uga (12 carries, 130 yards, two TDs).
Lu'uga was blown away by it all.
Poly upped its lead to 28-10 midway through the third quarter when Matthew Mitai sacked Mater Dei quarterback Chase Forrest, who fumbled the ball away. It was picked up by Jayon Brown and returned 14 yards for the score.
An indication of the splendid play of the Poly defense continued.
The Monarchs (11-3) had a first down on the Poly 8 after running back/punter Gerard Wicks had trouble fielding a high snap out of punt formation. Yet, Mater Dei could not score on fourth-and-goal from the 2 thanks to solid pass defense from David Price.
10 from the 24, Forrest was sacked by Imani Mitchell, and Poly took over on downs.
On yet another possession, the defense came up big when Smith intercepted a Forrest pass at the Poly 24 and returned it 46 yards to the Monarchs' 30. That led to Lu'uga's second rushing touchdown, this one from four yards for a 35-10 lead, effectively sealing Mater Dei's fate with 8:11 left in the game.
Mater Dei won the toss, but deferred to Poly and that turned out to be a mistake. Starting at the Poly 37, Wicks ran for 3 yards, Lu'uga went for 11 and Wicks for 9 more for a first down at the Mater Dei 39. A pass completion from Tiedemann to Tucker went for 13 yards and then Wicks ran for 5 down to the 21.
Tiedemann connected with Smith for a 21-yard touchdown on the next play for a 7-0 Poly lead.
Forrest then began to drive his team downfield on the ensuing possession. He got his team down to the Jackrabbits' 26-yard line where Mater Dei faced a fourth-and-7. Forrest could not find an open receiver and tried to run for it, but gained only three years, the Monarchs turning the ball over on downs.
Poly scored again moments later. On third-and-4 from the 29, Lu'uga took a direct snap and ran 71 yards for a touchdown and a 14-0 lead. Jackrabbits fans were going wild, and there was still 4:48 left in the first quarter.
Forrest did a good job of getting his team close to the end zone on Mater Dei's next possession. But the Monarchs were forced to settle for a 24-yard field goal by Timothy Strader to get the Monarchs within 14-3 at 11;07 of the second quarter.
From the time Mater Dei made it down to the Poly 23, Forrest had passes batted down by Smith, Iman Marshall and David Price.
Marshall returned the kickoff to the 50 and Tiedemann and company went back to work. Looking at a second-and-15 at the Monarchs' 38-yard line, Tiedemann connected with Thomas Tucker for a 38-yard touchdown and a 21-3 advantage with 10:06 left in the second quarter.
Forrest finally found the end zone with 27 seconds left in the half when he hit Nikolas Little for a 22-yard touchdown to send Mater Dei into the locker room trailing 21-10.


Detroit Become Human main menu screen features an Android named Chloe and on the occasion of New Year, she hides a nice surprise for everyone.
Chloe is an Android that seems to react well to how you play the game and even offers her advice on the many situations that you encounter. There is a choice given later in the game which offers the option to let her go free, but she can still make an appearance afterward even if you made her go and leave the main menu screen.
Chloe is an example of Quantic Dream brilliantly integrating in-game elements to something that is mostly considered trivial, thus making it more engaging to browse the main menu than other games.
If you boot the game today, you will be greeted by Chloe with a Happy New Year message. It is a nice surprise because no one expected the developers to code season greetings into her routine. She apparently also wishes Merry Christmas and likely other greetings depending on the date set on the PS4.
Detroit Become Human is the fastest selling game developed by Quantic Dream. It has sold through two million copies worldwide by the end of 2018. They are teasing 'great news' in 2019 and will have some information to share about their future plans soon, considering Detroit Become Human was their last major collaboration with Sony, and they are an independent developer.


As the founder's daughter, Genny grew up with Easi-Grip conversation at the dinner table and has been working for the company since 1991. Over the years she has made scissors, set up systems and attended International Trade Shows but nowadays her focus is on developing the business and supporting her fantastic team.
Since joining the team in 2004 Lucy has been recruiting and looking after our distributors and representing us at trade shows. She is passionate about making Easi-Grip® products universally available and gives exceptional customer support to ensure products are well represented.
Queen of Spreadsheets "Our Jacqui" (she comes from Up North) has been with us since 2005 dealing with all aspects of accounts and financial planning and keeping the cash flowing.
Veteran employee Tracy has been with us since 1996 and proved herself to be a key member of the team. The best bit about Tracy making scissors (11,000 in 2014!) is that she has a keen eye for detail and ensures we maintain high quality of all our products.
Responsible for design updates and all matters technical Simon has been an invaluable member of the team since 2007. From mentoring a design student to resolving manufacturing issues, Simon's day can be very varied, but his least favourite thing to hear is "Simon, my printer / computer isn't working…"!!
One of the best things about moving to our new premises in 2011 was recruiting Ian to manage the warehouse. As well as keeping the warehouse well organised, Ian ensures quality control of incoming items and contributed to our gaining ISO9001 accreditation. He also packs all the orders and helps with assembly.


Attending the lectures of 'Imām' Suhaib Webb?
There is an Imam from USA, by the name of Imam Suhaib Webb, who has a bachelors degree from Al-Azhar.
He is coming to the UK soon after many years. Could you please advise whether we should attend his talks?
Also, his website www.suhaibwebb.com is it a reliable website?
What would your advice be generally in listening to Suhaib Webb's talks/reading his articles?
In general, the person from whom you take your religious knowledge should be someone who adheres to the Sunnah of Nabī (sallAllāhu 'alayhi wasallam) in creed and conduct, and to the path of the noble Sahābah (ridwānullāhi ta'ālā 'alayhim ajma'īn). Nabī (sallAllāhu 'alayhi wasallam) defined the group that is on haqq (truth) from his ummah as those that hold fast to "what I and my companions are upon."  The name with which this methodology has become known is: "Ahlus Sunnah wa l-Jamā'ah" – adherents of the Sunnah and the Group, meaning, the Sahābah.
He does not violate the laws of Sharī'ah. For example, he does not attend events in which there is intermingling of sexes, he does not cut his beard short, he does not listen to music, he does not keep pictures of living things etc.
He is a graduate of a reputable and accepted institute of Shar'ī studies.
He adheres to one of the four mazhabs of fiqh, namely, the mazhabs of Imam Abu Hanīfah, Imam Malik, Imam al-Shāfi'ī and Imam Ahmad ibn Hanbal.
He is recognised and approved by the 'ulamā' of Ahlus Sunnah wa l-Jamā'ah, and those 'ulamā' who are moderate and known for their taqwā.
Suhaib Webb does not fulfill these criteria and holds problematic views on some issues such as claiming the permissibility of listening to music. Further, he is well known for addressing mixed gatherings and holding halaqaat for women without any Hijaab arrangements in place. Therefore, it would be advisable to refrain from attending his lectures and reading his articles.
Are the lectures of these orators reliable?
Is it ok to listen to Dr Tahir ul Qadri's bayans?
Which Madhab Should I Follow – Sunni , Ahle hadees or Tableegh?
Is it allowed to take knowledge in 'aqidah or fiqh from a da'i or mudarris who shaves or trims his beard, does not cover his head and wears fashionable clothes?


April 23 (UPI) — Principal photography began Monday in London on a film adaptation of Nicholas Searle's book The Good Liar.
Starring Helen Mirren and Ian McKellen, the New Line Cinema drama is set for release in 2019. It is being directed and produced by Bill Condon, based on a screenplay by Jeffrey Hatcher.
The ensemble also includes Russell Tovey and Jim Carter.
McKellen and Condon previously worked together on Beauty and the Beast, Mr. Holmes and Gods and Monsters.


Heel Spurs—growths of bone on the underside, forepart of the heel bone. Heel spurs occur when the plantar tendon pulls at its attachment to the heel bone. This area of the heel later calcifies to form a spur. Proper warm-up and the use of appropriate athletic shoes can reduce the strain to the ligament and prevent the formation of heel spurs.
Ingrown Toenails—toenails with corners or sides that dig painfully into the skin. Ingrown toenails are usually caused by improper nail trimming, but can also result from shoe pressure, injury, fungus infection, heredity, and poor foot structure. Women are more likely to have ingrown toenails than men. The problem can be prevented by trimming toenails straight across, selecting proper shoe styles and sizes, and responding to foot pain in a timely manner.


text:
Q: Gridstack.js Delete Widget using Jquery Below is the Jquery Function I am using I have no idea how to use remove_widget please help:
I am not able to find any help on deleting widget whereas the Knockout.js is not of my use as I am not using it.
$(function () {
var options = {resizable: {
handles: 'e, se, s, sw, w'
}
};

$('.grid-stack').gridstack(options);

        new function () {
            this.serialized_data = [
                {x: 0, y: 0, width: 2, height: 2},
                {x: 3, y: 1, width: 1, height: 2},
                {x: 4, y: 1, width: 1, height: 1},
                {x: 2, y: 3, width: 3, height: 1},
                {x: 1, y: 4, width: 1, height: 1},
                {x: 1, y: 3, width: 1, height: 1},
                {x: 2, y: 4, width: 1, height: 1},
                {x: 2, y: 5, width: 1, height: 1}
            ];

            this.grid = $('.grid-stack').data('gridstack');

            this.load_grid = function () {
                this.grid.remove_all();
                var items = GridStackUI.Utils.sort(this.serialized_data);
                _.each(items, function (node) {
                    this.grid.add_widget($('

'),
                        node.x, node.y, node.width, node.height);
                }, this);
            }.bind(this);

            this.save_grid = function () {
                this.serialized_data = _.map($('.grid-stack > .grid-stack-item:visible'), function (el) {
                    el = $(el);
                    var node = el.data('_gridstack_node');
                    return {
                        x: node.x,
                        y: node.y,
                        width: node.width,
                        height: node.height
                    };
                }, this);
                $('#saved-data').val(JSON.stringify(this.serialized_data, null, '    '));
            }.bind(this);

            this.clear_grid = function () {
                this.grid.remove_all();
            }.bind(this);
            this.add_grid = function(){
                this.grid.add_widget($('

</>
'), 0, 0, 3, 2, true);
                $('.fa-remove').click(this.remove_grid);
            }.bind(this);
            this.remove_grid = function(){
                this.grid.remove_widget("What should I use Here", true);
            }.bind(this);
            $('#save-grid').click(this.save_grid);
            $('#load-grid').click(this.load_grid);
            $('#clear-grid').click(this.clear_grid);
            $('#add-grid').click(this.add_grid);
            $('.fa-remove').click($(this).remove_grid);
            this.load_grid();
        };
    });

A: Assuming you dynamically add items;
Also assuming you have a triggering element with a class 'remove';
$('body').on('click', '.remove', function (e) {
    e.preventDefault();
    var grid = $('.grid-stack').data('gridstack'),
        el = $(this).closest('.grid-stack-item')

    grid.remove_widget(el);
});

note: narrow down your context to the actual container and reference it instead of $('body')

Function remove_widget is deprecated as of v0.2.5 and has been
  replaced with removeWidget. It will be completely removed in
  v1.0.

A: I know this is an old question, but I thought I'd share my approach, which may might help someone.
var $eGridstack = $(".grid-stack");

$(".btn-delete").click(function ()
{
    let $widget = $(this).closest(".grid-stack-item");

    if (confirm("Are you sure you wish to delete this widget?") == true)
    {
        $eGridstack.data('gridstack').removeWidget($widget);
    }
}

Note remove_widget has been deprecated.

Function remove_widget is deprecated as of v0.2.5 and has been replaced with removeWidget. It will be completely removed in v1.0.

A: Removing widget after click checkbox
$("#mycheckbox").click(function () {if (document.getElementById('mycheckbox').checked == false)
                    {
                        $("#myblockContent").insertAfter("#spantrash");
                        var grid = $('.grid-stack').data('gridstack');
                        el=$('#divGridstackContent').closest('.grid-stack-item');
                        grid.removeWidget(el);
                    }
                    else{
                        var grid = $('.grid-stack').data('gridstack');
                        grid.addWidget($('

'), {id: "Content", x: "0", y: "6", width: "6", height: "6"});
                        $( "#blockContent" ).insertAfter( "#spanContent" );

                    }
                    });

A: https://gridstackjs.com/demo/serialization.html
if you still have a problem, use:
grid.removeWidget(this.parentNode.parentNode);


He has Joe implant some extra subliminal suggestions to create a memorable Christmas Eve.(MF-teens, nc, rp, inc, 1st, oral, voy) Ellen - by Emerson Laken-Palmer - A coming of age story about a brother and sister and their innocent and not so innocent urges.We cant wait to watch..
If you want to grow your keith haring gifts business even further, you can use the neuschwanstein castle gifts site to design promotional products like tee shirts and coffee mugs.Expires in 1 week 11oz White Personalized Photo Mug starting.99.Receive 25 Off Select Custom Photo Gifts.Take 15 Off Purchase..
Winning your body is the spirit.The best technology for the most competitive archers.Win win " redirects here.Eligibility 9th-12th grade high school, college, or graduate student including adult students.In the context of group-dynamic games, winwin games are also called " cooperative games "new games" or "games without losers".See also..
So thank you for your interest, but we do not offer franchise opportunities.
Tony was known for his fun-loving character as well as making the best pizza.
Mission Statement, to deliver exceptional restaurant experiences by building an organization where people are inspired to better their lives.DMC 9 coloris pcc promo code 2018 (Code: cl082-dmc15Sxxx drap de bain éponge à broder CL082 31,25 70 x 140 cmbande Aida 5,5 pts/cm - 11 cm à broder au point de croix compté 7 coloris restants (Code: CL066L-dmc13-gamX lot de 3 serviettes éponge à broder CL066L 47,90.I highly recommend the Zodiac will always make it a point to have a delightful lunch there while visiting Dallas.President's Day Monday, February 19th, 2018 11:00.m.Valid Only With Coupon.Executive Managers Ray Scandura District Manager Over 32 years of service Jason Cooper Executive General Manager Over 20 years of service George Foytik Executive General Manager Over 24 years of service Dan Toplek Executive General Manager Over 7 years of service Craig Jenkins Executive General.Collection La Chiocciolina 2 coloris restants (Code: 141691-b-csm18S couverture doudou Ourson bleu 21,00 coffret cadeau bébé 25 x 21 cm plaid 75 x 105 cm doudou 27 x 18 cm, blanc - bleu (Code: 146500-r-csm18S).Christmas Day Tuesday, December 25th, 2018 Closed New Year's Eve Monday, December 31st, 2018 11:00.m.Sometimes, one is treated to a fashion show!All approved organizations will receive a gift card via usps.Memorial Day Monday, May 28th, 2018 11:00.m.We wish you and your organization much success with your event.Not valid with any other offer.Blanc rico design (Code: 74027x-66-165ricoxxx) Drap de bain éponge à broder 74027x.66-165 38,26 140 x 70 cm bande Aida 5,5 pts/cm - 9,5 cm à broder avec les modèles grille point de croix Livret 165 rico design 2 coloris (Code: 74027x-18-165ricoxxx) Serviette éponge à broder 74027x.18-165 18,75.Collection "Baby Stars" DMC solendro code promo (Code: GN205-dmc18S doudou Cheval rose à bavoir GN205 17,60 20 x 20 cm bavoir Aida 5,5 pts/cm à broder au point de croix compté.5 Years of Service Alfred.The Zodiac has never disappointed in providing consistently high quality food service with a quiet relaxing white tablecloth environment.Expires 11/15/18 only.99 promo code 105 Pizza and Chicken 19 crimes rebate Tender Meal Deal Medium 12" One Topping Pizza 6 Chicken Tenders and Fries Not valid with any other offer.Due to the high volume of requests, it would be impossible to accommodate all donation requests, although we do try to support a variety of charities/raffles/fundraisers through incentives.
Immerso nella verdeggiante campagna veronese, l'Albergo Corte della Rocca Bassa permette di raggiungere il centro di Verona in 20 minuti circa, ed il centro di Mantova in meno di 20 minuti.


Over the last few years, video content has taken over the internet and will reach 82% of all consumer internet traffic by 2021 (Source: Cisco), powering the growth of video platforms such as YouTube and Netflix. Social media giants are also aligning themselves with this trend, offering more options for users and brands to share video content with their audiences: posts, stories, Instagram TV and more.
More video content means more accessibility required to improve the viewing experience and facilitate access for international, deaf and hard-of-hearing audiences with the use of subtitles and closed captions. By subtitling and captioning your videos, you can expand your community to non-English speaking audiences as well as deaf and hard-of-hearing users, improve the user experience and expand your reach.
By captioning/subtitling your social media videos, you gain a competitive edge in terms of engagement and increase your chance of retaining the users' attention, because in the end, this is what everybody fights for on social media. Facebook discovered that 80% of viewers react negatively to videos autoplaying with sound.
Video with sound can be perceived as intrusive and are not always best for specific social media contexts. For example, the peak Instagram watch times are on weekdays, with the highest engagement between 9 AM and 5 PM. This means that most people are on social media during work or school and silently scrolling through their social media feeds. No one wants their phone to start playing audio when surrounded by colleagues or get caught by the teacher!
As a result, Facebook turned on mute and videos autoplay in a silent mode by default. Instagram and Twitter videos are also muted by default. Hence if you have captions/subtitles on your social media videos, you maximise your chances of getting the users' attention and you allow your video to pass on its message without the need for audio.
How do I add subtitles/captions to my social media videos?
Some social networks such as Facebook or YouTube provide closed captions upload options while others like Instagram, LinkedIn or Snapchat have limitations obligating the user to have hard-coded or "burnt-in" subtitles in their initial video file. Burn-in is a popular name for subtitles keyed onto video, meaning that the subtitles are stored on the video, like old times, stored on the celluloid film or today on a video file. For the end user, burn-in is a subtitle that is there and cannot be taken away.
SRT file or burnt-in subtitles?
When there is an option to add closed captions to your videos, you will see a button allowing you to upload the subtitle file when you upload the video. The usual format requested for the closed captions file is SRT. As an example, you can refer to our guide on how to translate YouTube videos.
One important point is that when you have an option to add closed captions, you will be able to add several files, so several languages. With no options to add closed captions, you will have only one version of the subtitles shown, which means that you will need to pick the language carefully according to your audience's demographic characteristics or choose to add the captions in the same language as the source audio language.
When there are no options to add closed captions, you will need to have your video file with burnt-in subtitles ready before you upload it on your social media channel. Also, you will need to take into account that some social media might crop the video to adapt the format to vertical view so you will want to keep your lines short and allow some space on the sides.
How to do captioning and subtitling right?
Badly timed captions or subtitles, translation mistakes, display issues, there are many reasons why your subtitled videos can end up giving a bad user experience. To increase your chances of getting the user's attention and provide a good viewing experience, you might want to engage a professional in subtitling, captioning and translation.
At 2M, we have been providing video translation services including voice-overs, subtitles, closed captions, open captions (burnt-in subtitles) in foreign languages as well as English for years. Our subtitling specialists work closely with our translators to ensure that you are delivered with a high-quality translation and video output suitable for various social platforms such as YouTube, Instagram, Facebook, LinkedIn and more. Find out more by consulting our subtitles case studies.


Our chilly, rainy, and snowy winter has turned into a chilly and rainy spring. Abundant precipitation has set us up for a strong water supply in late spring and summer, but it also has caused problems with flooding in parts of the state. The weather is expected to stay relatively cool and wet as we inch toward summer, although there is a possibility of warm and dry El Niño conditions in our future. Overall, water supply forecasts are looking good.....YES . I Love This Side Of The Mountains .


This file can be used to upload animal detail updates to the NAIT system. This may include if an animal is exported live, or if animal information was entered incorrectly previously.
Your CSV file will need to include all of the column headings, in the correct order. This includes headings for optional columns you are leaving blank.
If any of the optional columns are left blank, this will preserve any existing information that has already been entered. For some columns you can delete previously entered information by entering a certain value.
The RFID must already be registered to an animal in order to update the animal's details.
This is the information printed on the outside of the tag. It does not have to be provided if a NAIT RFID is provided. The number must already be registered to an animal in order to update the animal's details.
You can choose to enter a reference number of your own, e.g. 1, 2, 3, 4. This will make it easier for you to identify which record (row of your spreadsheet) is incorrect if you make a mistake in your CSV.
Date information must be in a recognisable format, e.g. dd/mm/yyyy, dd/mm/yyyy hh:mm:ss, yyyy-mm-dd etc.
Please note any time component will not be stored in the database.
The date must be on or before the current date.
If you leave this field blank, the system will retain any previously entered information. If you want to delete previously entered information you can enter 'unknown' or '01/01/0001'.
To update, provide a valid NAIT number.
If you leave this field blank, the system will retain any previously entered information. If you want to delete previously entered information you can enter 'unknown'.
Animals can only be updated where they are on the NAIT number of the logged on user, in which case this field can be left blank. A NAIT accredited information provider can update animals for any NAIT number, but they must enter the NAIT number for the animal and animal must be registered to that NAIT number.
If you leave this field blank, the system will retain any previously entered information.
You must enter this field if the animal type is cattle. Leave this blank for deer.
Applies to Cattle only. Cannot be entered where Animal Type is Deer.
A short description of the breed when breed 'Other' has been specified.
The age of the animal in years.
The age of the animal in months. If Age Years is also specified, the Age Months will be added to Age Years.
Applies to Deer only. The deer registered birth date.
If you leave this field blank, the system will retain any previously entered information. If you want to delete previously entered information you can enter 'Null'.
If you leave this field blank, the system will retain any previously entered information. If you want to delete previously entered information you can enter 'Null' or 'N'.
This can be anything you use to identify an animal, e.g. a visual panel tag, a management tag or a name.
Please note if you enter information in any of the three Other Animal Identifier fields, any previously entered information will be removed and replaced with the new information. If you leave all of these fields blank, the system will retain any previously entered information.
If you want to delete previously entered information you can enter 'Null'. Entering 'Null' will clear all previously entered identifiers.
To update, the date must be in a recognisable format as per date of birth. The date must be on or before the current date, and after the date of birth. It cannot be supplied if a date of death is entered.
If you leave this field blank, the system will retain any previously entered information. If you want to delete previously entered information you can enter '01/01/0001'.
Must be a valid ISO country code. Must be entered if an export date is specified. Must not be entered if no export date has ever been specified or has not been included in the animal update file that is being uploaded.
If you leave this field blank, the system will retain any previously entered information. If you want to delete previously entered information you can enter 'Null'. You must also enter '01/01/0001' into column N.
If present, must be in a recognisable format as per date of birth. It must be on or before the current date, and after the birth date. Must be entered if an import country is specified. Must not be entered if no import country is specified.
If you leave this field blank, the system will retain any previously entered information. If you want to delete previously entered information you can enter '01/01/0001'. You must also enter 'Null' into column O.
Must be a valid ISO country code. Must be entered if an import date is specified. Must not be entered if no import date is specified.
To update, provide the missing date in a recognisable format as per date of birth. The date must be on or before the current date, and after the date of birth.
To update, provide the found date in a recognisable format as per date of birth. The date must be on or before the current date, and after the date of birth.
Can only be supplied if missing date is supplied, and must be after the missing date.
Can only be updated by an authorised user. To add details for a cloned or genetically modified animal, please call the NAIT Contact Centre on 0800 624 843.
This must be entered if a date of death is supplied. If you leave this field blank, the system will retain any previously entered information, but only if the Date of Death and Disposal Method fields are also left blank.
To update, provide the date of death in a recognisable format as per date of birth. The date must be on or before the current date, and after the date of birth. It cannot be supplied if export date is supplied.
If you leave this field blank, the system will retain any previously entered information, but only if the Slaughter and Disposal Method fields are also left blank.
If you want to delete previously entered information you can enter '01/01/0001'. This will also clear any slaughter, disposal method, and carcase disease status information and set the animal to active.
This must be supplied if a date of death is entered. It must match one of the values in the NAIT system depending on whether slaughter is true of false.
If you leave this field blank, the system will retain any previously entered information, but only if Date of Death and Slaughter fields are also left blank.
Please note if you enter information in any of the Carcase Disease Status fields, any previously entered information will be removed and replaced with the new information. If you leave all of these fields blank and the status of the animal is dead, the system will retain any previously entered information.


One of the most exciting aspects of college composition pedagogy is the wide diversity of strategies that various instructors employ to engage students in learning effective communication and argumentation strategies. Within this diversity, peer review has long been a fundamental part of composition curriculum. Peer review promises a wide range of benefits for students and instructors. Students can better understand the assignment through seeing how their peers approach it. They can offer each other advice in areas on which the instructor cannot focus in class. Ideally, it reinforces a sense of the class as a learning community. It also can help instructors understand where students are when they pose questions about the feedback they receive from each other. Realizing these ideals is, of course, much harder in practice. When instructors tell students only to get into small groups, read each other's papers, and provide feedback, they often feel they like do not gain much from the exercise. Many have a sincere desire to be supportive and not hurt anyone's feelings with criticism. If they are unsure of their own writing or understanding of the assignment, they may feel unqualified to offer advice. Or, at worst, if they have a fundamental misunderstanding of the assignment, they may lead their peers in a counterproductive direction. Having faced frustration at the failure of my peer review practice for years, I have, in collaboration with several wonderful colleagues, developed a way to start the peer review process that avoids these pitfalls.
Part of my confidence in this method derives from student evaluations. Every semester since I adopted this practice, "peer review" is the most common "favorite thing about the class" on course evaluations. Students have told me that in past English classes, peer review seemed pointless. They often come away from peer review exercises, particularly in high school, with the sense that their job as a peer reviewer is to copy- edit other students' papers. Beyond that, many feel they do not have the authority to comment on the substantive aspects of content. It is these ideas, arguments, use of examples, and use of evidence that most college-level composition instructors privilege in their grading practice far more than typos and commas—and rightly so. Giving them more directive peer review tasks empowers them to confidently offer advice on the areas that will have the greatest impact on final grades.
On the first day that a rough draft is due, I have students pass their drafts around in a circle. For each pass, I give them one specific aspect of emphasis for that assignment on which they comment. For example, I may ask them to offer advice only on the thesis, introduction, conclusion, counterargument, or use of sources. This directed, anonymous, and brief interaction between reviewer and text produces dynamic and useful ideas for revision in a way other methods are unable to do.
One significant area where students feel this empowerment is in the anonymity of the process. If the classroom allows for students to sit in a circle, I have them do so and pass their drafts to the right. If the classroom has long rows of tables, I have them pass papers in a snaking pattern towards the back, and I take the draft from the last person in the back up to the first person in the front each time. Then I will tell them to read through the entire draft but only comment on one rhetorical aspect I want to emphasize in the current unit, such as a thesis. I try to allow enough time for everyone in the class to finish commenting, which usually takes about ten minutes. I then have them pass again in the same direction for another ten-minute review, asking them only to comment on the effectiveness of another rhetorical element. Since drafts will vary in length and students read at different speeds, there is inevitably some down time between passes. This makes one of the more important days in the semester one of the more peaceful days, which both my students and I appreciate. When they get their papers back at the end of class, they have many comments without knowing who made them. Students have repeatedly told me they feel more comfortable being honest and direct with this anonymity. They also read—and sometimes respond to—comments from previous reviewers, creating a conversation about each concept. This produces results students feel confident in implementing.
Another way this practice makes students trust the results of the peer review process is through the directive nature of my instructions for each pass. With a more free-form method of peer review, many students express anxiety that they do not know what the instructor wants. I alert them that the directions for each pass are key to what will play the biggest roles in their final grades for the paper. I encourage them to note each rhetorical concept for when they revise. In addition, I often accompany each pass with a presentation. When emphasizing organization, I give a presentation on effective introductions, then have them evaluate the introduction for that pass. Then, I present methods for effective transitions and have students evaluate those. This peer review day ends with a presentation and evaluation of effective conclusions. Having students apply the principles I present immediately in evaluating each other's work increases their understanding of the concepts.
It also gets them thinking about each concept in their own papers through comparison with what they are reading. Instead of seeing their writing as an isolated artifact shared between only them and me, they come to appreciate the power of a communal, dialogic model of effective writing.
This communal approach to composition is perhaps the greatest strength of this peer review model. It allows students to see far more examples of how other writers are approaching a common task than through other methods. In an 80-minute class, each student can see seven to nine different approaches to the task they are trying to navigate. I am explicit in encouraging them to think of each paper as a potential model for their own writing. They may see an effective introduction whose structure they could adapt to their own paper. I also warn them, however, that they may come across a negative model—a paper that misunderstands the assignment and provides an example of something they need to avoid. I also point out that a student may get contradictory advice from different reviewers.
But rather than these incongruities being a flaw in the system, I show students how they can open up critical theoretical understanding of effective communication. These divergences in understanding particularly open up crucial conversations about audience and strategies for drawing readers in while avoiding alienating them. When students take a comparative approach to their own writing, their papers benefit from an awareness of how they are situated within a larger discourse community.
This sense of the classroom as a learning community benefits students on a diverse number of levels. Students do not feel as if they are struggling in isolation. Rather, they know they have a support group where we are all working to help each individual succeed. As the semester progresses, they often become comfortable discussing course work with other students even when I am not specifically directing them to do so. This happens in an inspiring, organic manner in an Intermediate Composition class that I teach where students write all of their papers on a single topic. After the first papers, students already have some context on each writer and how their ideas are developing, which allows them to draw on this previous knowledge to offer advice. This prolonged engagement allows students to become invested in each other's projects, which can allow them to look forward to rather than dread peer review days. They are often genuinely interested in seeing where their peers' topics are taking them. This sometimes leads to a rare, inspiring situation when I don't have to intervene at all. I can just observe high-energy conversations about writing between individuals and in small groups. At best, this peer review method leads to truly self-motivated learning and exploration.
I try to maintain the momentum of this excitement over collaborative exploration with other peer review activities after the "read and pass" day. I devote an entire class period to this first method, meaning I set aside an entire week for peer review. In subsequent classes, I first have students put a sentence up on the board for us to workshop as a class. This could be the thesis, opening or closing sentence, or an idea for counterargument. Since a good portion of the class has already seen the paper from which these sentences are taken, they are better equipped to offer advice immediately. I often have students encourage peers that need help with a thesis go up to the board. And since they are already used to having a conversation about each other's ideas, they participate in a class-wide workshop more readily than they may otherwise. I also have them complete the more traditional method of peer review where they get into small groups and read papers they did not see on the first day. Here, I am still more directive, however, by asking them to focus on peer review questions from the book or on the grading criteria on my assignment sheet. These activities build on and reinforce the benefits of the "read and pass" exercise.
My multi-faceted approach to peer review engages students inevitably in practices and habits that facilitate a meaningful revision process. Both my students and I find it more rewarding than other, less directive peer-review activities. It brings a class together as a learning community, which enriches all activities we engage in together. In addition to making a productive peer review and revision process, this method enables my classes to work towards the ideal of an engaged, fully integrated, collaborative approach to learning. It instills in students habits for being self-directed, life-long leaners, which is a goal all composition pedagogies should aim to achieve.


Protein Hydrolysate, Fish Hydrolysate, Potassium Humate.
Essential provides important benefits to outdoor growing such as breaking up soil compaction, neutralizing salts, stimulating microbial activity, increasing water holding capacity and mobilizing soil particles for better oxygen and aeration. It has the ability of mineralizing bound up phosphorus in soils to increase THC content. Essential encourages root growth, producing plants with strong roots that are better able to withstand drought and stress conditions. It also stimulates plant growth, healthy flowering and dense, flavorful and fragrant buds.
Hydroponic or aeroponic systems offer growers the highest yield, but come with challenges in maintaining sufficient macro, micro and organic nutrients, unlike when growing in soils. Lack of proper nutrition to plants can result in reduced natural flavors, diminished resin production and lessens potency. In both systems roots can be easily damaged if the system fails. The pH of water needs monitoring along with salts . Essential, when used in these systems, provides a balance for pH and salts and supplies natural carbohydrates, sugars, and other rich organic "building blocks" that contribute to elevating flavor and boosting resin gland production and potency.
Essential also can be foliar fed to plants, taking advantage of the dense foliage of plants. The organic nutrients, sugars, and amino acids stick to the leaf surface and a natural wetting agent and surfactant improves penetration of nutrients throughout the waxy hairs of the plant. Adding Essential to other nutrients as a foliar spray will improve overall nutrient uptake.
Get your crop off to a fast, strong start. Whether geminating seeds or producing clones, Essential is a key component in your production process. The rich organic materials contained in Essential will encourage germination, and increase root growth, branching and mass. Cytokinins soften the hard outer shell of seeds, allowing vital nutrients to penetrate the embryo within, setting germination in motion. Saponins produce inhibitory compounds that resist harmful pathogens and infection, protecting the newly generated, vulnerable clones and sprouted seedlings. Carbohydrates, sugars and Humic acid feed the hungry young plants while Yucca, a natural wetting agent, assures adequate moisture absorption.
Remember that plants will go through some form of transplant shock for a couple of days after transplant. This slows down the progression of your crop and opens it up to disease. Avoid transplant shock by adding Essential into your transplant water which supplies available nutrients such as sugars, carbohydrates, enzymes and amino acids.
Essential's vital elements will add to the flavor of plants, produce aroma, and of course enhance the all important psychoactive delta-9-tetrahydrocannabinol (THC). Terpenes are the main class of aromatic compounds found in plants. Although, over 200 terpenes, and at least 85 different Cannabinoids, have been reported in the plant, only a small minority, has actually been studied for their pharmacological effects. Terpenes and terpenoids also work synergistically with Cannabinoids to modify THC and endow each strain with a specific psychoactive flavor. Genetically, each strain contains a combination of these chemical compounds and are predisposed to naturally generate them. As a grower who spends a great deal of time selecting their strain, it is in your best interest to use products that enhance, intensify, and increase these compounds.
Essential can be applied to all plant strains grown outdoors, indoors and in hydroponic systems and is idea for all potting soil or soilless mixes such as peat, bark, Rockwool, coco, perlite combinations or applied as a soil drench to outdoor field or containerized crops. It can be applied at all stages of the crops cycle including seed germination, clone rooting, potting, plug sizing up and field applications. It can be applied as a soil drench and as a foliar spray. It can be tank mixed with technical materials and fertilizers to enhance their efficacy. Do NOT mix concentrates together. Always fill tank ¾ full with water before adding concentrates.
Essential can be stored in normal warehouse conditions. Do not store below 32o F. In freezing temperatures, Essential will thicken and may form a precipitate. Return to warm temperatures and shake well before use. Always store in original container and keep tightly sealed. Refer to SDS for additional information on handling, storage, safety, disposal of containers and shipping.
Mix 2 - 10 ml per gallon water.
Foliar Applications: Mix 2 - 10 ml per gallon water.
Drench seed trays until thoroughly soaked at time of seeding.
Seed Soak: Mix 1 teaspoon (6 ml) of Essential in 1/3 cup of water.
Soak seeds 6-12 hours before planting.
Dip: Mix 6 ml per gallon of water.
Dip basal end of cuttings, individually or in bunches, for 1-5 minutes in solution of Essential. After planting, drench trays with solution.
Drench: Mix 6 ml per gallon water.
Thoroughly drench trays, Rockwool, or root cubes after sticking with solution of Essential. Repeat in 5-7 days.
After planting, in new container, thoroughly drench plant with diluted Essential. Repeat in 7 days.


text:
Anthony Mezzacappa
For research in the fields of astrophysics and supernova science.
Virginia H Dale
For pioneering research in disturbance and landscape ecology and in modeling of land-use change with its implications for global changes, which have influenced environmental decision making on a worldwide scale.
David L Greene
For distinguished contributions to energy policy research and analysis for transportation, and for advancing understanding of the transportation sector's role in energy and environmental concerns.
Frank Plasil
For fundamental research establishing fission-imposed limits on rotating nuclei, and for extensive studies of heavy ion reactions from low to ultrarelativistic energies.
Robert V O'Neill
For pioneering research in ecosystem theory, ecological modeling, error analysis, hierarchy theory, and landscape ecology and for the development of basic applications in risk assessment and regional environmental analysis.
Richard F Wood
For theoretical research on the electronic and vibronic structures and optical properties of defects in ionic crystals, and for work at the forefront of the rapidly developing field of laser annealing of semiconductors, leading to advances in the photovoltaic conversion of solar energy.