text:
Yellowstone Cracks Down on Workplace Harassment
In late July 2017, Yellowstone National Park's superintendent announced that he would be taking disciplinary action against 10 Yellowstone employees after an investigation found that female employees at the park had been victims of sexual harassment. The announcement comes at a time when the National Park Service and its parent agency, the Department of the Interior, are under increased scrutiny amid allegations of sexual harassment at a number of the agency's parks. The problems at the National Park Service draw attention to issues that confront employers and employees located in remote areas.
A History of Workplace Harassment at the National Park Service
In 2016, reports of sexual harassment at many National Park Service sites, including major parks like Yosemite, Yellowstone, and the Grand Canyon, made headlines as victims of sexual harassment began to tell their stories to media outlets. Beginning in 2016, the Department of the Interior's Office of the Inspector General (OIG) conducted an investigation into reports of misconduct at Yellowstone. The House Oversight Committee further investigated misconduct at the National Park Service, conducting hearings with victims and agency leadership. In January 2017, Sen. Tammy Duckworth (D-Ill) questioned Interior Secretary Ryan Zinke about sexual harassment in the National Park Service during his confirmation hearing.
In many cases, National Park Services employees work in remote locations with less oversight than government employees in more populated locales. Such conditions, combined with a male-dominated workplace culture, can foster a hostile work environment for workers. The EEOC's Select Task Force on the Study of Harassment in the Workplace has published a chart of risk factors for harassment, along with responsive strategies that employers can take to counteract those risk factors. Several of the risk factors outlined by the EEOC are present at national parks.
First, many national parks are located in unpopulated areas where employees are isolated. According to the EEOC, in isolated environments, harassers have easy access to their targets, and when workplace harassment occurs, there are usually few witnesses to corroborate a victim's account. Relatedly, the National Park Service is an example of a decentralized workplace. Employees report to management that is located many miles away. The physical distance between employees and managers can make it difficult for employees to report harassment within the organization. Finally, the National Park Service has many more male employees than female employees, especially in some of its more remote locations. Homogeneity in the workplace is a risk factor for harassment because, as the EEOC has noted, employees in the minority can be vulnerable to pressure from the majority, and employees in the majority often feel threatened or uncomfortable around those they perceive as different or "other."
Other Work Environments Share Risk Factors
The risk factors for sexual harassment present in the national parks are not unique to national parks. Isolated and homogenous workplaces exist in a variety of public sector jobs such as law enforcement, firefighting, and the military, and in private sector jobs in such industries as mining and long-haul trucking. For example, women who work as long-haul truckers have filed numerous sexual harassment complaints against trucking companies. Like employees of national parks, truckers work in isolation from their managers, often in remote parts of the country. Often truckers are paired together for weeks-long trips, sitting, driving, and sleeping in close quarters, and those conditions can foster egregious sexual harassment.
The courts have not consistently evaluated the culture of such workplaces in analyzing harassment claims. Many courts considering such claims have noted the existence of widespread vulgarity, crude humor, and obscene language, but do not think Title VII was meant to change this. In one leading case, the court essentially said that if a woman wanted to work in a non-traditional environment, she had "assumed the risk" of being subjected to such harassment. See Rabidue v. Osceola Refining Co., 805 F.2d 611 (6th Cir. 1986). Other courts repudiated this view, saying that traditionally accepted discrimination against women underscores rather than mitigates an employer's culpability. See Jensen v. Eveleth Taconite Co., 130 F.2d 1287 (8th Cir. 1997).
More recently, in addressing harassment claims against CRST trucking, the subject of multiple complaints of harassment including allegations of sexual assault and rape, a state court in California upheld a $1.5 million verdict for the plaintiff. In a different case litigated in federal court, the Ninth Circuit Court of Appeals this year reversed summary judgment for the company and sent the female truck driver's case back for trial, while in March 2017 a district court in Iowa certified two classes of women to proceed with harassment claims against CRST.
Stopping Sexual Harassment Before It Starts
Although the courts' more progressive responses to some cases of sexual harassment are a positive development, employers have much more power to stop sexual harassment before it starts. While risk factors such as isolation and decentralization cannot be eliminated, employers can combat the risk factors by taking proactive steps to eradicate harassment. To combat the risks caused by isolation:
Employers must ensure that harassment training reaches all employees regardless of location.
Employees must know how to report harassment
Managers must know how to respond to such reports and escalate them through the proper channels.
Harassers must be disciplined to reinforce a message of zero tolerance for harassment.
Employers in remote locations can attempt to increase diversity by hiring a more gender-balanced workforce because greater gender balance is likely to reduce harassment.
Yellowstone's disciplinary action against 10 employees implicated in misconduct is an encouraging step, but the Department of Interior, the National Park Service, and individual parks will need to continue to act proactively and implement stronger strategies, policies, and procedures to protect their employees from sexual harassment. The National Park Service's recently exposed troubles highlight broader issues confronting a wide range of employers. Employers can and must do more to ensure that employees can work in an environment that is free from harassment.
Murat Kayali
Texas Catches Up to the #MeToo Movement with New Legislation
In a surprising move, Texas Governor Greg Abbott signed into law three bills: Senate Bill 45 ("S.B. 45"), Senate Bill 282 ("S.B. 282"), and House Bill 21 ("H.B. 21), that will extend protections for sexual harassment victims in the workplace. Each bill took effect on September 1, 2021, revising vital parts of the Texas Commission on Human Rights...
Protections for Employees Who Report Workplace Discrimination
While thousands of employees each year submit complaints of discrimination against their employers, many more experience workplace discrimination and do not submit a formal complaint or even report it internally. A 2016 study by the Equal Employment Opportunity Commission (EEOC) noted that three out of four individuals who experienced harassment...
Biden Administration Relies on Supreme Court Decision to Bolster LGBTQ+ Protections for Students and Employees
Title VII of the Civil Rights Act of 1964 ("Title VII") prohibits employers from discriminating against any individual "because of such individual's race, color, religion, sex, or national origin." 42 U.S.C. § 2000e–2(a). Title IX of the Education Amendments of 1972, 20 U.S.C. §§ 1681–1688, prohibits discrimination on the basis of sex at...
Whistleblowers Accessing Company Documents Likely Will Not Be Prosecuted Under the Computer Fraud and Abuse Act
Until recently, logging onto Facebook a few too many times on a work computer could not only get workers fired but also theoretically land them in prison for up to 10 years if they were prosecuted under the Computer Fraud and Abuse Act ("CFAA"). Workers who push the envelope on conducting personal business on company property will be relieved to...
Can Employers Shorten Discrimination Claim Deadlines by Contract?
Every legal claim has a time limit within which a person must file a lawsuit—or a complaint with a government agency—or give up the claim. This deadline is known as the "statute of limitations," as it is often a time limit written in the statute that creates the legal claim. There are a variety of reasons legislators have for putting limits on...


text:
In law, a committal procedure is the process by which a defendant is charged with a serious offence under the criminal justice systems of all common law jurisdictions except the United States. The committal procedure replaces the earlier grand jury process.

Sometimes the committal procedure includes a preliminary hearing. Sometimes the committal procedure does not include a preliminary hearing.

In most jurisdictions criminal offences fall into one of three groups:

There are less serious (summary) offences which are usually heard without a jury by a magistrate. These are roughly equivalent to the older category of misdemeanors (terminology that is now obsolete in most non-U.S. jurisdictions).

There are intermediate offences which are indictable (equivalent to an old-style felony), but which can be heard summarily. For instance, theft is usually a serious offence. If however the charge is that the defendant stole a packet of biscuits worth only a very small amount, it would probably be heard by a magistrate.  In Canada and Ireland, these are known as hybrid offences, whereas in England and Wales, these are known as either way offences, and can only be heard summarily with the defendant's consent and if a magistrates' court finds that matter is suitable for summary trial. In Victoria, Australia, they are called indictable offences triable summarily. As well as the defendant's consent the Magistrate must regard the offence as appropriate to be heard in the lower court.

Finally, there are serious matters which must be dealt with in the higher courts, usually before a jury. When one is charged with an offence of the third type, a preliminary hearing is first held by a magistrate to determine whether there is sufficient evidence to warrant committing the defendant for trial. That is, whether there is sufficient evidence such that a properly instructed jury could (not would) find the defendant guilty. It is a very low-level test. The majority of committal proceedings result in a committal to trial.

In some jurisdictions, the prosecuting authority may directly present a defendant for trial regardless of the result of the committal proceedings by filing an ex officio indictment. Equally, the prosecuting authority usually has the power to stop any prosecution by entering a nolle prosequi. In many jurisdictions the right of a defendant to cross-examine witnesses during the committal is reliant on the defence establishing that it is in the interests of justice or to illuminate some relevant point. The defence very rarely calls witnesses at a committal.

England

On 28 May 2013 the committal procedure was abolished in England. As a result, the serious matters are sent straight to the Crown Court from a magistrates' court for a pre-trial hearing. There is no committal procedure to determine sufficiency of evidence. Instead, the defendant charged with the offence may make an application to the Crown Court to have the case dismissed for lack of evidence. The idea behind this reform was to get cases to trial more quickly and reduce the number of pre-trial hearings. However, it is questionable whether this has been achieved given the number of pre-trial hearings that are often required in the Crown Court.

The first hearing in the Crown Court will be a Plea and Trial Preparation Hearing (PTPH), where a plea is taken and, if not guilty, a timetable for trial is set and directions given for service of further evidence, followed by the trial itself. There may be additional hearings in between (called 'mentions'). The PTPH was introduced on 5 January 2016 and replaced the previous procedure of having a separate initial preliminary hearing followed by a Plea and Case Management Hearing (PCMH) in an attempt to reduce the number of pre-trial hearings.

In triable either way offences, the defendant's right to elect a jury trial remains unfettered.

Notes and references
Clifford E M Chatterton and Philip K Brown. Committals for Trial to the Crown Court: The Law and Practice. Fourmat Publishing. London. 1988.
John Bowers. "Committal for trial". Practice Notes on Procedure in Courts. Chapter 8.3 at pages 81 to 84.
Peter Hungerford-Welch. "Committal for sentence". Criminal Procedure and Sentencing. Eighth Edition. Routledge. 2014. Chapter 5.13 at pages 112 to 116.
P J Hidden, "The Benefits of Committal Proceedings" (1990 to 1991) 2 Current Issues in Criminal Justice 19
John B Bishop, "The Abolition of Committal Proceedings" (1990 to 1991) 2 Current Issues in Criminal Justice 37
J A R Dowd, "Committal Reform: Radical or Evolutionary Change?" (1990 to 1991) 2 Current Issues in Criminal Justice 10
John Koumarelas, "Committals: an optional extra?" (1989) 14 Legal Service Bulletin 279
Bronwyn Naylor, "Justiciability of Decisions in the Criminal Process: Review of Committal Proceedings in the Federal Court" (1990) 19 Federal Law Review 352
"Committal Proceedings Misconception" (1979) 43 Journal of Criminal Law 163
"The Floodgates of Judicial Review: Once More unto the Breach" (1993) 44 Northern Ireland Legal Quarterly 233 (Autumn 1993)
R E Salhany, "Review of Committal for Trial" (1965 to 1966) 8 Criminal Law Quarterly 31
Peter J Connelly, "Certiorari and Committals for Trial" (1980 to 1981) 23 Criminal Law Quarterly 369
"Committal for Trial or Sentence?" (1984) 148 Justice of the Peace 497 (11 August 1984)
Bruce M Haines, "Committals and Certiorari" (1965 to 1966) 8 Criminal Law Quarterly 141
"Powers of Criminal Courts (Sentencing) Act 2000: Committal for Sentencing" (2012) 76 Journal of Criminal Law 12
"Committals for Sentence under Ss. 41 and 56 of the Criminal Justice Act, 1967" (1970) 34 Journal of Criminal Law 200
"From Committal Proceedings to Transfer for Trial" (1995) 159 Justice of the Peace & Local Government Law 379 (10 June 1995)
Marjorie Jones, "Publicity for Committal Proceedings" in "As I see it" (1980) 144 Justice of the Peace 269 (3 May 1980)
"Publicity for Committal Proceedings" in "Notes of the Year" (1949) 9 The Howard Journal 7
"Effect of Lapse of Time on Committal Proceedings" (1991) 55 The Journal of Criminal Law 295
"Committal Proceedings - Adversarial or Inquisitorial?" (1995) 59 The Journal of Criminal Law 111
"Committal for Trial by Quarter Sessions" in "General Intelligence" (1936) 181 The Law Times 473 (13 June 1936)

See also

 Civil confinement
 Warrant of committal

Judiciaries

redpajama_set_name: RedPajamaWikipedia


These pages contain documentation and examples for AGIs Analytical Services.
We have getting started videos available on our information page here: https://saas.agi.com/analyticalServices. See these if you are unsure of how to use an API service.
Append the Api Path for a service from the documentation below to the base URL above to call the service.
Prior to using these services you will need to acquire an API key from AGI. The API key is submitted on each call to the service using the 'u' query parameter. For example, to call the Sgp4 vehicle path service, you'll need to format your service call like this: https://saas.agi.com/V1//vehiclePath/sgp4?u=APIKEY"
To obtain an API key, contact AGI through our service information page, or email us at saas@agi.com, or call us at +1-610-981-8875.
The input and response data fields are described here, along with input and response examples. Unless noted otherwise, all input data elements are required. Many of the services use the POST method because of the amount of data that's required to be submitted.
© 2019 - Analytical Graphics Inc.


text:
Q: cannot cast and object from a lst which contains a base class I have an empty abstract base class
abstract class Base{
    Base(){}
}

Then I have several classes that extend this base class
class A extends Base{

}

Then I intantiate these classes and put into list.
 A it = new A();
 ArrayList<Base> list = new ArrayList<Base>();
 list.add(it);  // add A object

then I want to do something like
   for(Base msg : List){
       if( msg instanceof A){
             A obj = (A)msg;
        }

    }
But I'm getting errors.

What am I doing wrong

A: Don't check it for being A. Consider this
abstract class Base{
    Base(){}
    void doSomething() { System.out.println("AwesomePossum"); }
}

class A extends Base {
    @Override void doSomething() { System.out.println("Frankie O'Malley"); }
}

Then later, when you're iterating, instead of doing something like
for(Base msg : list) {
    if(msg instanceof A) // BAD
}

do this:
for(Base msg : List) {
    msg.doSomething();
}

A: I would normally expect Base to declare the methods provided by A, and consequently you could pull a Base reference out and use it, regardless of the fact that the implementation is A.
If the types in your list don't adhere to a common interface contract, I would question why you're putting them in a list together. It will make life very difficult.

A:  for(Base msg : List){<---List is used variable name is list

You are not using variable list to iterate instead you are using List.That is why you are getting errors.
It should be
for(Base msg : list)

redpajama_set_name: RedPajamaStackExchange


text:
iLoveMakonnen Releases Surprise New Album My Parade: Listen
His debut album is his first release following a departure from Warner Records
By Evan Minsker
iLoveMakonnen in 2019 (Andrew Toth/Getty Images for Billboard)
iLoveMakonnen has returned with a surprise new album. My Parade is his first release after his departure from Warner Records; it's out via Timeless Magic and COR/TAN Records. He revealed the new project tonight alongside the single "Whoopsy," which features Payday. Listen to the new album below.
"The My Parade project is my first album being back in control over my art and creativity," iLoveMakonnen said in a statement. "It's about celebration of self and having your own parade even if the world is raining down on it. My Parade album is a collection of genre bending styles that I like to experiment in and showcase my versatility as an artist putting no limits on my musical expression. It's for my fans who appreciate and enjoy all of the different eras of iLoveMakonnen's music so far and for new ones joining in now on my artistic journey."
iLoveMakonnen's last record was 2019's M3 EP.
Top 10 Manga That Broke the Internet
An Inside Look at Elvis Presley's Graceland Estate
Aoife O'Donovan Covers Sharon Van Etten's "I Love You But I'm Lost": Listen

redpajama_set_name: RedPajamaCommonCrawl


text:
Christopher Luning
Executive Vice President, General Counsel and Secretary, Essential Utilities
Christopher Luning is executive vice president, general counsel, and secretary for Essential Utilities, Inc. (NYSE: WTRG), one of the largest publicly traded water, wastewater and natural gas providers in the U.S., serving approximately 5.5 million people across 10 states.
In this role, he is the Company's chief legal counsel and oversees and provides strategic direction for the Company's legal and risk management departments. Luning provides direction on all matters related to Essential and its subsidiaries, including mergers and acquisitions, corporate governance, risk management, and board matters.
In his role, Luning has contributed to the Company's growth strategy focusing on acquiring municipal water and wastewater systems and pursuing strategic utility M&A and seeking complementary market-based businesses. Since 2016, the Company has acquired 40 water and wastewater systems, including the pending acquisition of the Delaware County Regional Water Quality Control Authority (DELCORA), the largest municipal transaction in Company history. Luning also played a critical role in the Company's acquisition of natural gas distribution company Peoples, including leading the Company's negotiations in the acquisition agreement and its efforts for the Company's successful $2 billion secondary public equity offering and $900 million initial public debt offering to secure financing for the Peoples acquisition and other corporate purposes.
Luning has held his current role since 2012. Previously, he held the position of vice president, corporate development and was responsible for leading the Company's corporate development activities, contributing to the Company tripling its customer base in the previous 10-year period. Luning joined the Company in 2003 as assistant general counsel and in 2005 was promoted to vice president and deputy general counsel.
Prior to joining the Company, Luning worked at Hovnanian Enterprises, Inc., a NYSE-traded home builder, and as an attorney in private practice.
Luning is the executive sponsor to the Company's Black Resource Group.
Luning earned his B.S. in business and political science from Albright College and his J.D. from Villanova University. He is licensed to practice law in Pennsylvania and New Jersey.


On the basis of early results from various voting centers, we feel confident in projecting: the Chávez government will not have a 2/3 majority in the new National Assembly.
The Venezuelan Constitution says that certain legislative acts, such as Organic Laws and appointments of Supreme Court justices, require a 2/3 majority. The Chávez government will not have that majority.
It's too soon to tell what the outcome of the Assembly will be, but early results are encouraging for the opposition.


Move aside bamboo briyani, it's coconut briyani's time to shine.
You've probably heard of nasi briyani cooked in bamboo, but have you heard of coconut briyani?
Briyani and your choice of mutton, chicken, or prawns are stuffed into a fresh young coconut and then steamed. The coconut flesh and aroma will then seep into the rice and spices, taking the classic dish to a whole new level of flavour.
Dally, who learnt how to cook from his father, said that the restaurant's recipes have been in his family for more than 50 years.
To his amazement, the results turned out great.
Tengga's coconut briyani is served on a banana leaf with a side of pickles and hard-boiled egg. Psst… our favourite has got to be the mutton one!
For more yummy briyani dishes, check these places out!
Rice, chicken, mutton, spices; can it possibly get any better!?


text:
JOIN SFMN
SNAIL OF APPROVAL
ARK OF TASTE
Corinne Segal
Nada Khader on the policies that would transform our food system
Good food should not be a privilege: it's a human right. That principle has been a guiding force for Nada Khader's work in social justice movements, which has taken her from Washington, D.C. and North Carolina to her current position as director of WESPAC Foundation (Westchester People's Action Coalition), which works to advance progressive causes in Westchester County. Khader talked to Slow Food Metro North about the challenges of accessing local food, the intersectionality of her work at WESPAC, and the White Plains garden where she feels at home.
How would you describe your work in food justice?
There are different lenses by which one can approach food justice work. For me, I'm definitely approaching it as, it should be guaranteed by the Constitution of the United States. It's not a privilege. It should not be considered charitable work. It should be considered a primary human right—we have the freedom of speech, the right to assemble, and we should have the right to be free from hunger. If I'm a poor person, I don't want to be given charitable contributions of processed foods or foods that I don't choose. I want to have the choice to choose the foods that myself and my family consume. That's really a very basic right.
When we look at Westchester County, we see that the most recent housing assessment report that came out ... it shows that more than 40 percent of the households in Westchester County are spending more than 50 percent of their total household income on housing. So it's intimately linked to food justice because if you're paying more than your total household budget, more than 50 percent on housing, it means you have much less to spend on very basic foodstuffs. So it means that many families, probably at least half our population in Westchester County—so about 500,000 people—are making food choices based on significantly diminished disposable income because of housing costs.
All of these issues are linked, and that's what makes WESPAC quite unique because we're always looking at the intersectionality of issues. We cannot talk about food justice without talking about the exorbitant cost of housing in Westchester County, without talking about racial disparities in Westchester County, without talking about climate issues and our federal government's policies overseas. So all of this is connected, and I think it's important to have an institution like WESPAC that is constantly focused on exposing the intersectionality of these issues.
How does climate change enter the conversation at WESPAC around food?
First of all, our small farmers have been suffering for decades. The number of family farms in New York State has declined significantly over the decades. And that's really really sad to see, because the model of having corporate agriculture, that use acres and acres and acres to grow one product with heavy usage of fossil fuels and chemical pesticides that are killing bees and killing pollinators, it's so unsustainable and it's so inefficient. When you do studies of what a small family farm that's ecological, that's trying to be sustainable, that's really trying to minimize the amount of nasty chemical pesticides and fertilizers that they're using… when you compare that with these huge mono monsters, it's not comparable. The small family farm is always more efficient and more productive. And it's so much healthier for the natural environment.
We desperately need a new model. And thank goodness, in Westchester County, we have a lot of consciousness about supporting farmers markets and that's wonderful, and developing relationships with the farmers. People in Westchester can make a trip, if it's a local farmer in the Hudson Valley, they can visit the farm, take a look and see the produce, how are the animals being treated, how are the produce being grown, what are some of the issues that the farmers are facing? With the CSA models, you actually share the risk with the farmers, which I think is fair in this era of climate change.
One initiative that could be really helpful—I don't personally have the capacity to lead the campaign, though there may be others that thought about it—but really linking our county institutions and our state institutions with our local farms. So, for example, passing a law that says it's mandatory, any county-operated facility must purchase food in the cafeteria from small-scale ecological farmers that are using sustainable methods. That one law would have a transformative effect on our food system. … This is a challenge to capitalism. But for me, this is a very clear path forward that would transform New York state agriculture.
Have there been any recent developments in this field that have caught your attention?
I've been reading about food cooperatives in Brooklyn that are specifically focused on the black community, which I find really exciting. I was at an economic democracy meeting in Madison, Wisconsin, and they have this wonderful food co-op that has opened different branches in the city, and one of the food coops is in the northern part of Madison. It was really interesting to hear a representative talk about some of the issues that the food co-op has to pay attention to to make sure the shopping experience is relevant for the communities that it serves.
Food cooperatives can create a community. Many food co-ops have a community center where people can reserve space, and you might have cooking demonstrations—some people may not know how to use a particular vegetable, they might need ideas. The ones I've been to, when you walk in, you just feel that there's a different energy. It's community friendly, there's a bulletin board where you can post different things, it's just a very different experience. Most food coops are focused on having locally grown, local produce available. They might have locally [produced] beverages or jams, teas, things that you might not find in a corporate chain store.
How do you engage with local food personally?
I have a small plot at Baldwin Farms. Baldwin Farms was the last working farm in the city of White Plains. It has a really interesting history. When the farmer passed away, he donated the land to the city of White Plains. It's 18 acres, but only a small portion is used for community garden plots, and I have a plot there.
What do you grow?
It changes every year. My husband teases me that I'm not a natural grower. [laughs] He has something there. What I really enjoy are growing herbs, partly because they're less labor intensive, but also because I experiment with really delicious herbal teas. [I make] oregano, lavender—people don't realize you can make lavender tea, you can mix it with sage. Oregano is a really powerful plant. It helps with the immune system, so even if you take three or four leaves just straight from your garden and eat them, it's sort of an immune system tonic.
At Baldwin, there's a sign saying the gardeners are not supposed to use any chemical pesticides or fertilizers, which is really good, because I'm comfortable putting my feet barefoot on the ground there and there's actually something very healing and very therapeutic about smelling the ground and smelling the herbs and having direct contact with the earth, it feels really therapeutic. … Whether I'm there for one or two or three hours, it's a time of healing and restoration, just being in that plot. It's amazing, and I would wish that people would have access to that kind of sanctuary space.
Doug DeCandia: Westchester's wild plants 'hold the knowledge of this place'
Ruby Olisemeka: Repairing the instinct to connect with nature
©2019 Slow Food Metro North


text:
An affordable cool.
July 27, 2010 8:40 PM Subscribe
Keeping Cool at Lower Cost. A fine summary of the latest innovations in the technology of air conditioning. e.g. "If [fan] blades were designed for better aerodynamic efficiency, instead of being stamped from sheet metal as cheaply as possible, the electricity consumption of many cooling systems could be cut by a third.". Includes a look at how to cool a building using hot water in a device called a thermal cooler.
posted by storybored (26 comments total) 10 users marked this as a favorite
While several of these systems are interesting, the author seems to be an otherwise intelligent person who has a very distorted understanding of thermodynamics.
The first thing to understand about air conditioning/refrigeration is you are not really creating cool so much as you are removing heat.
posted by jcking77 at 9:17 PM on July 27, 2010 [3 favorites]
uhh TLDR? He or she actually seems pretty clear on this: "Most air-conditioning units, like refrigerators, use tubes containing chemical refrigerants which vaporise as they draw heat out of the air passing over them."
posted by Locobot at 9:24 PM on July 27, 2010 [1 favorite]
If you can cut AC electricity usage by a third with a better fan blade it seems like there should be a huge market for replacement fan blades.
posted by jeffkramer at 9:37 PM on July 27, 2010
But there are things like the idea of an evaporating water "removing" heat, and ice "cooling" a room which can be a dangerous way at looking at it.
Evaporating water absorbs heat, it doesn't remove it.
The comments in the article have it best: spending more on preventing heat from entering the building in the first place is the most cost effective means of keeping our spaces cooler.
posted by jcking77 at 9:46 PM on July 27, 2010
i havent seen blades made from metal (as opposed to plastic) since the 80s.
posted by 3mendo at 9:51 PM on July 27, 2010
Ice does cool a room, assuming the refrigeration unit involved in producing the ice exchanges the heat outside the building. Evaporative cooling does cool a room, it takes energy (latent heat) to cause a phase change from liquid to gas, and that heat is removed from the room. (Or your body in the case of perspiration.)
People talk casually about cooling all the time. I have no idea why you're so concerned with the phrasing in this article, which is really not indicative of any misunderstandings whatsoever.
posted by knave at 10:07 PM on July 27, 2010 [3 favorites]
Air conditioner condensor fans are often stamped metal rather than plastic because they have to hold up in outdoor use. There also hasn't been much incentive to optimize the fan because the fan uses only a small fraction of an AC's power, - 10% is probably generous (The compressor is by far the biggest energy hog.) A 20% savings on 10% would net only 2% more system efficiency - not worth spending a lot of money on.
posted by Popular Ethics at 10:09 PM on July 27, 2010 [2 favorites]
If a more efficient fan blade design means less power usage, not because it's easier to turn but because turning it accomplishes more, then it starts to become a lot more worthy of investiture. The article claims a 33% reduction in energy costs.
posted by kafziel at 10:38 PM on July 27, 2010 [1 favorite]
jcking77 wrote: "Evaporating water absorbs heat"
Which is why a lot of newer A/C units sling water on the hot condenser coil to help cool it, thus increasing efficiency.
The fan simply doesn't use that much of the energy. My window unit draws about a third of an amp for the fan. The compressor, on the other hand, draws a little over 10 amps. You could reduce the energy use of the fan to zero and hardly impact the power draw. Granted, if every air conditioner had a significantly more efficient fan, the overall reduction in power consumption could become a large number, although still small relative to total power usage. But every little bit helps.
People would be better served by cleaning/replacing their filters often and cleaning their coils every once in a while, though. Dirty filters and coils really destroy the efficiency of the system.
posted by wierdo at 11:09 PM on July 27, 2010
A 20% savings on 10% would net only 2% more system efficiency - not worth spending a lot of money on.
I can't post any details, but at Google, optimizing the fans is serious fucking business. Those little efficiency gains accrue geometrically, like compound interest. And compound interest at 20% yields fairly epic returns (see form 10-K).
posted by ryanrs at 11:18 PM on July 27, 2010 [2 favorites]
The article claims a 33% reduction in energy costs.
If it was that easy, all the HVAC companies would be doing it. They are under a fair bit of pressure to meet efficiency targets while meeting consumers' price points -- they would happily accept a freebie like a better fan blade if it meant a 33% more efficient system.
posted by Forktine at 11:24 PM on July 27, 2010 [1 favorite]
Living in Tucson has taught me that evaporative cooling does work very well ... provided that the weather is dry outdoors. It's actually much nicer than standard air conditioning in the early and late summer (which you may know as spring and fall). It uses much less electricity and puts some humidity in the air which feels wonderful during the dry seasons. This time of year though, when we get the summer "monsoons" and the air outside is wet, evaporative, or swamp cooling as some people call it, is mostly useless. Where evaporative cooling uses less electricity it does use up water which is another issue.
There are large university buildings around here which use night time ice creation for cooling, but this doesn't really save too much electricity, just puts usage off peak hours.
The solar coolers described in the article would probably work great here, as would large scale solar electricity production, but unfortunately our state government majority and most of the influential people in Arizona are reactionary. Sure we have 300+ sunny days a year, but for some reason those trains full of coal keep rolling in...
posted by Locobot at 11:29 PM on July 27, 2010 [3 favorites]
This may depend on where you are, in the UK (and simiilarly in much of Europe) we are looking at bringing in more efficient buildings, primarily to reduce heat loss rather than cooling, but it will be interesting to see how this impacts on summer conditions. in the UK we have seen the number of days commercial premises require air conditioning go up by about 1 day a year for the last 20 years, largely as a result of office equipment used within the building. So how will that interact with more thermally efficient buildings? At the same time however, the forward looking models for thermal demand by these premises tends to assume that equipment heat output will drop off over time as efficiencies improve.
One other potentially interesting point in Europe is that many states seem likely to have to introduce policies to stimulate renewable heating technology (solar thermal, heat pumps, biomass boilers, etc) as part of their commitment to hitting the EU target for 20% of all energy use to come from RE by 2020 and that some of there systems have the potential to also act as cooling providers (reverse cycle heat pumps for example, improving the economics not only as they substitute for A/C but also as they improve the efficiency of the heat pump).
Genereally the economics of renewable cooing are pretty weak, with little in the way of installed capacity even in Mediterranean states.
posted by biffa at 1:27 AM on July 28, 2010
I suspect our children and grandchildren will marvel at our failure to cool environments using the energy generated by whatever is making them too warm. Why on earth would you not build a car with AC that is powered by solar energy or engine waste heat for example?
posted by rongorongo at 2:27 AM on July 28, 2010
I recently saw a brief science news story on an alternative method of air conditioning used in Japan.
In the winter, they plow the snow from the surrounding roads into an insulated building and then use that stored snow to cool buildings in the summer.
Apparently, this elegant system had been used in the past, and is referred to as an ancient technology in this article about a similar system in Sweden.
posted by fairmettle at 3:22 AM on July 28, 2010 [1 favorite]
"i havent seen blades made from metal (as opposed to plastic) since the 80s."
I think it is the shape rather than the material. The plastic blades you see in fans would essentially lie flat if you were to heat them to where they were pliable. What the article is getting at unless I'm mistaken is that a shape with volume similar to that of an airplane propeller is more efficient.
The one that boggles me a bit is the propane powered refrigerator with no moving parts. I need an animation.
posted by vapidave at 4:29 AM on July 28, 2010 [1 favorite]
This is just a trick to get me to buy one of those cool Dyson fans for a million bucks, right?
posted by inturnaround at 6:02 AM on July 28, 2010 [1 favorite]
The ones that I've seen use the heat from burning propane to drive a small Stirling engine, which pumps the refrigerant through the system.
posted by kuujjuarapik at 6:37 AM on July 28, 2010
Most air-conditioners using refrigerants consume lots of electricity because they employ mechanical compressors, which are piston-like machinery that squeeze the heated vapours. This turns the refrigerant back into its cooler liquid state to be used again.
Science journalism fail. Ruined the rest of the article, how can it be taken seriously when that sentence is there, mocking me. Maybe its splitting hairs but compressing just about anything makes it hotter, not colder. PV=nRT, making the volume smaller is gonna make the pressure and temperature greater. The only reason the liquid cools is that it goes through a heat exchanger with a fan blowing over it. And that only gets it somewhere in the area of there surrounding atmosphere's temp. The real cooling comes when the liquid is allowed expand into a gas again.
Also, I highly doubt the fan uses anywhere near as a much power as the compressor. It takes a fair amount of energy to compress a gas, its pretty easy to blow some air around. A 1/3 power savings by improving fan blades seems absurd, I don't think this guy knows what he's talking about. I bet somebody told him fan blades would save 33% on the fan motor's power consumption and he was all like, ZOMG 1/3 powah savings, somebody phone Al Gore!
posted by no_moniker at 6:47 AM on July 28, 2010 [1 favorite]
Seem to be a lot of people getting hold of the wrong end of the stick. While I'm dubious about these claimed fan savings, they're at least not completely absurd. As kafziel said:
If a more efficient fan blade design means less power usage, not because it's easier to turn but because turning it accomplishes more
If a better fan meant that the whole system worked 50% better for the same power consumption, you'd presumably be able to translate that into a 1/3 power saving. The actual consumption of fan itself is irrelevant.
posted by howfar at 7:06 AM on July 28, 2010 [1 favorite]
Whoa, who knew HVAC nerds were so touchy?
posted by Locobot at 7:19 AM on July 28, 2010
Clearly you do not have central air conditioning. Go to any subdivision, look at the central air units in the back of the house. Metal blades.
posted by spicynuts at 7:29 AM on July 28, 2010 [2 favorites]
Total Power = Power(fan) + Power(compressor). (We'll put anything like a pump, etc. in with the compressor.)
You're saying that moving more air lowers Power(compressor). This could be true, but only if the system were poorly designed. As mentioned above, the refrigerant, in the heat exchanger of which the fan is a part, won't get any cooler than the surrounding air. If the refrigerant leaves this heat exchanger at much above ambient temperature, then that is an inefficiency that could be solved by enlarging the heat exchanger or by pushing more air over it. I'm no cooling engineer, but I highly doubt this would be overlooked by a designer unless there were strange constraints on the design of the heat exchanger.
In short, the heat exchanger, of which the fan is a part, is most likely already doing the best job it can do, in that it gets the refrigerant down to the ambient temperature. Pushing more air won't improve it. Basically, Power(compressor) won't be reduced by anything you do with the fan. All you can do with the fan is reduce Power(fan), which is a very small part of the total power.
I welcome someone who knows more about this than I do correcting me. Maybe normal A/C units do have constraints on their heat exchangers that can't be worked around by just blowing harder. In any case, it's fun to argue things on the internet about which you know very little!
posted by whatnotever at 8:17 AM on July 28, 2010
"If a better fan meant that the whole system worked 50% better for the same power consumption, you'd presumably be able to translate that into a 1/3 power saving. The actual consumption of fan itself is irrelevant."
That's not how it works. The refrigerant cycle components don't care how the air passing over a coil is moved. (Some coils don't even use air, they are cooled by water.) The coil could care less whether those CFMs are being provided by a regular fan, a super efficient fan or rat farts. So all energy savings would have to come from the reduced power consumption of the fan motors via the more efficient fan blade. Even if 1/3rd of the electricity use of the system were from the fans (which it isn't) you'd have to completely eliminate the fans to get that kind of power reduction.
PS: the fan blades in central systems are already fairly sophisticated. The big flattish blades in condensing units feature compound curves and the evaporator fan (IE: furnace blower) is a squirrel cage.
posted by Mitheral at 8:17 AM on July 28, 2010
Becuase the ability to extract significant energy (rather than just increasing the load on a gasoline engine by 2% to run your AC) out of waste exhaust gasses has been tested and the equipment needed would be so heavy as to reduce fuel economy dragging all that weight around, and add significantly to to the complexity of the car, driving up costs.
posted by lalochezia at 9:16 AM on July 28, 2010 [1 favorite]
Any aerodynamics geek will tell you that at the speeds of ordinary fans there just isn't much efficiency to be gained, a properly curved flat plate works just fine. It's only when you're dealing with hundreds to thousands of horsepower -- aircraft propellers/rotors and gas turbines -- that you can improve significantly on a curved flat plate.
posted by phliar at 10:00 AM on July 28, 2010 [1 favorite]
« Older Captured: America in Color from 1939-1943 | VOTE FOR ME AND IF I WIN I WILL IMMUNE YOU FROM... Newer »
...but buildings are too cold because they're... August 3, 2015
Suburbia was our manufactured manifest destiny March 13, 2013
Unintended air conditioned consequences July 10, 2012
Yarchive - Notes from the hinterland. May 19, 2010
Chill, Toronto August 17, 2004
coolingtechnology
thermalcooler


text:
Q: Dynamics CRM - How to get the Message default display string Does anyone know how to use C# to get the Default Display String for a Message?
The Default Display String is the first column displayed when you open a Solution, select an Entity (such as Case), and then select Messages.  It contains values like "A Parent Case cannot have more than {0} child cases. Contact your administrator for more details."
The DisplayString Entity seems like the right place, but it only has the CustomDisplayString and the PublishedDisplayString, and not the default display string.  Microsoft have confirmed that the Default Display String is not in the DisplayString Entity, but they don't say where it can be found...
I have tried searching the Metadata Browser, and even went trawling through the Organisation and Config databases, but no luck.
Any help greatly appreciated ...

A: While this doesn't answer your question directly, it's a clue.
I checked a bit in the database, then searched for the Account entity message "Existing Account?" in the file system.
It's in this DLL:
C:\Program Files\Microsoft Dynamics CRM\CRMWeb\bin\Microsoft.Crm.Application.Components.Strings.dll

As far as accessing strings in that DLL from C# goes, I'm currently at a loss. You might want to create a MSFT ticket to see if they have any further suggestions. Another thought is that if you're targeting a particular entity, or a few entities, maybe copy the default message to the CustomDisplayString for the messages you're interested in.


text:
HKIA Sets New Records in July for Monthly Passenger Number and Flight Movements
(HONG KONG, 12 August 2018) – Hong Kong International Airport (HKIA) achieved new monthly records in passenger traffic and flight movements in July, breaking the previous records set in the same month a year ago. During the month, passenger volume grew to 6.7 million, representing a year-on-year increase of 2.2%, while flight movements climbed 1.1% over the same period last year to 36,685. Cargo and airmail throughput remained steady in July at 433,000 tonnes compared to last year.
The growth in passenger traffic was mainly contributed by Hong Kong resident travel, which saw an 8% year-on-year growth over the same month last year. Overall passenger traffic to/from Mainland China, Europe and Japan recorded the most significant increases.
On the cargo front, transshipments recorded an increase of 9% year-on-year, driving the growth in cargo throughput. Amongst the key trading regions, traffic to/from North America and Southeast Asia increased most significantly.
Over the first seven months of 2018, passenger and cargo and airmail throughput both experienced year-on-year increases of 3.1%, reaching 43.6 million and 2.9 million tonnes respectively. Flight movements increased by 2.1% to 247,980 compared to the same period last year.
On a rolling 12-month basis, HKIA handled 74.2 million passengers, 5.1 million tonnes of cargo and airmail, and 425,770 flight movements, representing year-on-year growth of 4.2%, 4.7% and 2.7% respectively.
Meanwhile, HKIA is expecting the launch of a new airline service that will broaden the airport's extensive network even further, as part of its efforts to offer more convenience and choices to travellers. Michael Yuen, General Manager, Airport and Industry Collaboration, Airport Authority Hong Kong, said, "We are delighted to welcome EgyptAir, a new addition to HKIA's operating airlines, which will offer twice-weekly flights to and from Cairo via Bangkok starting from 18 September. The service will be further increased to three times per week from 28 October. We hope passengers enjoy the new service to this historic country, and we look forward to welcoming more new airlines adding even more destinations in the future."


text:
Q: HashSet vs ArrayList contains performance When processing large amounts of data I often find myself doing the following:
HashSet<String> set = new HashSet<String> ();
//Adding elements to the set
ArrayList<String> list = new ArrayList<String> (set);

Something like "dumping" the contents of the set in the list. I usually do this since the elements I add often contain duplicates I want to remove, and this seems like an easy way to remove them.
With only that objective in mind (avoiding duplicates) I could also write:
ArrayList<String> list = new ArrayList<String> ();
// Processing here
if (! list.contains(element)) list.add(element);
//More processing here

And thus no need for "dumping" the set into the list. However, I'd be doing a small check before inserting each element (which I'm assuming HashSet does as well)
Is any of the two possibilities clearly more efficient?

A: I've made a test so please check the result:
For SAME STRING items in a HashSet, TreeSet, ArrayList and LinkedList, here are the results for

*

*50.000 UUIDs

*

*SEARCHED ITEM : e608c7d5-c861-4603-9134-8c636a05a42b (index 25.000)

*hashSet.contains(item) ? TRUE 0 ms

*treeSet.contains(item) ? TRUE 0 ms

*arrayList.contains(item) ? TRUE 2 ms

*linkedList.contains(item) ? TRUE 3 ms

*5.000.000 UUIDs

*

*SEARCHED ITEM : 61fb2592-3186-4256-a084-6c96f9322a86 (index 25.000)

*hashSet.contains(item) ? TRUE 0 ms

*treeSet.contains(item) ? TRUE 0 ms

*arrayList.contains(item) ? TRUE 1 ms

*linkedList.contains(item) ? TRUE 2 ms

*5.000.000 UUIDs

*

*SEARCHED ITEM : db568900-c874-46ba-9b44-0e1916420120 (index 2.500.000)

*hashSet.contains(item) ? TRUE 0 ms

*treeSet.contains(item) ? TRUE 0 ms

*arrayList.contains(item) ? TRUE 33 ms

*linkedList.contains(item) ? TRUE 65 ms

Based on above results, there is NOT a BIG difference of using array list vs set. Perhaps you can try to modify this code and replace the String with your Object and see the differences then...
    public static void main(String[] args) {
        Set<String> hashSet = new HashSet<>();
        Set<String> treeSet = new TreeSet<>();
        List<String> arrayList = new ArrayList<>();
        List<String> linkedList = new LinkedList<>();

        List<String> base = new ArrayList<>();

        for(int i = 0; i<5000000; i++){
            if(i%100000==0) System.out.print(".");
            base.add(UUID.randomUUID().toString());
        }

        System.out.println("\nBase size : " + base.size());
        String item = base.get(25000);
        System.out.println("SEARCHED ITEM : " + item);

        hashSet.addAll(base);
        treeSet.addAll(base);
        arrayList.addAll(base);
        linkedList.addAll(base);

        long ms = System.currentTimeMillis();
        System.out.println("hashSet.contains(item) ? " + (hashSet.contains(item)? "TRUE " : "FALSE") + (System.currentTimeMillis()-ms) + " ms");
        System.out.println("treeSet.contains(item) ? " + (treeSet.contains(item)? "TRUE " : "FALSE") + (System.currentTimeMillis()-ms) + " ms");
        System.out.println("arrayList.contains(item) ? " + (arrayList.contains(item)? "TRUE " : "FALSE") + (System.currentTimeMillis()-ms) + " ms");
        System.out.println("linkedList.contains(item) ? " + (linkedList.contains(item)? "TRUE " : "FALSE") + (System.currentTimeMillis()-ms) + " ms");
    }

A: If you don't need a list, I would just use a Set and this is the natural collection to use if order doesn't matter and you want to ignore duplicates.
You can do both is you need a List without duplicates.
private Set<String> set = new HashSet<>();
private List<String> list = new ArrayList<>();

public void add(String str) {
    if (set.add(str))
        list.add(str);
}

This way the list will only contain unique values, the original insertion order is preserved and the operation is O(1).

A: The ArrayList uses an array for storing the data. The  ArrayList.contains will be of O(n) complexity. So essentially searching in array again and again will have O(n^2) complexity.
While HashSet uses hashing mechanism for storing the elements into their respective buckets. The operation of HashSet will be faster for long list of values. It will reach the element in O(1).

A: The set will give much better performance (O(n) vs O(n^2) for the list), and that's normal because set membership (the contains operation) is the very purpose of a set.
Contains for a HashSet is O(1) compared to O(n) for a list, therefore you should never use a list if you often need to run contains.

A: You could add elements to the list itself.
Then, to dedup -
HashSet<String> hs = new HashSet<>(); // new hashset
hs.addAll(list); // add all list elements to hashset (this is the dedup, since addAll works as a union, thus removing all duplicates)
list.clear(); // clear the list
list.addAll(hs); // add all hashset elements to the list

If you just need a set with dedup, you can also use the addAll() on a different set, so that it will only have unique values.

A: I did a small trivial test of the "contains" method using random strings on Java 17 using TreeSet, HashSet and ArrayList.
The break even point is around 5 elements in the collections.
4 or less elements, ArrayList is faster.
6 or more elements, HashMap is faster.
Intuitively, i would have thought that the 5 value would be much higher and that TreeSet would have outperformed HashSet for smaller sizes.


The International Conference on Compute and Data Analysis (ICCDA), is an anual conference hold each year in United States. It is an international forum for academia and industries to exchange visions and ideas in the state of the art and practice of compute and data analysis.
The previous edition of ICCDA was held in Florida Polytechnic University, Lakeland, Northern Illinois University (NIU) DeKalb and University of Hawaii Maui College, Kahului .The ICCDA 2020 conference will be located in International Technological University, USA, in Silicon Valley, San Jose.
We believe the final program will be the result of a highly selective review process designed to include the best work of its kind in every category.You are cordially invited to submit your recent research work to the ICCDA 2020.
The manuscript in double-column ACM format, up to10 pages. Manuscripts must be written in English and follow the instructions at ACM Word Template for SIG Site.
The ACM conference proceedings, will be included in the major data base, EI Compendex, Scopus, etc,the proceedings will be distributed during the Conference.
For all general questions, please contact Ms. Amy Hu iccda_info@163.com.


I'm currently using the newest version of NS 22.7.1.32 and Windows 10 and yes I reinstalled NS and it doesn't fix this issue.
Can anyone confirm the same bug or its just my installation?
I see the same thing as in your 1st image on all Settings page headers on my NS Premium on Win 10 AV and on Comcast's Norton Security Suite on WIN 7.
It appears to a glitch in the code for all the versions of 22.7.1.32.
Anyone else feel free to comment.
Well, I'm sure that this small issue won't take more time than like 1 minute to fix, so Norton team should covered this pretty soon, probably with the next big patch release.
Wow interesting, so now it looks like this issue doesn't effect all users.
What about the other users?
Are you referring to the ? in a little box? That brings you to a Help notice on the Web.
I too see what is in the first image. I'm using Norton Security Premium 22.7.1.32, on Win 10 AU.
After updated my Norton Security Premium to the newest version 22.8.0.50 this issue still persist, just hope this bug won't be overlooked.
Of course, I know this issue isn't a problem at all but you know... you always want your product to be perfect in every way, right?
This is likely not very high on the priority list. One small part of a graphical item that does not affect the operation of the product may not even get looked at until the next major release.
I would not worry about it as long as your product is working correctly.
Yes, Of course I understand that it's not kind of issue that has to be solved as soon as possible, but on the other hand, how much time this thing should take to fix? 30 seconds? 1 minute? I'm pretty sure it won't take more time than that.
But would you really want the programmers to be pulled from fixing all the other problems you see reported here? Plus any developments of future updates.
It may only take 1 or two minutes to fix, but you first have to find it in the code, and then the best programming practices demand you test any changes before release to ensure no typos etc. So total time is not exactly a 1 or 2 minutes.
@peterweb I totally agree. As I said before I don't want to make with this issue a big deal and set a high priority level to respond... I just hope this bug won't be miss and overlooked, that's all.
I followed the initial thread entry to see what the glitch was, and I have it too with NS 22.8.0.50. The top and sides of the ? box are drawn but the bottom is missing. I am at native resolution on my monitor and 100% text sizing so those are unlikely factors.
More importantly, the Support link by clicking on the ? functions as expected.
Conclusion: I can live with the "issue."
I confirm that this bug has been fixed with new 22.9 release of Norton Security.


text:
/*
 * source.h
 *
 *  Created on: Mar 9, 2012
 *      Author: aitor
 */

#ifndef REC_FRAMEWORK_VIEWS_SOURCE_H_
#define REC_FRAMEWORK_VIEWS_SOURCE_H_

#include <boost/filesystem.hpp>
#include <boost/algorithm/string.hpp>
#include <pcl/io/pcd_io.h>
#include <pcl/apps/3d_rec_framework/utils/persistence_utils.h>
#include <pcl/filters/voxel_grid.h>
#include <pcl/common/transforms.h>

namespace bf = boost::filesystem;

namespace pcl
{
  namespace rec_3d_framework
  {

    /**
     * \brief Model representation
     * \author Aitor Aldoma
     */

    template<typename PointT>
      class Model
      {
        typedef typename pcl::PointCloud<PointT>::Ptr PointTPtr;
        typedef typename pcl::PointCloud<PointT>::ConstPtr PointTPtrConst;

      public:
        boost::shared_ptr<std::vector<PointTPtr> > views_;
        boost::shared_ptr<std::vector<Eigen::Matrix4f, Eigen::aligned_allocator<Eigen::Matrix4f> > > poses_;
        boost::shared_ptr<std::vector<float> > self_occlusions_;
        std::string id_;
        std::string class_;
        PointTPtr assembled_;
        typename std::map<float, PointTPtrConst> voxelized_assembled_;

        bool
        operator== (const Model &other) const
        {
          return (id_ == other.id_) && (class_ == other.class_);
        }

      PointTPtrConst
      getAssembled (float resolution)
      {
        if(resolution <= 0)
          return assembled_;

        typename std::map<float, PointTPtrConst>::iterator it = voxelized_assembled_.find (resolution);
        if (it == voxelized_assembled_.end ())
        {
          PointTPtr voxelized (new pcl::PointCloud<PointT>);
          pcl::VoxelGrid<PointT> grid_;
          grid_.setInputCloud (assembled_);
          grid_.setLeafSize (resolution, resolution, resolution);
          grid_.setDownsampleAllData(true);
          grid_.filter (*voxelized);

          PointTPtrConst voxelized_const (new pcl::PointCloud<PointT> (*voxelized));
          voxelized_assembled_[resolution] = voxelized_const;
          return voxelized_const;
        }

        return it->second;
      }
    };

    /**
     * \brief Abstract data source class, manages filesystem, incremental training, etc.
     * \author Aitor Aldoma
     */

    template<typename PointInT>
    class Source
    {

    protected:
      typedef Model<PointInT> ModelT;
      std::string path_;
      boost::shared_ptr<std::vector<ModelT> > models_;
      float model_scale_;
      bool filter_duplicate_views_;
      bool load_views_;

      void
      getIdAndClassFromFilename (std::string & filename, std::string & id, std::string & classname)
      {

        std::vector < std::string > strs;
        boost::split (strs, filename, boost::is_any_of ("/\\"));
        std::string name = strs[strs.size () - 1];

        std::stringstream ss;
        for (int i = 0; i < (static_cast<int> (strs.size ()) - 1); i++)
        {
          ss << strs[i];
          if (i != (static_cast<int> (strs.size ()) - 1))
          ss << "/";
        }

        classname = ss.str ();
        id = name.substr (0, name.length () - 4);
      }

      void
      createTrainingDir (std::string & training_dir)
      {
        bf::path trained_dir = training_dir;
        if (!bf::exists (trained_dir))
        bf::create_directory (trained_dir);
      }

      void
      createClassAndModelDirectories (std::string & training_dir, std::string & class_str, std::string & id_str)
      {
        std::vector < std::string > strs;
        boost::split (strs, class_str, boost::is_any_of ("/\\"));

        std::stringstream ss;
        ss << training_dir << "/";
        for (size_t i = 0; i < strs.size (); i++)
        {
          ss << strs[i] << "/";
          bf::path trained_dir = ss.str ();
          if (!bf::exists (trained_dir))
          bf::create_directory (trained_dir);
        }

        ss << id_str;
        bf::path trained_dir = ss.str ();
        if (!bf::exists (trained_dir))
        bf::create_directory (trained_dir);
      }

    public:

      Source() {
        load_views_ = true;
      }

      float
      getScale ()
      {
        return model_scale_;
      }

      void
      setModelScale (float s)
      {
        model_scale_ = s;
      }

      void setFilterDuplicateViews(bool f) {
        filter_duplicate_views_ = f;
        std::cout << "setting filter duplicate views to " << f << std::endl;
      }

      void
      getModelsInDirectory (bf::path & dir, std::string & rel_path_so_far, std::vector<std::string> & relative_paths, std::string & ext)
      {
        bf::directory_iterator end_itr;
        for (bf::directory_iterator itr (dir); itr != end_itr; ++itr)
        {
          //check if its a directory, then get models in it
          if (bf::is_directory (*itr))
          {
#if BOOST_FILESYSTEM_VERSION == 3
            std::string so_far = rel_path_so_far + (itr->path ().filename ()).string() + "/";
#else
            std::string so_far = rel_path_so_far + (itr->path ()).filename () + "/";
#endif

            bf::path curr_path = itr->path ();
            getModelsInDirectory (curr_path, so_far, relative_paths, ext);
          }
          else
          {
            //check that it is a ply file and then add, otherwise ignore..
            std::vector < std::string > strs;
#if BOOST_FILESYSTEM_VERSION == 3
            std::string file = (itr->path ().filename ()).string();
#else
            std::string file = (itr->path ()).filename ();
#endif

            boost::split (strs, file, boost::is_any_of ("."));
            std::string extension = strs[strs.size () - 1];

            if (extension.compare (ext) == 0)
            {
#if BOOST_FILESYSTEM_VERSION == 3
              std::string path = rel_path_so_far + (itr->path ().filename ()).string();
#else
              std::string path = rel_path_so_far + (itr->path ()).filename ();
#endif

              relative_paths.push_back (path);
            }
          }
        }
      }

      void
      voxelizeAllModels (float resolution)
      {
        for (size_t i = 0; i < models_->size (); i++)
        {
          models_->at (i).getAssembled (resolution);
        }
      }

      /**
       * \brief Generate model representation
       */
      virtual void
      generate (std::string & training_dir)=0;

      /**
       * \brief Get the generated model
       */
      boost::shared_ptr<std::vector<ModelT> >
      getModels ()
      {
        return models_;
      }

      boost::shared_ptr<std::vector<ModelT> >
      getModels (std::string & model_id)
      {

        typename std::vector<ModelT>::iterator it = models_->begin ();
        while (it != models_->end ())
        {
          if (model_id.compare ((*it).id_) != 0)
          {
            it = models_->erase (it);
          }
          else
          {
            it++;
          }
        }

        return models_;
      }

      bool
      modelAlreadyTrained (ModelT m, std::string & base_dir, std::string & descr_name)
      {
        std::stringstream dir;
        dir << base_dir << "/" << m.class_ << "/" << m.id_ << "/" << descr_name;
        bf::path desc_dir = dir.str ();
        std::cout << dir.str () << std::endl;
        if (bf::exists (desc_dir))
        {
          return true;
        }

        return false;
      }

      std::string
      getModelDescriptorDir (ModelT m, std::string & base_dir, std::string & descr_name)
      {
        std::stringstream dir;
        dir << base_dir << "/" << m.class_ << "/" << m.id_ << "/" << descr_name;
        return dir.str ();
      }

      void
      removeDescDirectory (ModelT m, std::string & base_dir, std::string & descr_name)
      {
        std::string dir = getModelDescriptorDir (m, base_dir, descr_name);

        bf::path desc_dir = dir;
        if (bf::exists (desc_dir))
        bf::remove_all (desc_dir);
      }

      void
      setPath (std::string & path)
      {
        path_ = path;
      }

      void setLoadViews(bool load) {
        load_views_ = load;
      }
    };
  }
}

#endif /* REC_FRAMEWORK_VIEWS_SOURCE_H_ */

redpajama_set_name: RedPajamaGithub


Silk screening brings out a more vibrant colour on logos as apposed to digital and transfer based.
The shirts are fruit of the loom and tend to fit a tad smaller that other brands, we suggest ordering a size larger.
Shrinkage lays in the hand of the washer, cold water works best.


We take pride and joy being the first Salt water specialty store in Western New York since 1992. Throughout our 25 years in business, We have helped numerous hobbyist and businesses setting up and maintaining successful Eco–reef systems or just beautiful marine fish tanks.
In the city of Tonawanda WNY, the original Salt Water Paradise was established in 1992 by Joe and Annette Kozak – a husband and wife team, who are well known in the area, and respected and loved as Salt Water Paradise. People come from out of State and all over Western New York for all their aquatic needs, personal service, expertise, advice, and Friendship.
We are best known for our variety, selection and prices of Corals, Live Rock, Fish, Anemones, Invertebrate & Crustaceans. Whether you are a beginner, hobbyist, collector or an expert, we have everything that will tickle and suit your needs. Our Corals come in different shapes, sizes &color. Ranging from frag pieces to full-size colonies. They come from exotic locations around the world. For years we have been aqua culturing colonies to help protect and preserve our eco-reef systems.
The Seahorse has become one of our many trademarks. We have been buying, selling and caring for this magnificent creature for 22 years. Our suppliers are the best when it comes to handling & dealing with them in the wild. Upon their arrival, we make sure that they are well-taken care off, healthy & eating well before selling them. They truly are magnificent. Clean up crews are always beneficial for the tanks. They are a must for every hobbyist. We always have them in stock.
Our Live Rock is outstanding.They are beaming with red & pink coralline algae. The rock comes with sponges, barnacles & clams. We sell man-made aquaculture rocks fully cycled with the deepest purple coralline algae imaginable. The color of all our live rock is fantastic.


I remember the first time I was introduced to SEO.
I was sitting in a dark conference room as my then boss presented his computer screen and walked me through the basics of how search engines work. I don't know what expression I had on my face, but it was probably a blend of dumbfounded and confused.
Search engines on their own weren't new to me. I typed thousands of phrases into search bars throughout my childhood, but I never understood the inner workings of how Google decided which websites were worth showing first.
Now I was realizing there were a lot of factors that went into how likely your website was to show up on the first page of Google, and they all worked together in harmony if you approached it from the right perspective.
Two hours later, the meeting ended and I found myself back in my office chair, ironically typing "what is SEO" into Google. That was just four years ago, and I haven't stopped learning about SEO since.
Whether the term "SEO" is a brand new concept or something you've been trying to learn on your own, the first step is in understanding what it is. Only then can you can use the definition to influence your optimization strategy.
What is the definition of SEO, and why does it matter?
Search engine optimization, commonly abbreviated to SEO, is the practice of optimizing your website for search engines.
This is done by providing quality, relevant, and easily readable content for users that builds trust with your audience. The better your SEO, the more likely you are to rank well in search engine results for specific keywords.
This blog post was created to be your all-in-one guidebook to understanding the basics of search engine optimization.
You'll find easily digestible definitions for the most crucial SEO terms, helping you cut through jargon confusion and get back to optimizing your website the right way.
As with anything, let's start with the basics. Although you may have heard some of these search engine optimization terms thrown around before, it's good to revisit their definitions to make sure you understand what each term encompasses.
When someone says "search engine", do you immediately think of Google? The act of searching for something on Google, or "googling", has even become a verb in the dictionary.
Google, along with any other search engines, solely exists to helps users find the most relevant answers to their questions.
When a user types in a keyword or question, the search engine will present top results for the user to browse through in what's called a search engine results page, commonly abbreviated to SERP. Your main goal is to organically get to the top of the SERP for relevant keywords in your industry, but more on this later.
You probably have heard about the Facebook or Instagram algorithm changes that seem to be happening every few months, but did you know search engines use their own algorithm?
While creating an algorithm may sound like rocket science, understanding what it is doesn't have to be. An algorithm, in simple terms, is a step-by-step process that analyzes data to solve a specific problem. In this case, a search engine will use an algorithm to connect its user with the best answer to their question.
This is probably a term you've heard in the digital marketing space, but how often do people actually describe what keywords are, much less how to find them? That's why we're putting an emphasis on understanding keyword basics within this Tradecraft issue.
Let's break down what a keyword is in everyday language. A keyword is a term or phrase that tells search engines what your content is about.
If you were to write a blog post on successful email marketing metrics, common keywords you could include would be "open rate" or "deliverability". These are keywords your audience will be searching for around your specific blog topic, so search engines will be more likely to prioritize your resource over another that doesn't include this information.
Now that you know what a keyword is, the definition of a search query will be simple to grasp. When a user types a keyword or phrase into their search bar, it's called a search query.
Instead of only performing a keyword search, which we talk about in-depth with this Tradecraft blog post, we also want to consider the "why" behind the user's search query.
What is the reasoning behind their search? Is it to do research on a new product, find the best information on a hot topic, or to simply have their question answered?
Search engines like Google are becoming better at understanding search intent, which means it needs to be a part of your search optimization strategy.
Search engine optimization is a kind of inbound marketing, but what does that term mean? Inbound marketing is the process of attracting new leads and business through your own content creation. This can be through blog posts, podcast episodes, social media marketing, video creation, and more.
Depending on how familiar you are with the SEO industry, you may have heard the terms "black hat" and "white hat" used before.
The main thing you need to know is that white hat SEO refers to sustainable and organic tactics for ranking in search engines, while black hat SEO practices are aggressive and don't follow search engine guidelines.
We'll classify each tactic covered in the rest of this article as white hat SEO or black hat SEO so you can decipher the good, bad, and ugly practices in search engine optimization. Keep reading on for more information about how this relates to on-page vs. off-page SEO.
On-page SEO refers to the practice of optimizing specific pages within your own website in order to rank well in search engines. There are dozens of best practices you can follow to increase your ability to show up on the first page of Google. Here are the on-page SEO terms you need to know.
The definition of site speed is pretty self-explanatory, but to make sure we're all on the same page (yes, bad SEO pun), it is the speed at which your website loads. Site speed is incredibly important to your user as attention spans continue to shrink, meaning it's also important to search engines. Google's PageSpeed Insights can help you check your site speed.
Search volume refers to the number of people who are searching for a specific keyword within a given timeline. Search volume can change over time, so it's important to do ongoing keyword research to understand how it fluctuates.
If a keyword has a high keyword difficulty score, that usually means there is more competition for ranking organically for the keyword.
For example, keywords in insurance and legal professions are far more competitive than keywords for freelance graphic designers. Understanding the keyword difficulty of your keywords will help you approach SEO from a more realistic, actionable perspective. Tools like ahrefs can help you find the difficulty score for your keywords.
You may be wondering how in the world search engines know all of your website information. When a search engine analyzes your site, they will use a site crawler (or search engine spider) to read and assess your content. Site crawlers also provide up-to-date data, meaning consistent and quality content publishing is key.
As defined by Google, a sitemap is "an XML file where you can list the web pages of your site to tell Google and other search engines about the organization of your site content." By having a list of all the pages of your website, it helps site crawlers more easily read the file so it can intelligently crawl your site.
Each page on your website has a title tag, which tells search engines what that page is specifically about. It's smart to put specific keywords in your title tags in order to rank better for those keywords.
For example, if you are creating a resource specifically for professional bloggers who need help with Instagram marketing, you can optimize that page with keywords specific to your intended audience and resource topic. Having a niche greatly helps with your SEO.
Meta descriptions are meant to summarize your page's content in 320 characters or less. It shows up frequently in SERPs underneath your highlighted blue title tag.
Within your page content, you can break up your text with header tags that tell search engines and users what your content will cover. You'll improve your SEO value for keywords you place in the header tag. This will also create extra visual appeal because you will be using optimal formatting techniques.
Did you know that search engines can't read images? Well, at least not in the way we do. Site crawlers can only read text, so they rely on your image's alt-text excerpt to read your images. If you publish an infographic on your best blogging tips, you'll want to also include keywords that are relevant to the infographic topic in the alt-text to describe what it entails.
Remember when we talked about black hat SEO tactics? Duplicating content is definitely one of them. While you may think it is easier to copy and paste the same content from multiple pages of your website, it hurts your search engine ranking.
This also goes for content that has been duplicated from other websites. Not only is this bad for your SEO, but you'll also run into some legal trouble if you are copying content from other people's websites. Focus on your own work and optimize that instead.
Canonical tags prevent duplicate content issues on your site. If you have multiple versions of similar content, you'll want to pick one "canonical" version and point search engines to that. Using the canonical tag will improve your SEO while allowing you to highlight content from third party websites or other pages without your ranking taking a hit.
If you have a page on your website that you have since changed the permalink (which means its URL structure) or have another page you would like to redirect all its traffic to, you will want to set up a 301 redirect.
Nofollow links tell search engines not to follow a certain page. This means that if you put a "nofollow" label at the end of your third-party sourced link, you aren't passing any of the SEO value to their website. Can nofollow links still be good for your SEO? Yes, and Moz breaks down why.
Have you ever seen a blog post with dozens of keywords listed at the top of the page? This is called keyword stuffing, and it is a bad black hat SEO tactic. We recommend staying away from keyword stuffing and instead weave your keywords into your content. You want to write for humans, not just search engines.
Keyword stuffing, which we addressed above, is the nemesis of readability. If you create content that includes dozens of random keywords, your readability score will be very low. Search engines want to promote content that users will enjoy, so creating content that is accessible and easily readable is important to SEO.
Have you ever searched for a question on Google and before listing advertised links and organic search results, it shows a highlighted box with an answer? This is called a rich snippet.
Google has a special algorithm for assessing the quality, traffic, and overall relevancy of the answer you provide through your content. If the site crawler deems the page as having the right answer, Google will promote it as the rich snippet for answering that specific question.
The rich snippet always shows a small excerpt of the page content to quickly answer the user's question, and it's often paired with an image taken from the website page. Being featured as a rich snippet can greatly increase your traffic as it is always the first result on the SERP.
We just covered some of the most important terms for on-page SEO, but what about ranking factors that fall outside of your own website? We break down the most important definitions and tactics that fall under the off-page SEO umbrella, helping you improve your SEO beyond your own content.
Your domain is simply your web address. For example, ours is convertkit.com but yours can end in .co, .org, or any other extension. Did you know that by consistently publishing relevant content, you're strengthening your domain?
Your domain authority is a search engine ranking score that helps you understand how well your domain can rank in SERPs. If your domain has a high domain authority, it means that it is trusted by users and search engines to provide quality content. This has a very positive effect on your SEO.
Much like domain authority, your page authority score assesses how likely your page is to rank in search engines. Page authority scores range from one to 100. The higher your score, the stronger your chances of ranking.
Broken links are a common culprit of poor SEO. If you delete a website page and don't include a 301 redirect link (like we talked about above), this will result in a broken link. If you transfer domains or change your permalinks, make sure you have redirects in place to make the transition process smooth. We also recommend running your website through a broken link test before your relaunch.
Backlinks are earned links that are placed in another website that point back to your domain. This tells search engines that your content is of high quality because other sources are sharing and linking to your original content.
Buying backlinks is a common black hat SEO tactic, and it will hurt your SEO if you take part in such practices. Backlinks can only help your SEO if they are organically earned and come from reputable sources.
On the topic of earning backlinks, doing outreach can help you organically grow your SEO if it's done in the right way. If you write a blog post that may be relevant to another blogger or entrepreneur's website, you can write them an email to tell them about it and see if they'd like to share it with their audience.
When you decide to do outreach, make sure you personalize your emails and include why it would be relevant to their brand and audience. If you make it all about you, your email will end up in the trash can.
It's even better if you can build a relationship with the person you are reaching out to, either through commenting on their blog, connecting with them on social media, or replying to their email newsletters. The less spammy the request, the better!
Now you can put these SEO terms and definitions into action!
Wow, we just covered a lot of ground with this SEO glossary. I know it's a lot of information, so take a quick break before you dive back into what your SEO strategy will be.
How do you plan to create a search engine optimization plan for your own blog and website? Let us know in the comment section below!
And don't forget to download your SEO cheat sheet for quick referencing!


Contact us for rates or schedule your appointment online.
Use the form below to tell us about your legal inquiry. To help us best serve your inquiry, we recommend that you first describe the issue you're having before telling us what you want to achieve. You may also email or call us to make an appointment. Our general response time is one business day.


text:
This is part of a series
Critics of State Education Part 1: Joseph Priestley
by George H. Smith
Smith begins his series on the critics of state education with a discussion of Joseph Priestley, the Englishman who discovered oxygen.
The distinguished historian Bernard Bailyn, writing in 1960, argued that books on the history of American education had become "a form of initiation" for those in the teaching profession – a means to illustrate the purportedly glorious achievements of public schools. Such texts were "the patristic literature of a powerful academic ecclesia," and the entire field "displayed the exaggeration of weakness and extravagance of emphasis that are the typical results of sustained inbreeding."
This situation changed dramatically during the 1970s, which saw an outpouring of "revisionist" studies on the history of education by Michael Katz, David Tyack, Clarence Karier, Paul Violas, Colin Greer, and others. Some of the most important of these revisionist works, such as those by Joel Spring and E.G. West, were written from a libertarian perspective.
This new wave of historians demolished the rosy picture of state schooling drawn by conventional historians, such as Ellwood Cubberley, which depicted the victory of state schooling in America as a triumph of humanitarian reform over the reactionary critics of state education. The revisionists presented a different perspective: The battle for tax-supported compulsory schooling was a recurring story of political power, social control, and the growth of a powerful, unresponsive bureaucracy.
Revisionists argued that the welfare of children, such as teaching literacy skills, was a relatively minor concern of those reformers who pushed for increased state intervention in education. Instead, nineteenth-century reformers had various social goals foremost in mind – such as "Americanizing" immigrants, "Christianizing" Catholics, teaching a proper respect for government, and inculcating the values of the status quo.
Revisionist works on the history of education are of uneven value, to say the least. Some blame the problems of American education on "capitalism" – that ever-popular bogeyman of restless intellectuals. For example, in Schooling in Capitalist America (1976), Samuel Bowles and Herbert Gintis throw everything except the proverbial kitchen sink at the feet of capitalism, including "drugs, suicide, mental instability, personal insecurity, predatory sexuality, depression, loneliness, bigotry, and hatred…." This is alarming news, indeed, but it is at least good to know that such problems do not exist in noncapitalistic societies. (Only academics could get away with this kind of Marxian claptrap.)
Even among the better revisionist works we find a troubling omission: Most pay scant attention, if any, to the libertarian critics of state schooling who flourished during the eighteenth and nineteenth centuries. Yet these advocates of free-market education – or "Voluntaryists," as they called themselves in nineteenth-century Britain – predicted that governmental control of education would result in precisely those problems that revisionists later complained about.
Voluntaryists received little attention in traditional histories of education. Some of the most important figures were never mentioned at all, and to the extent they were discussed they were portrayed in a highly unfavorable light. Those Voluntaryists who warned against the pitfalls of state education, and who desired an educational free market instead, were summarily dismissed as doctrinaire advocates of laissez-faire who stubbornly resisted social improvement, especially for the lower classes. All this despite the fact that many Voluntaryists were innovators in education. They were frequently the educational progressives of their day, so to speak, who established and supported schools, funded by voluntary means, that were free to those who could not afford to pay.
This most important Voluntaryist of the eighteenth century was the Englishman Joseph Priestley (1733-1804), an accomplished and highly regarded amateur scientist who is best known for his discovery of oxygen. (He also invented soda water.) Priestley, a minister who called himself a "liberal Unitarian," was one of the most remarkable polymaths of the eighteenth century. A friend of Benjamin Franklin and other leading scientists, Priestley wrote over 150 books on an astonishing range of subjects, including philosophy, science, theology, grammar, European history, the history of Christianity, and new methods of education.
Priestley also wrote one of the finest and most consistent libertarian tracts of the eighteenth century, An Essay on the First Principles of Government (1771), which included a previously published piece, Remarks on Dr. Brown's Code of Education. It is here that we find Priestley's trenchant criticism of state education.
Dr. John Brown was a popular author who wrote several books bemoaning the supposed decadence of English culture. In Thoughts on Civil Liberty, Brown repeatedly invoked the Spartan model of uniform state education as a remedy for England's problems. Priestley, who believed that diversity and competition are essential preconditions of progress (most notably the progress of knowledge), would have none of this. Sparta was "the worst government we read of" in the ancient world, "a government which secured to a man the fewest of his natural rights, and of which a man who had a taste for life would least of all choose to be a member." Priestley continued:
While the arts of life were improving in all the neighbouring nations, Sparta…continued the nearest to her pristine barbarity; and in the space of near a thousand years (which includes the whole period in which letters and the arts were the most cultivated in the rest of Greece) produced no one poet, orator, historian, or artist of any kind. The convulsions of Athens, where life was in some measure enjoyed, and faculties of body and mind had their proper exercise and gratification, were, in my opinion, far preferable to the savage uniformity of Sparta.
Priestley understood that there must exist some fixed rules in every society, but, as an advocate of limited government, he maintained that governmental institutions, which ultimately rely on force, should be kept to the minimum required to maintain "the tolerable order of society." Within this legal framework all social institutions – including religious, commercial, and educational activities – should be left free to develop spontaneously: "It is an universal maxim, that the more liberty is given to every thing which is in a state of growth, the more perfect it will become…."
In the preface to his History and Present State of Electricity (1767), Priestley maintained that the history of science provides the best example of the progress of human knowledge. It is here that "we see the human understanding to its greatest advantage, grasping the noblest objects, and increasing its own powers, by acquiring to itself the powers of nature, and directing them to the accomplishments of its own views; whereby the security and happiness of mankind are daily improved."
Like many Enlightenment thinkers, Priestley believed that knowledge would continue to progress indefinitely, so long as proper conditions were maintained. But unlike those many Enlightenment thinkers who recommended state education, Priestley regarded educational freedom as essential to progress. As he put in An Essay on the First Principles of Government:
[I]f we argue from the analogy of education to other arts which are most similar to it, we can never expect to see human nature, about which it is employed, brought to perfection, but in consequence of indulging unbounded liberty, and even caprice in conducting it….From new, and seemingly irregular methods of education, perhaps something extraordinary and uncommonly great may spring. At least there would be a fair chance of such productions; and if something odd and eccentric should, now and then, arise from this unbounded liberty of education, the various business of human life may afford proper spheres for such eccentric geniuses.
Priestley continued with another attack on the Spartan model. His preference for the Athenian model of free-market education is clear:
Education, taken in its most extensive sense, is properly that which makes the man. One method of education, therefore, would only produce one kind of men; but the greater excellence of human nature consists in the variety of which it is capable. Instead, then, of endeavouring, by uniform and fixed systems of education, to keep mankind always the same, let us give free scope to every thing which may bid fair for introducing more variety. The various character of the Athenians was certainly preferable to the uniform character of the Spartans, or to any uniform national character whatever. Is it not universally considered as an advantage to England, that it contains so great a variety of original characters? And is it not, on this account, preferred to France, Spain, or Italy?
Uniformity is the characteristic of the brute creation.
Priestley's opposition to state education was based on more than abstract theory. In Priestley's day the established educational institutions of Oxford and Cambridge had degenerated to the point where they incurred severe criticisms by some leading British intellectuals. In his Memoirs of My Life and Writings, Edward Gibbon — author of Decline and Fall of The Roman Empire, one of the greatest historical works ever written – noted that he "spent fourteen months at Magdalen College [one of the constituent colleges at the University of Oxford]; they proved the fourteen months the most idle and unprofitable of my whole life." According to Gibbon, at Oxford "the greater part of the public professors have for these many years given up altogether even the pretence of teaching."
Incredible as the fact may appear, I must rest my belief on the positive and impartial evidence of a master of moral and political wisdom, who had himself resided at Oxford. Dr. Adam Smith assigns as the cause of their indolence, that, instead of being paid by voluntary contributions, which would urge them to increase the number, and to deserve the gratitude of their pupils, the Oxford professors are secure in the enjoyment of a fixed stipend, without the necessity of labour, or the apprehension of controul.
As academic tenure caused Oxford and Cambridge to stagnate, competitive Scottish Universities developed into the most renowned universities in Europe, attracting many of the best professors and students from Europe and America.
In England, Dissenters, or Nonconformists — i.e., Protestants who refused to subscribe to the Thirty-Nine Articles of the Anglican Church —were banned from attending Oxford and Cambridge. This proved to be a blessing in disguise, given the torpid condition of those universities. Dissenters established their own schools, known as Dissenting Academies, and these private institutions became the most innovative schools in England, often teaching the latest developments in science.
The irony of educational outlaws surpassing established universities in educational quality was not lost on Joseph Priestley, who taught at Warrington Academy (in Liverpool) for six years, beginning in 1761. As Priestley wrote in a letter to the English Prime Minister:
Shutting the doors of the universities against us, and keeping the means of learning to yourselves, you may think to keep us in ignorance and so less capable to give you disturbance. But though ignominiously and unjustly excluded from the seats of learning, and driven to the expedient of providing at a great expense for scientific education among ourselves, we have had this advantage, that our institutions, being formed in a more enlightened age, are more liberal and therefore better calculated to answer the purpose of a truly liberal education. Thus while your universities are pools of stagnant water secured by dams and mounds, our are like rivers which, taking their natural course, fertilise a whole country.
In my first Libertarianism.org essay I discussed how the libertarian appeal to liberty of conscience was extended to spheres other than religion. This is what we find in Priestley's call for educational freedom. As he wrote in Familiar Letters, Addressed to the Inhabitants of Birmingham (1790), "I see no reason why any one man should be compelled to pay for the religion of another man, any more than for his instruction in grammar, philosophy, or any thing else."
George H. Smith
George H. Smith was formerly Senior Research Fellow for the Institute for Humane Studies, a lecturer on American History for Cato Summer Seminars, and Executive Editor of Knowledge Products. Smith's fourth and most recent book, The System of Liberty, was published by Cambridge University Press in 2013.