I was doing some testing to see how useful the navigation targets would be in this year's game, mainly I was testing to see how far away the phone could detect the targets from. In my tests the phone could only detect the targets if they were less than 36 inches away. This isn't a very large distance and it makes the targets almost useless for navigation in your corner. Has anyone experienced these results, different results, or in general found a way to use the targets for anything other than travel between the crater and depot?
Last edited by Noah; 10-22-2018, 09:44 PM.
Well lit (including flash light - which is now illegal for this year) we could get 48 in. Decent accuracy at relatively short distances - falls off with increased distance (maybe a couple inches at 48" distance). More tests needed to see if accuracy rolloff is consistent enough to apply a scaling function.
This is with Moto G4 or Samsung S5 phone rear camera. We haven't had time to try a higher capability USB camera.
We have similar issues. We could detect the target but it was not always reliable more then 25 inches away. Also , one it detected a target, it was keep saying that it saw the target even when it is not visible in on the camera and only changed when a new target became visible. We used a block program posted in the forum made for this year challenge and printed out version 2 of the US..
Also , one it detected a target, it was keep saying that it saw the target even when it is not visible in on the camera and only changed when a new target became visible. We used a block program posted in the forum made for this year challenge and printed out version 2 of the US..


3mm Door Base Plate Packer to lift the base plate of the door and increase the height on the door and reduce the gap above the door.
Can be used where a greater lift is required of the base plate, to clear carpet, reduce gaps above doors or even out and uneven floor when fitting double doors.
Can be used with one or more other packers. 5mm Door Base Plate Packers are also available.
The base place packer mirrors the shape of our hydraulic door closer's base plate for a discrete way to increase the door height.


text:
Die römisch-katholische Pfarrkirche Ameis steht im Ort Ameis in der Marktgemeinde Staatz im Bezirk Mistelbach in Niederösterreich. Die Pfarrkirche hl. Nikolaus gehört zum Dekanat Laa-Gaubitsch im Vikariat Unter dem Manhartsberg der Erzdiözese Wien. Bis 1. September 2016 gehörte sie zum Dekanat Ernstbrunn. Die Kirche steht unter .

Geschichte
Im 12. Jahrhundert war Ameis ein Vikariat von Asparn an der Zaya. Eine Pfarre wurde im 14. Jahrhundert genannt. Die Kirche wurde 1624 den Minoriten inkorporiert. Der gotische Kirchenbau wurde barockisiert und im 18. Jahrhundert durch den Zubau eines südlichen Seitenschiffes östlich des Turmes erweitert.

Architektur
Die Kirche erhebt sich inmitten einer platzartigen Ausweitung der Hauptstraße des Ortes.

Kirchenäußeres
Die Kirchengebäude ist ein gotischer, barockisierter Bau mit einem mächtigen Südwestturm. Das Langhaus, das niedrigere Seitenschiff und der Chor sind unter einem hohen Satteldach mit Biberschwanzdeckung zusammengefasst. Am Chor befinden sich einfach abgetreppte Strebepfeiler mit Pultdächern. Im nordöstlichen Strebepfeiler ist ein stark beschädigtes, gotisches Relief mit figuralen Szenen und einem Wappen eingemauert. Das schlichte Langhaus hat Rundbogenfenster mit tiefen Fenstergewänden. Der wuchtige Südwestturm tritt etwas vor die Westfront. Er verfügt über rechteckige, mittelalterliche Schlitzfenster. Das Glockengeschoß stammt aus dem 16. Jahrhundert. Es ist mit abgefasten, rundbogigen Schallfenstern, einem achtseitigen, steinernen Pyramidendach und einem Spitzaufsatz mit abgerundeten Zwickeln als Übergang zum Polygon ausgestattet. Das südliche Seitenschiff aus dem 18. Jahrhundert verbindet den Turm und die eingeschossige Sakristei aus dem 17. Jahrhundert. Die Portalvorhalle mit Lisenengliederung und geschwungenem Giebel im Westen stammt aus dem 18. Jahrhundert.

Kircheninneres

Das dreijochige Langhaus hat eine Stichkappentonne auf eingestellten Wandpfeilern. Im Westen erhebt sich die Orgelempore über einer Flachdecke. Langhaus und Chor werden durch einen eingezogenen, korbbogigen Triumphbogen verbunden. Im einjochigen Chor mit Fünfachtelschluss befindet sich ein Kreuzgratgewölbe mit stuckierten Bändern und Stuckrosetten. Das zweijochige Seitenschiff mit Kreuzgratgewölben ist durch zwei Rundbogenarkaden zum Mittelschiff geöffnet.

Ausstattung

Der Hochaltar wurde gegen Ende des 18. Jahrhunderts geschaffen. Er verfügt über eine Säulenädikula mit Volutenaufsatz, seitliche Schnittfiguren der Heiligen Andreas und Matthäus sowie ein Altarbild des Heiligen Nikolaus aus dem 19. Jahrhundert. Die Seitenaltäre sind mit 1893 bezeichnet. Zur Ausstattung zählen außerdem eine Kanzel aus dem 18. Jahrhundert, eine Brüstungsorgel von Josef Silberbauer aus dem Jahr 1795 sowie ein achtseitiger, gotischer Taufstein. Die weitere Einrichtung stammt aus dem 19. Jahrhundert.

Literatur
 Georg Dehio (Begr.), Bernd Euler-Rolle u. a. (Bearb.): Niederösterreich nördlich der Donau (= Die Kunstdenkmäler Österreichs). 2. unveränderte Auflage. Berger, Wien 2010, ISBN 978-3-85028-395-3, S. 43f.

Weblinks

Ameis
Ameis
Ameis

Ameis
Staatz

Ameis
Gotisches Bauwerk in Niederösterreich
Ameis
Baudenkmal (Niederösterreich)

redpajama_set_name: RedPajamaWikipedia


I am coming out of marathon retirement after 17 years to join my good friend, Kathrine Switzer, in celebrating the 50th anniversary of her heroic and historic completion of the 1967 Boston Marathon. She has invited me to be one of only a handfull of males who will run with a phalanx of women supporting the 261 Fearless Foundation to raise funds for women's running programs.
I have never personally run a marathon to raise funds for a non-profit organization. Thus, I will ask you only this one-time to contribute to my Crowdrise account to help me reach my goal. I am back training through the harsh Boston weather and suffering through those long, cold and windy Sunday long runs. Please ease the pain by contributing in my name. Thanks in advance of your support.


The Bachelor's in Social Work (BSW) prepares students to work with individuals, families, groups, organizations, and communities to promote well-being and advocate for social justice. All course work includes hands-on activities that require students to use judgment and apply social work values.
A distinguishing feature of the program is the intensive senior year internship where students are placed in a social service agency, hospital, criminal justice setting, or school and receive mentoring from a specially trained social worker. The specially designed internships for Social Work majors provide students with excellent background in seeking employment.
As a generalist social worker, students help individuals and families access services and support their general well-being. Equally important, generalist social workers advocate for social justice by using inter-personal and analytic skills defined by the Council. The program supports students' development of analytic and inter-personal skills so they can be effective change agents.
On October 24, 2018, the Council on Social Work Education granted a second year of candidacy to the social work program. As a result, the program is scheduled to receive full accreditation in 2019. As of now, graduates of the College's Bachelor's in Social Work (BSW) program can be credentialed as Certified Social Workers by the State of New Jersey. This certification, which does not require passing a licensing exam, distinguishes BSW graduates applying for entry-level jobs in social welfare agencies.
Students pursuing a B.A. in Sociology have the option of taking three social work courses for a Concentration in Social Work.
Louise Murray, MSW, LSW, Ph.D.


text:
Home Editorial The Raping and Pillaging of Eastern Congo
EditorialFeatured
The Raping and Pillaging of Eastern Congo
Congolese civilian bare the brunt of the violence
The profits and riches to be gained from exploitation of Eastern Congo's natural resources continue to propel violence, pillage and the suffering of the Congolese people.
The African territory which includes Uganda, Rwanda and the Democratic Republic of Congo (DRC) has been in virtually a state of war since 1995; that is at war with each other. This has engaged the national armies, militias, 'civil defence' groups, looters, pillagers, child abductors and abusers, rapists and murderers. Each category is not mutually exclusive. Virtually every category contains most if not all of the sociopathic designations. One can add to this the United Nations Peacekeepers whose range of social debilities accurately mimics those whose peace they are purported to be keeping.
The wars in the Eastern Congo have been responsible for the deaths of millions of Congolese who paid the price of living in a very rich and unmanaged country with failing or non-existent civil institutions. These wars, centred mainly in eastern Congo (North and South Kivu and Maniema) have involved nine African nations and directly affected the lives of 50 million Congolese.
Between August 1998 and April 2004 some 3.8 million people died violent deaths in the DRC. Since 2004 this number has almost doubled. Many of these deaths were due to starvation or disease that resulted from the war, as well as from summary executions and capture by one or more of a group of irregular marauding bands. Millions more had become internally displaced or had sought asylum in neighbouring countries. Rape was endemic.
By 1996, the war and genocide in neighbouring Rwanda had spread across the border into the DRC. Rwandan Hutu militia forces (Interahamwe) were helped to escape from Rwanda by the French Army in Operation Tourquise. This allowed the creation of Hutu refugee camps in the DRC which were filled with Interahamwe escapees. Not surprisingly this attracted the attention of the victorious Tutsi in Rwanda and the Tutsis resident in the DRC (the Banyamulenge) who feared that these DRC-based Hutu camps would lead to attacks against Rwanda.
In October 1996, Tutsi-led Rwandan troops (RPA) entered the DRC with an armed coalition led by Laurent-Desire Kabila, known as the Alliance des Forces Democratiques pour la Liberation du Congo-Zaire (AFDL). Kabila was installed in power with the ouster of Mobuto on the 17 May 1997. Kabila declared himself president, consolidated power around himself and the AFDL, and renamed the country the Democratic Republic of Congo (DRC). The DRC's military was renamed the Forces Armees Congolaises (FAC).
As the FAC was being reorganised the Rwandan troops took over the security in the East. They were confronted by several competing militias:
-The Interahamwe militia of ethnic Hutus, mostly from Rwanda, which fought the Tutsi-dominated Government of Rwanda;
-Hutu members of the former Rwandan Armed Forces, believed to be responsible for the 1994 genocide of Tutsis in Rwanda, which also fought the Government of Rwanda;
-The Mai Mai, a loose association of traditional Congolese local defence forces, which fought the influx of Rwandan immigrants;
-The Alliance of Democratic Forces (ADF), made up of Ugandan expatriates and supported by the Government of Sudan, which fought the Government of Uganda; and
-Several groups of Hutus from Burundi fighting the Tutsi-dominated Government of Burundi.
During 1997, relations between Kabila and his former backers (Museveni of Uganda and Kagame of Rwanda) deteriorated. In July 1998, Kabila ordered all foreign troops to leave the DRC. They refused to leave; claiming that the DRC troops could not defend their interests from the exile groups operating the Eastern Congo. On 2 August 1997, fighting erupted throughout the DRC as Rwandan troops 'mutinied', and fresh Rwandan and Ugandan troops entered the DRC. Kagame ordered his troops to attack Kinshasa to depose Kabila in the hopes that his Banyamulenge Tutsi allies in the newly formed Rwandan-backed rebel group called the Rassemblement Congolais pour la Democratie (RCD) would take over. Soon after, Museveni created the rebel group called the Mouvement pour la Liberation du Congo (MLC) to fight for Uganda's interests and sent into the Congo thousands of Ugandan soldiers. This campaign was impeded when Angolan, Zimbabwean, and Namibian troops intervened on behalf of the DRC.
However, this left the Eastern Congo (where the war was being fought), in the hands of Uganda and Rwanda with some sections held by the Mai-Mai and Burundi. This created a situation where the occupying forces could engage in the massive looting of eastern DRC's riches. Numerous accounts and documents suggest that by 1997 a first wave of 'new businessmen' speaking only English, Kinyarwanda and Kiswahili had commenced operations in eastern DRC. Theft of livestock, coffee beans and other resources began to be reported with frequency. By the time the August 1998 war broke out, Rwandans and Ugandans (top officers and their associates) had a strong sense of the potential of the natural resources, especially coltan, and their locations in eastern DRC.
The Ugandan decision to enter the conflict in August 1998 was defended by some top military officials who had served in eastern Zaire during the first war and who had had a taste of the business potential of the region. The Ugandan forces were eager to move in and occupy areas where gold and diamond mines were located. In September 1998 this looting was put in the hands of General General Salim Saleh (born Caleb Afande Akandwanaho, 14 January 1960), Museveni's brother, a proven money-launderer, drug dealer, resource thief and plunderer. Salim Saleh formed a company which would supply the eastern Democratic Republic of the Congo with merchandise, and would return with natural resources. The project never materialised in this form, but took the form of pure looting and pillage under the protection of the President of Uganda, Yoweri Museveni.
Despite their claims of a security concern generating their interest in the DRC, some top army officials clearly had a hidden agenda: economic and financial objectives. A few months before the 1998 war broke out, General Salim Saleh and the elder son of President Museveni reportedly visited the eastern DRC. One month after the beginning of the conflict, General James Kazini was already involved in commercial activities. He already knew the most profitable sectors and immediately organised the local commanders to serve their economic and financial objectives.
This was mirrored in the activities of the Rwandans. At the heart of the financial setting was the Banque de commerce, du développement et d'industrie (BCDI) located in Kigali. This was the initial vehicle through which all revenues were passed at the initial stages of Rwandan and Ugandan engagement in the DRC. Then, when the war broke out the Rwandans retained the BCDI as their conduit and the Ugandans set up their own. The extraction of minerals rose to a fever pitch as hostilities began with no attention to safe or rational methods of extraction.
In September 1999, the UPDF local commander demanded the extraction of gold from the pillars of the Gorumbwa mine galleries in which dynamite was used. The galleries collapsed, leading to the death of a number of Congolese miners. Some months later, Ugandan soldiers who came to mine in the same area contracted respiratory disease. Even when the local commanders were informed about the dangers of these activities, there was an acceptable level of tolerance for death and disease
Local Congolese have been mining for years for their own benefit as artisanal miners. The novelty of their involvement lies in the fact that some of them were used as 'convincible labour' to mine gold, diamonds or coltan. In the Bondo locality within Equateur Province, young men from 12 to 18 years were recruited by Jean-Pierre Bemba. The Ugandan allies trained the recruits and shared with them the idea that the Ugandan army was an 'army of development' that aimed at improving ordinary people's living conditions. After the one-hour morning physical training session, they were sent to gold mines to dig on behalf of the Ugandans and Bemba.
In Kalima, the RPA commander Ruto enrolled two teams of local Congolese to dig coltan; these Congolese worked under the heavy guard of Rwandan soldiers. In the Kilo-Moto mineral district, Ugandan local commanders and some of the soldiers who guarded the different entry points of the mining areas allowed and encouraged the local population to mine. The arrangement between the soldiers and the miners was that each miner would leave at the entry/exit point one gram of gold every day. On average 2,000 individuals mined this large concession six days a week. It was so well organised that the business ran smoothly. On average 2kg of gold were delivered daily to the person heading the network.
The other form of organised extraction by the occupying forces involved the import of manpower for mining. Occupying forces brought manpower from their own countries and provided the necessary security and logistics. In particular, Rwanda utilised prisoners to dig coltan in exchange for a sentence reduction and limited cash to buy food. There were 1,500 Rwandan prisoners in the Numbi area of Kalehe alone. These prisoners were seen mining coltan while guarded by RPA soldiers.
The illegal exploitation of natural resources went beyond mineral and agricultural resources. It occurred in respect of financial transactions, taxes and the use of cheap labour. Local banks and insurance companies operating in Goma, Bukavu, Kisangani, Bunia and Gbadolite dealt directly with Kigali or Kampala. A system of tax collection – enforced in some cases – was implemented by MLC, RCD-ML and RCD Goma with their established Ugandan and Rwandan counterparts. In the rebels' own words, these taxes were aimed at 'financing or supporting the war effort'.
Indeed, part of the funds collected was sent to Kigali (in the case of RCD-Goma). In the case of the former RCD-ML and MLC, not only was part of the taxes sent to Kampala but also individual colonels would claim direct payment from RCD-ML. In Bunia and Bukavu, people protested, demonstrated and denounced this practice of abuse. In areas controlled by Bemba, peasants carrying palm oil on bicycles had to pay taxes on the bicycles. In the mining sector, direct extraction was carried out in three ways, namely (a) by individual soldiers for their own benefit; (b) by locals organised by Rwandan and Ugandan commanders; and (c) by foreign nationals for the army or commanders' benefit.
Bosco Ntaganda is wanted by the ICC
This was the pattern of exploitation of the DRC and its human and mineral wealth even when peace agreements, like the Lusaka Accords which supposedly ended the war, were signed. Instead of warring armies Eastern Congo became controlled by warlords and militia groups whose exploitation took the form of pillage, rape and murder. Most of these groups have affinities with either the Rwandan or Ugandan governments which handle the physical trade in the wealth which is exported. The Rwandans have been backing 'rebel' military warlords like Laurent Nkunda or Bosco Ntanganda. These provide the fig leaf for Rwanda's continuing rape of the Congo. Others do the same for Uganda. They operate with impunity. The people most responsible for the continuing atrocities are protected. These include Yoweri Museveni, Salim Saleh, Paul Kagame, James Kazini, Moses Ali, James Kabarebe, Taban Amin, Jean-Pierre Bemba, Laurent Nkunda, Bosco Ntanganda and a long list of people whose culpability is without question; many of whom have been named for atrocities again and again. Bemba was finally brought to the ICC to stand trial. This was more to do with his political opposition to Kabila Junior and the Central African Republic than his depredations in the Eastern Congo.
Theoretically, the United Nations has teams of peacekeepers in the DRC as MONUC (United Nations Organization Mission in the Democratic Republic of the Congo); since 1 July 2010, MONUC was renamed the United Nations Organization Stabilization Mission in the Democratic Republic of the Congo (MONUSCO). The track record of MONUC is not impressive. In the words of a Zimbabwean general: 'They are like tits on a bull. They are there but serve no useful purpose!' Two of the inbuilt reasons for their lack of success was (1) relying at the beginning on the French military who encamped at Ituri and refused to leave the city because the rebels killed two French officers on the first outing; and (2) relying on Rwandan troops to co-ordinate the fight against the rebels they are covertly supporting in the name of MONUSCO. This scheme offers limited optimism for the Congolese. In fact many peacekeepers of the MONUC were engaged in rape, murder and pillage for their own account. Some have been prosecuted and sent home. Their presence in the DRC adds to the fears of the population.
As this conflict is continuing, the world has turned its attention to another battle nearby; the fight against the Lord's Resistance Army (LRA). The LRA is a Ugandan organisation with a bloody history. The Ugandan reaction to the LRA has been equally brutal. In September 1996 the government of Uganda put in place a policy of forced displacement of the Acholi in the Gulu district into displacement camps. Since 1996 this policy has expanded to encompass the entire rural Acholi population of four districts – one million people. These displacement camps have some of the highest mortality rates in the world with an estimated 1,000 people dying per week. The LRA has derived most of its support from the displaced and dominated Acholi people who have been driven from their homes and whose families remain in displacement camps.
Joseph Kony (born 1961) is the head of the Lord's Resistance Army (LRA) He has declared that the LRA will conduct a political, military and spiritual campaign to establish theocratic government based on the Ten Commandments in Uganda. The LRA say that God sent spirits to communicate this mission directly to Kony. The LRA has earned a reputation for its untrammelled violence against the people of several countries, including northern Uganda, the Democratic Republic of Congo, and South Sudan. The LRA has abducted and forced an estimated 66,000 children to fight for them, and has also forced the internal displacement of over 2 million people since its rebellion began in 1986. There were many international attempts at peace and an end to the abduction of children by the LRA between 1996 and 2001. All of them failed to end the abductions, rape, child soldiers, and civilian casualties including attacks on refugee camps. After the September 11th attacks, the United States declared the Lord's Resistance Army a terrorist group and Joseph Kony a terrorist.
Following the breakdown of peace talks in late 2008, the National Security Council authorised AFRICOM to support a military operation (one of the first publicly-acknowledged AFRICOM operations) against the LRA, which was believed to be in the Congo at the time. AFRICOM provided training and US$1 million in financial support for 'Operation Lightning Thunder' – a joint endeavour of the Ugandan, Congolese and South Sudan forces in Congolese territory launched in December 2008 to 'eliminate the threat posed by the Lord's Resistance Army (LRA)'. According to the United Nations, the offensive 'never consulted with partners on the ground on the requirements of civilian protection. Stretching over a three-month period, it failed in its mission and the LRA scattered and retaliated against the Congolese population; over 1,000 people were killed and up to 200,000 displaced.
This battle against the LRA has to be seen as a continuation of the battles in Eastern Congo. In October 2011, US President Obama authorised the deployment of approximately 100 combat-equipped U.S. troops to central Africa. They will help regional forces 'remove from the battlefield' Joseph Kony and senior LRA leaders. 'Although the U.S. forces are combat-equipped, they will only be providing information, advice, and assistance to partner nation forces, and they will not themselves engage LRA forces unless necessary for self-defence', Obama said in a letter to Congress.
There is no doubt that the LRA is a vicious, sociopathic organisation which engages in brutal behaviour. However, the people who are leading the fight against the LRA (Yoweri Museveni and Paul Kagame) have committed and continue to commit equally outrageous crimes and attacks of a similar nature, especially among the displaced wanderers of the Eastern Congo, but are feted and rewarded by the US Government for their willingness to provide mercenaries for the US 'War on Terror' and the protection of the newly emerging oil industry in their countries and region. Unfortunately, the area in which the LRA conduct their atrocities is exactly where major new finds of oil have been discovered.
Eastern Congo is a mosaic of armed groups
Underpinning the Western interest in the region is the discovery of oil in Kenya, Uganda and along the shores of Lake Albert. The war between Sudan and South Sudan has made it imperative to find a route for the oil to reach the ports of the Indian Ocean as the Sudan pipeline is closed to them. The routes out all go through the territory of the rump of the remaining LRA (there are less than 600 fighters left). This struggle against the LRA has allowed the US to continue its policy of building African mercenary armies to fight its battles against 'Global Terror' in the Sudan, Somalia, Yemen and Kenya. It supplies weapons, instructors and communication facilities to the Ugandan and Rwandan armies to combat the LRA and to fight against the US' enemies in Somalia. Unfortunately this has also empowered the Ugandans and Rwandans in the rape of the Eastern Congo in the name of fighting the LRA.
In 2009 Heritage Oil discovered oil in Uganda. There have also been sizeable finds in Kenya. In May 2012 Kenya announced its second profitable oil discovery in two months; and large oil deposits in the remote northern Turkana region. Kenya has become the latest African country to join the great African oil boom, following recent discoveries in Uganda and the DRC. Even Rwanda and Burundi will benefit from this oil as part of the East African Community (EAC). The EAC can count on a better energy future with the discovery of oil in Kenya, in addition to the substantial reserves in Uganda and the gas discovered in Tanzania. There are also explorations in the Lake Kivu Graven in Rwanda. South Sudan, with its large oil reserves, has applied for membership of EAC. There are large oil and gas fields in Somalia. Africa is the main continent in the world with frequent and substantial new findings of oil and gas. A joint report by the African Development Bank, African Union and the African Development Fund observed that oil reserves in Africa grew by over 25 per cent, while gas has grown by over 100 per cent since the late 1980s.
This 'new horizon' of African oil and gas has started to attract the big fish of the international oil industry, Chevron, Shell, Exxon, Total and the Chinese oil giants. This extraction process and the refineries which will accompany the flows will require vast sums of cash up front; money the Africans don't have. There is a symbiosis involved in the activities of 'Big Oil' and Africa. Big Oil has the money, Africa has the untapped oil and gas and, most importantly, the military to protect the prospective investments. The US does not have the public support for the sending of combat troops to East and Central Africa. It does have the equipment, cash and trainers to create surrogate forces in the area. In this, having a common enemy, like the LRA, is a convenient hook on which to hang a commercial policy. The LRA doesn't have to be strong; it just has to be considered vicious and beyond the pale. It matches those criteria. The US interests and the Ugandan and Rwandan military ambitions overlap and the two armies are being paid vast sums to act as US surrogates. Museveni and Kagame are feted by the West as valuable allies, despite their activities in the DRC.
This policy is likely to continue the unrestrained pillage of the Eastern Congo and the continued misery, poverty, fear and violence of and to the Congolese people. The Congolese echo the question posed originally by the Tribune of the People, Tiberius Gracchus, 'Quis custodiet ipsos custodes?' ('Who is going to protect us from our protectors?').
Dr. Gary K. Busch is an international trade unionist, an academic, a businessman and a political affairs and business consultant.
eastern Congo
Ugandan
Previous articleU.S. Offers Rewards for Al-Shabaab Terrorists
Next articleReturn of Investors Could Propel Haiti's Growth
From Berlin To Brussels – Will Europe Succeed In Underdeveloping Africa...
Brexit And The Return Of European Militarism
America's Long History Of Opposition To Black Business Growth

redpajama_set_name: RedPajamaCommonCrawl


We like to offer seasonal discounts to our loyal customers. To receive these discounts, you must first be signed up for our seasonal newsletter. Use the space below to sign up for our seasonal newsletter, and enjoy our seasonal discounts.
If you're having trouble viewing the discount signup offer below, please Click Here.
If you're having trouble viewing this seasonal discount sign up form, please Click Here.


text:
Benedict Cumberbatch Drills Michelle Obama in James Corden's UK vs US Dodgeball Game (Video)
But do the boys beat the girls?
Tony Maglio | June 18, 2019 @ 6:33 AM
It was boys vs. girls and the U.K. vs. the U.S. in a game of dodgeball on James Corden's Monday "Late Late Show." The CBS host captained the British team, Michelle Obama led the Americans.
Here's Team U.K.: Corden, Reggie Watts, Harry Styles, Benedict Cumberbatch and John Bradley.
And Team USA: Obama, Kate Hudson, Mila Kunis, Melissa McCarthy, Lena Waithe and Allison Janney.
Also Read: 12 Tony Awards Surprises and Highlights, From Ali Stroker's Win to Neil Patrick Harris' Cameo (Photos)
It was easy for the former first lady of the United States to put together her star-powered squad. As Kunis told the camera, "Listen, when Michelle Obama calls and asks you to do anything, you just say 'yes.'"
It's a different story when "James Corden" pops up on your phone, Styles said.
"When James Corden calls you, you initially ignore the call," the One Direction member said. "Then he keeps calling you, and then starts texting saying, 'Hey, did you get my call?' And then he shows up at your house, your work, your hairdresser, your Pilates class, and your shower."
Also Read: James Corden: 'All the People That I Know' and 'Respect' Don't Know Why Trump Is in England (Video)
For the record, Watts is not British — the numbers were already lopsided though.
Plus, as Corden put it to his employee: "Maybe you'd feel comfortable if you weren't on any team? Maybe you'd feel comfortable if you weren't the bandleader?"
Watch the video above.
James Corden's 11 Best Carpool Karaoke Segments, From Paul McCartney to Adele (Videos)
11. Red Hot Chili Peppers The Chilis showed a lot of skin in this one, but the most exciting moment might've happened off camera, when Anthony Kiedis said later on a radio show that he tried to help save a baby that had stopped breathing while ambulances arrived on scene.
10. Ed Sheeran This "Carpool Karaoke" could've ended badly. Ed Sheeran shoves 55 malt balls into his mouth and shares a story about hitting Justin Bieber in the face with a golf club, and he even does an acoustic karaoke version (or you know, an actual performance) of "Thinking Out Loud."
9. Jennifer Hudson Jennifer Hudson doesn't have the same hits as a lot of the names on this list, but she lends this clip more of a hangout vibe despite fewer songs. Part of her appeal is her ability to launch her voice into the stratosphere even as she's ordering through a drive-thru window at Astro Burger.
8. Foo Fighters It tends to be just one-on-one with Corden and the star, but when literally every Foo Fighter is piling into a van, you know it's going to be unpredictable. Not everyone is belting out along with Dave Grohl's lyrics, but it's worth watching just for Taylor Hawkins' laid-back cool and Dave talking about dislocating his ankle during a show. Plus it's nice to have a few bona fide rock stars making it into the rotation of Top 40 singers.
7. Justin Bieber #1 It's amazing that Corden landed a star like the Biebs so early on in the segment's run before the concept really caught fire. Bieber looks a little too-cool-for-school at times as he's riding around but he's having fun, and their exchange about eating fondue on a date is hysterical. He'd come back just a few weeks later to sing some of his later hits as well, but this one holds up as the best.
6. Lady Gaga Thank goodness Lady Gaga agreed to do a "Carpool Karaoke" -- it gave Corden an excuse to try on everything from her police-tape dress to the meat dress, the latter of which almost made Gaga throw up in her mouth. She seems like she'd make a genuinely good karaoke partner, too, capable of doing a banger and a bring down the house, weepy ballad.
5. Elton John An incredibly flamboyant "Carpool Karaoke," Elton John made this one into a party, even doing "Circle of Life" in full-on lion's mane and "Crocodile Rock" in his signature colorful boas.
4. Michelle Obama The biggest achievement of the Obama era was getting First Lady Michelle to get her freak on with Missy Elliott, right? "Carpool Karaoke" is at its best when its showing an unexpected side to its guests, and Michelle Obama belting some Stevie Wonder and Beyoncé is certainly up there with the best of them.
3. Paul McCartney This super-sized "Carpool Karaoke" (23+ minutes!!) is the only one where you'll get teary-eyed. All of James Corden's segments are a delight, but Paul McCartney leading Corden on a childhood tour of Liverpool is lovely. He shares the story of his mom inspiring "Let it Be" and his dad listening to him and John Lennon performing a demo of "She Loves You," and he even squeezes in his latest single amid all the Beatles classics. (Come on Corden, not a Wings fan?) It culminates though in an impromptu gig inside an English pub and a heartfelt (aren't they all?) rendition of "Hey Jude," naturally.
2. Stevie Wonder The R&B legend really legitimized "Carpool Karaoke." And he's just a natural, first pretending like he'll be the one driving and then doing a FaceTime call to ensure that he's actually singing with James Corden and not just some random British guy. Not only that, they tear through six of Wonder's best bangers in just under 11 minutes, a relief since most of these tend to run long.
1. Adele Adele's "Carpool Karaoke" doesn't just have the best songs -- but the best guest. Adele and Corden look like besties in an instant, and the segment showcases her endearing quality of endlessly blabbing about getting drunk, chortling at just about anything and even revealing she plays drums on "Hello." But I can't get enough of the face Adele makes when she hears Corden harmonizing along with her.
These are the most endlessly watchable, candid looks at pop music's biggest stars


text:
Darren Wayne Tillis (nacido el 23 de febrero de 1960 en Dallas, Texas) es un entrenador y exjugador de baloncesto estadounidense que jugó 2 temporadas en la NBA, además de hacerlo en la liga italiana, la Liga ACB y la CBA. Con 2,11 metros de altura, lo hacía en la posición de pívot. En la actualidad es entrenador asistente en la Universidad Marshall.

Trayectoria deportiva

Universidad
Jugó cuatro temporadas con los Vikings de la Universidad de Cleveland State, en las que promedió 13,4 puntos y 9,4 rebotes por partido. Está considerado uno de los mejores jugadores de la historia de los Vikings, ocupando en la actualidad el primer puesto en tapones (171), el segundo en rebotes (1.045) y el cuarto en anotación (1.423).

Profesional
Fue elegido en la vigésimo tercera posición del Draft de la NBA de 1982 por Boston Celtics, donde apenas jugó 15 partidos antes de ser traspasado, junto con una futura primera ronda del draft a Cleveland Cavaliers, a cambio de Scott Wedman. En los Cavs contó con algún minuto más de juego, incluso llegó a salir como titular en 4 partidos, acabando la temporada con unos promedios de 4,1 puntos y 3,3 rebotes.

En la temporada 1983-84 fue traspasado a Golden State Warriors a cambio de una segunda rond del draft del 86. Allí fue suplente de Joe Barry Carroll, acabando el año con 3,6 puntos y 2,6 rebotes por partido.

Tras probar con Milwaukee Bucks, se vio sin equipo en la NBA, aceptando ir a jugar al Scavolini Pesaro de la liga italiana. Allí jugó dos temporadas, en las que promedió 13,0 puntos y 9,1 rebotes por partido, consiguiendo ganar la Coppa Italia en 1985, y llegando a la final de la Recopa de Europa al año siguiente, cayendo ante el FC Barcelona. Tras dos años en blanco, en 1988 ficha por el Tenerife N.º 1 de la liga ACB, donde solo juega 9 partidos antes de ser cortado, promediando 5,2 puntos y 7,4 rebotes.

Antes de retirarse, jugó una temporada más en el San José Jammers de la CBA.

Entrenador
En 1997 regresó a Cleveland State como entrenador asistente, pasando al año siguiente a desempeñar el mismo puesto en la Universidad de Clemson, donde permaneció hasta 2003. En 2007 es contratado también como asistente en la Universidad Marshall, puesto que ocupa en la actualidad.

Estadísticas de su carrera en la NBA

Temporada regular

Referencias

Enlaces externos

 Ficha de Tillis en NBA.com
 Ficha de Tillis en ACB.com
 Darren Tillis estadísticas NBA, ficha, datos personales, draft, finales, premios, all-stars

Baloncestistas de Texas
Baloncestistas de la NBA
Baloncestistas de la Liga ACB
Baloncestistas estadounidenses de la Lega Basket Serie A
Entrenadores de baloncesto de Estados Unidos
Baloncestistas de los Cleveland State Vikings
Baloncestistas de los Boston Celtics
Baloncestistas de los Cleveland Cavaliers
Baloncestistas de los Golden State Warriors
Baloncestistas del Victoria Libertas Pesaro
Baloncestistas del Tenerife Amigos del Baloncesto
Baloncestistas de los San Jose Jammers
Nacidos en Dallas


text:
NSUInteger const iRateAppStoreGameGenreID = 6014;
NSString *const iRateErrorDomain = @"iRateErrorDomain";

NSString *const iRateMessageTitleKey = @"iRateMessageTitle";
NSString *const iRateAppMessageKey = @"iRateAppMessage";
NSString *const iRateGameMessageKey = @"iRateGameMessage";
NSString *const iRateUpdateMessageKey = @"iRateUpdateMessage";
NSString *const iRateCancelButtonKey = @"iRateCancelButton";
NSString *const iRateRemindButtonKey = @"iRateRemindButton";
NSString *const iRateRateButtonKey = @"iRateRateButton";

NSString *const iRateCouldNotConnectToAppStore = @"iRateCouldNotConnectToAppStore";
NSString *const iRateDidDetectAppUpdate = @"iRateDidDetectAppUpdate";
NSString *const iRateDidPromptForRating = @"iRateDidPromptForRating";
NSString *const iRateUserDidAttemptToRateApp = @"iRateUserDidAttemptToRateApp";
NSString *const iRateUserDidDeclineToRateApp = @"iRateUserDidDeclineToRateApp";
NSString *const iRateUserDidRequestReminderToRateApp = @"iRateUserDidRequestReminderToRateApp";
NSString *const iRateDidOpenAppStore = @"iRateDidOpenAppStore";

static NSString *const iRateAppStoreIDKey = @"iRateAppStoreID";
static NSString *const iRateRatedVersionKey = @"iRateRatedVersionChecked";
static NSString *const iRateDeclinedVersionKey = @"iRateDeclinedVersion";
static NSString *const iRateLastRemindedKey = @"iRateLastReminded";
static NSString *const iRateLastVersionUsedKey = @"iRateLastVersionUsed";
static NSString *const iRateFirstUsedKey = @"iRateFirstUsed";
static NSString *const iRateUseCountKey = @"iRateUseCount";
static NSString *const iRateEventCountKey = @"iRateEventCount";

static NSString *const iRateMacAppStoreBundleID = @"com.apple.appstore";
static NSString *const iRateAppLookupURLFormat = @"https://itunes.apple.com/%@/lookup";

static NSString *const iRateiOSAppStoreURLScheme = @"itms-apps";
static NSString *const iRateiOSAppStoreURLFormat = @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@";
static NSString *const iRateiOS7AppStoreURLFormat = @"itms-apps://itunes.apple.com/app/id%@";
static NSString *const iRateMacAppStoreURLFormat = @"macappstore://itunes.apple.com/app/id%@";

#define SECONDS_IN_A_DAY 86400.0
#define SECONDS_IN_A_WEEK 604800.0
#define MAC_APP_STORE_REFRESH_DELAY 5.0
#define REQUEST_TIMEOUT 60.0

@implementation NSObject (iRate)

- (void)iRateCouldNotConnectToAppStore:(__unused NSError *)error {}
- (void)iRateDidDetectAppUpdate {}
- (BOOL)iRateShouldPromptForRating { return YES; }
- (void)iRateDidPromptForRating {}
- (void)iRateUserDidAttemptToRateApp {}
- (void)iRateUserDidDeclineToRateApp {}
- (void)iRateUserDidRequestReminderToRateApp {}
- (BOOL)iRateShouldOpenAppStore { return YES; }
- (void)iRateDidOpenAppStore {}

@end

@interface iRate()

@property (nonatomic, strong) id visibleAlert;
@property (nonatomic, assign) BOOL checkingForPrompt;
@property (nonatomic, assign) BOOL checkingForAppStoreID;

@end

@implementation iRate

+ (void)load
{
    [self performSelectorOnMainThread:@selector(sharedInstance) withObject:nil waitUntilDone:NO];
}

+ (iRate *)sharedInstance
{
    static iRate *sharedInstance = nil;
    if (sharedInstance == nil)
    {
        sharedInstance = [[iRate alloc] init];
    }
    return sharedInstance;
}

- (NSString *)localizedStringForKey:(NSString *)key withDefault:(NSString *)defaultString
{
    static NSBundle *bundle = nil;
    if (bundle == nil)
    {
        NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"iRate" ofType:@"bundle"];
        if (self.useAllAvailableLanguages)
        {
            bundle = [NSBundle bundleWithPath:bundlePath];
            NSString *language = [[NSLocale preferredLanguages] count]? [NSLocale preferredLanguages][0]: @"en";
            if (![[bundle localizations] containsObject:language])
            {
                language = [language componentsSeparatedByString:@"-"][0];
            }
            if ([[bundle localizations] containsObject:language])
            {
                bundlePath = [bundle pathForResource:language ofType:@"lproj"];
            }
        }
        bundle = [NSBundle bundleWithPath:bundlePath] ?: [NSBundle mainBundle];
    }
    defaultString = [bundle localizedStringForKey:key value:defaultString table:nil];
    return [[NSBundle mainBundle] localizedStringForKey:key value:defaultString table:nil];
}

- (iRate *)init
{
    if ((self = [super init]))
    {

#if TARGET_OS_IPHONE

        //register for iphone application events
        if (&UIApplicationWillEnterForegroundNotification)
        {
            [[NSNotificationCenter defaultCenter] addObserver:self
                                                     selector:@selector(applicationWillEnterForeground)
                                                         name:UIApplicationWillEnterForegroundNotification
                                                       object:nil];
        }

#endif

        //get country
        self.appStoreCountry = [(NSLocale *)[NSLocale currentLocale] objectForKey:NSLocaleCountryCode];
        if ([self.appStoreCountry isEqualToString:@"150"])
        {
            self.appStoreCountry = @"eu";
        }
        else if ([[self.appStoreCountry stringByReplacingOccurrencesOfString:@"[A-Za-z]{2}" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, 2)] length])
        {
            self.appStoreCountry = @"us";
        }

        //application version (use short version preferentially)
        self.applicationVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
        if ([self.applicationVersion length] == 0)
        {
            self.applicationVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey];
        }

        //localised application name
        self.applicationName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"];
        if ([self.applicationName length] == 0)
        {
            self.applicationName = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleNameKey];
        }

        //bundle id
        self.applicationBundleID = [[NSBundle mainBundle] bundleIdentifier];

        //default settings
        self.useAllAvailableLanguages = YES;
        self.promptForNewVersionIfUserRated = NO;
        self.onlyPromptIfLatestVersion = YES;
        self.onlyPromptIfMainWindowIsAvailable = YES;
        self.promptAtLaunch = YES;
        self.usesUntilPrompt = 10;
        self.eventsUntilPrompt = 10;
        self.daysUntilPrompt = 10.0f;
        self.usesPerWeekForPrompt = 0.0f;
        self.remindPeriod = 1.0f;
        self.verboseLogging = NO;
        self.previewMode = NO;

#if DEBUG

        //enable verbose logging in debug mode
        self.verboseLogging = YES;
        NSLog(@"iRate verbose logging enabled.");

#endif

        //app launched
        [self performSelectorOnMainThread:@selector(applicationLaunched) withObject:nil waitUntilDone:NO];
    }
    return self;
}

- (id<iRateDelegate>)delegate
{
    if (_delegate == nil)
    {

#if TARGET_OS_IPHONE
#define APP_CLASS UIApplication
#else
#define APP_CLASS NSApplication
#endif

        _delegate = (id<iRateDelegate>)[[APP_CLASS sharedApplication] delegate];
    }
    return _delegate;
}

- (NSString *)messageTitle
{
    return [_messageTitle ?: [self localizedStringForKey:iRateMessageTitleKey withDefault:@"Rate %@"] stringByReplacingOccurrencesOfString:@"%@" withString:self.applicationName];
}

- (NSString *)message
{
    NSString *message = _message;
    if (!message)
    {
        message = (self.appStoreGenreID == iRateAppStoreGameGenreID)? [self localizedStringForKey:iRateGameMessageKey withDefault:@"If you enjoy playing %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!"]: [self localizedStringForKey:iRateAppMessageKey withDefault:@"If you enjoy using %@, would you mind taking a moment to rate it? It won't take more than a minute. Thanks for your support!"];
    }
    return [message stringByReplacingOccurrencesOfString:@"%@" withString:self.applicationName];
}

- (NSString *)updateMessage
{
    NSString *updateMessage = _updateMessage;
    if (!updateMessage)
    {
        updateMessage = [self localizedStringForKey:iRateUpdateMessageKey withDefault:self.message];
    }
    return [updateMessage stringByReplacingOccurrencesOfString:@"%@" withString:self.applicationName];
}

- (NSString *)cancelButtonLabel
{
    return _cancelButtonLabel ?: [self localizedStringForKey:iRateCancelButtonKey withDefault:@"No, Thanks"];
}

- (NSString *)rateButtonLabel
{
    return _rateButtonLabel ?: [self localizedStringForKey:iRateRateButtonKey withDefault:@"Rate It Now"];
}

- (NSString *)remindButtonLabel
{
    return _remindButtonLabel ?: [self localizedStringForKey:iRateRemindButtonKey withDefault:@"Remind Me Later"];
}

- (NSURL *)ratingsURL
{
    if (_ratingsURL)
    {
        return _ratingsURL;
    }

    if (!self.appStoreID && self.verboseLogging)
    {
        NSLog(@"iRate could not find the App Store ID for this application. If the application is not intended for App Store release then you must specify a custom ratingsURL.");
    }

    NSString *URLString;

#if TARGET_OS_IPHONE

    float iOSVersion = [[UIDevice currentDevice].systemVersion floatValue];
    if (iOSVersion >= 7.0f && iOSVersion < 7.1f)
    {
        URLString = iRateiOS7AppStoreURLFormat;
    }
    else
    {
        URLString = iRateiOSAppStoreURLFormat;
    }

#else

    URLString = iRateMacAppStoreURLFormat;

#endif

    return [NSURL URLWithString:[NSString stringWithFormat:URLString, @(self.appStoreID)]];

}

- (NSUInteger)appStoreID
{
    return _appStoreID ?: [[[NSUserDefaults standardUserDefaults] objectForKey:iRateAppStoreIDKey] unsignedIntegerValue];
}

- (NSDate *)firstUsed
{
    return [[NSUserDefaults standardUserDefaults] objectForKey:iRateFirstUsedKey];
}

- (void)setFirstUsed:(NSDate *)date
{
    [[NSUserDefaults standardUserDefaults] setObject:date forKey:iRateFirstUsedKey];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

- (NSDate *)lastReminded
{
    return [[NSUserDefaults standardUserDefaults] objectForKey:iRateLastRemindedKey];
}

- (void)setLastReminded:(NSDate *)date
{
    [[NSUserDefaults standardUserDefaults] setObject:date forKey:iRateLastRemindedKey];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

- (NSUInteger)usesCount
{
    return [[NSUserDefaults standardUserDefaults] integerForKey:iRateUseCountKey];
}

- (void)setUsesCount:(NSUInteger)count
{
    [[NSUserDefaults standardUserDefaults] setInteger:(NSInteger)count forKey:iRateUseCountKey];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

- (NSUInteger)eventCount
{
    return [[NSUserDefaults standardUserDefaults] integerForKey:iRateEventCountKey];
}

- (void)setEventCount:(NSUInteger)count
{
    [[NSUserDefaults standardUserDefaults] setInteger:(NSInteger)count forKey:iRateEventCountKey];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

- (float)usesPerWeek
{
    return (float)self.usesCount / ([[NSDate date] timeIntervalSinceDate:self.firstUsed] / SECONDS_IN_A_WEEK);
}

- (BOOL)declinedThisVersion
{
    return [[[NSUserDefaults standardUserDefaults] objectForKey:iRateDeclinedVersionKey] isEqualToString:self.applicationVersion];
}

- (void)setDeclinedThisVersion:(BOOL)declined
{
    [[NSUserDefaults standardUserDefaults] setObject:(declined? self.applicationVersion: nil) forKey:iRateDeclinedVersionKey];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

- (BOOL)declinedAnyVersion
{
    return [(NSString *)[[NSUserDefaults standardUserDefaults] objectForKey:iRateDeclinedVersionKey] length] != 0;
}

- (BOOL)ratedVersion:(NSString *)version
{
    return [[[NSUserDefaults standardUserDefaults] objectForKey:iRateRatedVersionKey] isEqualToString:version];
}

- (BOOL)ratedThisVersion
{
    return [self ratedVersion:self.applicationVersion];
}

- (void)setRatedThisVersion:(BOOL)rated
{
    [[NSUserDefaults standardUserDefaults] setObject:(rated? self.applicationVersion: nil) forKey:iRateRatedVersionKey];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

- (BOOL)ratedAnyVersion
{
    return [(NSString *)[[NSUserDefaults standardUserDefaults] objectForKey:iRateRatedVersionKey] length] != 0;
}

- (void)dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

- (void)incrementUseCount
{
    self.usesCount ++;
}

- (void)incrementEventCount
{
    self.eventCount ++;
}

- (BOOL)shouldPromptForRating
{
    //preview mode?
    if (self.previewMode)
    {
        NSLog(@"iRate preview mode is enabled - make sure you disable this for release");
        return YES;
    }

    //check if we've rated this version
    else if (self.ratedThisVersion)
    {
        if (self.verboseLogging)
        {
            NSLog(@"iRate did not prompt for rating because the user has already rated this version");
        }
        return NO;
    }

    //check if we've rated any version
    else if (self.ratedAnyVersion && !self.promptForNewVersionIfUserRated)
    {
        if (self.verboseLogging)
        {
            NSLog(@"iRate did not prompt for rating because the user has already rated this app, and promptForNewVersionIfUserRated is disabled");
        }
        return NO;
    }

    //check if we've declined to rate the app
    else if (self.declinedAnyVersion)
    {
        if (self.verboseLogging)
        {
            NSLog(@"iRate did not prompt for rating because the user has declined to rate the app");
        }
        return NO;
    }

    //check how long we've been using this version
    else if ([[NSDate date] timeIntervalSinceDate:self.firstUsed] < self.daysUntilPrompt * SECONDS_IN_A_DAY)
    {
        if (self.verboseLogging)
        {
            NSLog(@"iRate did not prompt for rating because the app was first used less than %g days ago", self.daysUntilPrompt);
        }
        return NO;
    }

    //check how many times we've used it and the number of significant events
    else if (self.usesCount < self.usesUntilPrompt && self.eventCount < self.eventsUntilPrompt)
    {
        if (self.verboseLogging)
        {
            NSLog(@"iRate did not prompt for rating because the app has only been used %@ times and only %@ events have been logged", @(self.usesCount), @(self.eventCount));
        }
        return NO;
    }

    //check if usage frequency is high enough
    else if (self.usesPerWeek < self.usesPerWeekForPrompt)
    {
        if (self.verboseLogging)
        {
            NSLog(@"iRate did not prompt for rating because the app has only been used %g times per week on average since it was installed", self.usesPerWeek);
        }
        return NO;
    }

    //check if within the reminder period
    else if (self.lastReminded != nil && [[NSDate date] timeIntervalSinceDate:self.lastReminded] < self.remindPeriod * SECONDS_IN_A_DAY)
    {
        if (self.verboseLogging)
        {
            NSLog(@"iRate did not prompt for rating because the user last asked to be reminded less than %g days ago", self.remindPeriod);
        }
        return NO;
    }

    //lets prompt!
    return YES;
}

- (NSString *)valueForKey:(NSString *)key inJSON:(id)json
{
    if ([json isKindOfClass:[NSString class]])
    {
        //use legacy parser
        NSRange keyRange = [json rangeOfString:[NSString stringWithFormat:@"\"%@\"", key]];
        if (keyRange.location != NSNotFound)
        {
            NSInteger start = keyRange.location + keyRange.length;
            NSRange valueStart = [json rangeOfString:@":" options:(NSStringCompareOptions)0 range:NSMakeRange(start, [(NSString *)json length] - start)];
            if (valueStart.location != NSNotFound)
            {
                start = valueStart.location + 1;
                NSRange valueEnd = [json rangeOfString:@"," options:(NSStringCompareOptions)0 range:NSMakeRange(start, [(NSString *)json length] - start)];
                if (valueEnd.location != NSNotFound)
                {
                    NSString *value = [json substringWithRange:NSMakeRange(start, valueEnd.location - start)];
                    value = [value stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
                    while ([value hasPrefix:@"\""] && ![value hasSuffix:@"\""])
                    {
                        if (valueEnd.location == NSNotFound)
                        {
                            break;
                        }
                        NSInteger newStart = valueEnd.location + 1;
                        valueEnd = [json rangeOfString:@"," options:(NSStringCompareOptions)0 range:NSMakeRange(newStart, [(NSString *)json length] - newStart)];
                        value = [json substringWithRange:NSMakeRange(start, valueEnd.location - start)];
                        value = [value stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
                    }

                    value = [value stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"\""]];
                    value = [value stringByReplacingOccurrencesOfString:@"\\\\" withString:@"\\"];
                    value = [value stringByReplacingOccurrencesOfString:@"\\/" withString:@"/"];
                    value = [value stringByReplacingOccurrencesOfString:@"\\\"" withString:@"\""];
                    value = [value stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"];
                    value = [value stringByReplacingOccurrencesOfString:@"\\r" withString:@"\r"];
                    value = [value stringByReplacingOccurrencesOfString:@"\\t" withString:@"\t"];
                    value = [value stringByReplacingOccurrencesOfString:@"\\f" withString:@"\f"];
                    value = [value stringByReplacingOccurrencesOfString:@"\\b" withString:@"\f"];

                    while (YES)
                    {
                        NSRange unicode = [value rangeOfString:@"\\u"];
                        if (unicode.location == NSNotFound || unicode.location + unicode.length == 0)
                        {
                            break;
                        }

                        uint32_t c = 0;
                        NSString *hex = [value substringWithRange:NSMakeRange(unicode.location + 2, 4)];
                        NSScanner *scanner = [NSScanner scannerWithString:hex];
                        [scanner scanHexInt:&c];

                        if (c <= 0xffff)
                        {
                            value = [value stringByReplacingCharactersInRange:NSMakeRange(unicode.location, 6) withString:[NSString stringWithFormat:@"%C", (unichar)c]];
                        }
                        else
                        {
                            //convert character to surrogate pair
                            uint16_t x = (uint16_t)c;
                            uint16_t u = (c >> 16) & ((1 << 5) - 1);
                            uint16_t w = (uint16_t)u - 1;
                            unichar high = 0xd800 | (w << 6) | x >> 10;
                            unichar low = (uint16_t)(0xdc00 | (x & ((1 << 10) - 1)));

                            value = [value stringByReplacingCharactersInRange:NSMakeRange(unicode.location, 6) withString:[NSString stringWithFormat:@"%C%C", high, low]];
                        }
                    }
                    return value;
                }
            }
        }
    }
    else
    {
        return json[key];
    }
    return nil;
}

- (void)setAppStoreIDOnMainThread:(NSString *)appStoreIDString
{
    _appStoreID = [appStoreIDString integerValue];
    [[NSUserDefaults standardUserDefaults] setInteger:_appStoreID forKey:iRateAppStoreIDKey];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

- (void)connectionSucceeded
{
    if (self.checkingForAppStoreID)
    {
        //no longer checking
        self.checkingForPrompt = NO;
        self.checkingForAppStoreID = NO;

        //open app store
        [self openRatingsPageInAppStore];
    }
    else if (self.checkingForPrompt)
    {
        //no longer checking
        self.checkingForPrompt = NO;

        //confirm with delegate
        if (![self.delegate iRateShouldPromptForRating])
        {
            if (self.verboseLogging)
            {
                NSLog(@"iRate did not display the rating prompt because the iRateShouldPromptForRating delegate method returned NO");
            }
            return;
        }

        //prompt user
        [self promptForRating];
    }
}

- (void)connectionError:(NSError *)error
{
    if (self.checkingForPrompt || self.checkingForAppStoreID)
    {
        //no longer checking
        self.checkingForPrompt = NO;
        self.checkingForAppStoreID = NO;

        //log the error
        if (error)
        {
            NSLog(@"iRate rating process failed because: %@", [error localizedDescription]);
        }
        else
        {
            NSLog(@"iRate rating process failed because an unknown error occured");
        }

        //could not connect
        [self.delegate iRateCouldNotConnectToAppStore:error];
        [[NSNotificationCenter defaultCenter] postNotificationName:iRateCouldNotConnectToAppStore
                                                            object:error];
    }
}

- (void)checkForConnectivityInBackground
{
    if ([NSThread isMainThread])
    {
        [self performSelectorInBackground:@selector(checkForConnectivityInBackground) withObject:nil];
        return;
    }

    @autoreleasepool
    {
        //prevent concurrent checks
        static BOOL checking = NO;
        if (checking) return;
        checking = YES;

        //first check iTunes
        NSString *iTunesServiceURL = [NSString stringWithFormat:iRateAppLookupURLFormat, self.appStoreCountry];
        if (_appStoreID) //important that we check ivar and not getter in case it has changed
        {
            iTunesServiceURL = [iTunesServiceURL stringByAppendingFormat:@"?id=%@", @(_appStoreID)];
        }
        else
        {
            iTunesServiceURL = [iTunesServiceURL stringByAppendingFormat:@"?bundleId=%@", self.applicationBundleID];
        }

        if (self.verboseLogging)
        {
            NSLog(@"iRate is checking %@ to retrieve the App Store details...", iTunesServiceURL);
        }

        NSError *error = nil;
        NSURLResponse *response = nil;
        NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:iTunesServiceURL] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:REQUEST_TIMEOUT];
        NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
        NSInteger statusCode = ((NSHTTPURLResponse *)response).statusCode;
        if (data && statusCode == 200)
        {
            //in case error is garbage...
            error = nil;

            id json = nil;
            if ([NSJSONSerialization class])
            {
                json = [[NSJSONSerialization JSONObjectWithData:data options:(NSJSONReadingOptions)0 error:&error][@"results"] lastObject];
            }
            else
            {
                //convert to string
                json = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
            }

            if (!error)
            {
                //check bundle ID matches
                NSString *bundleID = [self valueForKey:@"bundleId" inJSON:json];
                if (bundleID)
                {
                    if ([bundleID isEqualToString:self.applicationBundleID])
                    {
                        //get genre
                        if (self.appStoreGenreID == 0)
                        {
                            self.appStoreGenreID = [[self valueForKey:@"primaryGenreId" inJSON:json] integerValue];
                        }

                        //get app id
                        if (!_appStoreID)
                        {
                            NSString *appStoreIDString = [self valueForKey:@"trackId" inJSON:json];
                            [self performSelectorOnMainThread:@selector(setAppStoreIDOnMainThread:) withObject:appStoreIDString waitUntilDone:YES];

                            if (self.verboseLogging)
                            {
                                NSLog(@"iRate found the app on iTunes. The App Store ID is %@", appStoreIDString);
                            }
                        }

                        //check version
                        if (self.onlyPromptIfLatestVersion && !self.previewMode)
                        {
                            NSString *latestVersion = [self valueForKey:@"version" inJSON:json];
                            if ([latestVersion compare:self.applicationVersion options:NSNumericSearch] == NSOrderedDescending)
                            {
                                if (self.verboseLogging)
                                {
                                    NSLog(@"iRate found that the installed application version (%@) is not the latest version on the App Store, which is %@", self.applicationVersion, latestVersion);
                                }

                                error = [NSError errorWithDomain:iRateErrorDomain code:iRateErrorApplicationIsNotLatestVersion userInfo:@{NSLocalizedDescriptionKey: @"Installed app is not the latest version available"}];
                            }
                        }
                    }
                    else
                    {
                        if (self.verboseLogging)
                        {
                            NSLog(@"iRate found that the application bundle ID (%@) does not match the bundle ID of the app found on iTunes (%@) with the specified App Store ID (%@)", self.applicationBundleID, bundleID, @(self.appStoreID));
                        }

                        error = [NSError errorWithDomain:iRateErrorDomain code:iRateErrorBundleIdDoesNotMatchAppStore userInfo:@{NSLocalizedDescriptionKey: [NSString stringWithFormat:@"Application bundle ID does not match expected value of %@", bundleID]}];
                    }
                }
                else if (_appStoreID || !self.ratingsURL)
                {
                    if (self.verboseLogging)
                    {
                        NSLog(@"iRate could not find this application on iTunes. If your app is not intended for App Store release then you must specify a custom ratingsURL. If this is the first release of your application then it's not a problem that it cannot be found on the store yet");
                    }
                    if (!self.previewMode)
                    {
                        error = [NSError errorWithDomain:iRateErrorDomain
                                                    code:iRateErrorApplicationNotFoundOnAppStore
                                                userInfo:@{NSLocalizedDescriptionKey: @"The application could not be found on the App Store."}];
                    }
                }
                else if (!_appStoreID && self.verboseLogging)
                {
                    NSLog(@"iRate could not find your app on iTunes. If your app is not yet on the store or is not intended for App Store release then don't worry about this");
                }
            }
        }
        else if (statusCode >= 400)
        {
            //http error
            NSString *message = [NSString stringWithFormat:@"The server returned a %@ error", @(statusCode)];
            error = [NSError errorWithDomain:@"HTTPResponseErrorDomain" code:statusCode userInfo:@{NSLocalizedDescriptionKey: message}];
        }

        //handle errors (ignoring sandbox issues)
        if (error && !(error.code == EPERM && [error.domain isEqualToString:NSPOSIXErrorDomain] && _appStoreID))
        {
            [self performSelectorOnMainThread:@selector(connectionError:) withObject:error waitUntilDone:YES];
        }
        else if (self.appStoreID || self.previewMode)
        {
            //show prompt
            [self performSelectorOnMainThread:@selector(connectionSucceeded) withObject:nil waitUntilDone:YES];
        }

        //finished
        checking = NO;
    }
}

- (void)promptIfNetworkAvailable
{
    if (!self.checkingForPrompt && !self.checkingForAppStoreID)
    {
        self.checkingForPrompt = YES;
        [self checkForConnectivityInBackground];
    }
}

- (void)promptIfAllCriteriaMet
{
    if ([self shouldPromptForRating])
    {
        [self promptIfNetworkAvailable];
    }
}

- (BOOL)showRemindButton
{
    return [self.remindButtonLabel length];
}

- (BOOL)showCancelButton
{
    return [self.cancelButtonLabel length];
}

- (void)promptForRating
{
    if (!self.visibleAlert)
    {
        NSString *message = self.ratedAnyVersion? self.updateMessage: self.message;

#if TARGET_OS_IPHONE

        UIViewController *topController = [UIApplication sharedApplication].delegate.window.rootViewController;
        while (topController.presentedViewController)
        {
            topController = topController.presentedViewController;
        }

        if ([UIAlertController class] && topController && self.useUIAlertControllerIfAvailable)
        {
            UIAlertController *alert = [UIAlertController alertControllerWithTitle:self.messageTitle message:message preferredStyle:UIAlertControllerStyleAlert];

            //rate action
            [alert addAction:[UIAlertAction actionWithTitle:self.rateButtonLabel style:UIAlertActionStyleDefault handler:^(__unused UIAlertAction *action) {
                [self didDismissAlert:alert withButtonAtIndex:0];
            }]];

            //cancel action
            if ([self showCancelButton])
            {
                [alert addAction:[UIAlertAction actionWithTitle:self.cancelButtonLabel style:UIAlertActionStyleCancel handler:^(__unused UIAlertAction *action) {
                    [self didDismissAlert:alert withButtonAtIndex:1];
                }]];
            }

            //remind action
            if ([self showRemindButton])
            {
                [alert addAction:[UIAlertAction actionWithTitle:self.remindButtonLabel style:UIAlertActionStyleDefault handler:^(__unused UIAlertAction *action) {
                    [self didDismissAlert:alert withButtonAtIndex:[self showCancelButton]? 2: 1];
                }]];
            }

            self.visibleAlert = alert;

            //get current view controller and present alert
            [topController presentViewController:alert animated:YES completion:NULL];
        }
        else
        {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:self.messageTitle
                                                            message:message
                                                           delegate:(id<UIAlertViewDelegate>)self
                                                  cancelButtonTitle:nil
                                                  otherButtonTitles:self.rateButtonLabel, nil];
            if ([self showCancelButton])
            {
                [alert addButtonWithTitle:self.cancelButtonLabel];
                alert.cancelButtonIndex = 1;
            }

            if ([self showRemindButton])
            {
                [alert addButtonWithTitle:self.remindButtonLabel];
            }

            self.visibleAlert = alert;
            [alert show];
        }

#else

        //only show when main window is available
        if (self.onlyPromptIfMainWindowIsAvailable && ![[NSApplication sharedApplication] mainWindow])
        {
            [self performSelector:@selector(promptForRating) withObject:nil afterDelay:0.5];
            return;
        }

        NSAlert *alert = [[NSAlert alloc] init];
        alert.messageText = self.messageTitle;
        alert.informativeText = message;
        [alert addButtonWithTitle:self.rateButtonLabel];
        if ([self showCancelButton])
        {
            [alert addButtonWithTitle:self.cancelButtonLabel];
        }
        if ([self showRemindButton])
        {
            [alert addButtonWithTitle:self.remindButtonLabel];
        }

        self.visibleAlert = alert;

#if __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_9

        if (![alert respondsToSelector:@selector(beginSheetModalForWindow:completionHandler:)])
        {
            [alert beginSheetModalForWindow:[NSApplication sharedApplication].mainWindow
                              modalDelegate:self
                             didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:)
                                contextInfo:nil];
        }
        else

#endif

        {
            [alert beginSheetModalForWindow:[NSApplication sharedApplication].mainWindow completionHandler:^(NSModalResponse returnCode) {
                [self didDismissAlert:alert withButtonAtIndex:returnCode - NSAlertFirstButtonReturn];
            }];
        }

#endif

        //inform about prompt
        [self.delegate iRateDidPromptForRating];
        [[NSNotificationCenter defaultCenter] postNotificationName:iRateDidPromptForRating
                                                            object:nil];
    }
}

- (void)applicationLaunched
{
    //check if this is a new version
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString *lastUsedVersion = [defaults objectForKey:iRateLastVersionUsedKey];
    if (!self.firstUsed || ![lastUsedVersion isEqualToString:self.applicationVersion])
    {
        [defaults setObject:self.applicationVersion forKey:iRateLastVersionUsedKey];
        if (!self.firstUsed || [self ratedAnyVersion])
        {
            //reset defaults
            [defaults setObject:[NSDate date] forKey:iRateFirstUsedKey];
            [defaults setInteger:0 forKey:iRateUseCountKey];
            [defaults setInteger:0 forKey:iRateEventCountKey];
            [defaults setObject:nil forKey:iRateLastRemindedKey];
            [defaults synchronize];
        }
        else if ([[NSDate date] timeIntervalSinceDate:self.firstUsed] > (self.daysUntilPrompt - 1) * SECONDS_IN_A_DAY)
        {
            //if was previously installed, but we haven't yet prompted for a rating
            //don't reset, but make sure it won't rate for a day at least
            self.firstUsed = [[NSDate date] dateByAddingTimeInterval:(self.daysUntilPrompt - 1) * -SECONDS_IN_A_DAY];
        }

        //inform about app update
        [self.delegate iRateDidDetectAppUpdate];
        [[NSNotificationCenter defaultCenter] postNotificationName:iRateDidDetectAppUpdate
                                                            object:nil];
    }

    [self incrementUseCount];
    [self checkForConnectivityInBackground];
    if (self.promptAtLaunch)
    {
        [self promptIfAllCriteriaMet];
    }
}

- (void)didDismissAlert:(__unused id)alertView withButtonAtIndex:(NSInteger)buttonIndex
{
    //get button indices
    NSInteger rateButtonIndex = 0;
    NSInteger cancelButtonIndex = [self showCancelButton]? 1: 0;
    NSInteger remindButtonIndex = [self showRemindButton]? cancelButtonIndex + 1: 0;

    if (buttonIndex == rateButtonIndex)
    {
        [self rate];
    }
    else if (buttonIndex == cancelButtonIndex)
    {
        [self declineThisVersion];
    }
    else if (buttonIndex == remindButtonIndex)
    {
        [self remindLater];
    }

    //release alert
    self.visibleAlert = nil;
}

#if TARGET_OS_IPHONE

- (void)applicationWillEnterForeground
{
    if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground)
    {
        [self incrementUseCount];
        [self checkForConnectivityInBackground];
        if (self.promptAtLaunch)
        {
            [self promptIfAllCriteriaMet];
        }
    }
}

- (void)openRatingsPageInAppStore
{
    if (!_ratingsURL && !self.appStoreID)
    {
        self.checkingForAppStoreID = YES;
        if (!self.checkingForPrompt)
        {
            [self checkForConnectivityInBackground];
        }
        return;
    }

    if ([[UIApplication sharedApplication] canOpenURL:self.ratingsURL])
    {
        if (self.verboseLogging)
        {
            NSLog(@"iRate will open the App Store ratings page using the following URL: %@", self.ratingsURL);
        }

        [[UIApplication sharedApplication] openURL:self.ratingsURL];
        [self.delegate iRateDidOpenAppStore];
        [[NSNotificationCenter defaultCenter] postNotificationName:iRateDidOpenAppStore
                                                            object:nil];
    }
    else
    {
         NSString *message = [NSString stringWithFormat:@"iRate was unable to open the specified ratings URL: %@", self.ratingsURL];

#if TARGET_IPHONE_SIMULATOR

        if ([[self.ratingsURL scheme] isEqualToString:iRateiOSAppStoreURLScheme])
        {
            message = @"iRate could not open the ratings page because the App Store is not available on the iOS simulator";
        }

#endif
        NSLog(@"%@", message);
        NSError *error = [NSError errorWithDomain:iRateErrorDomain code:iRateErrorCouldNotOpenRatingPageURL userInfo:@{NSLocalizedDescriptionKey: message}];
        [self.delegate iRateCouldNotConnectToAppStore:error];
        [[NSNotificationCenter defaultCenter] postNotificationName:iRateCouldNotConnectToAppStore
                                                            object:error];
    }
}

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    [self didDismissAlert:alertView withButtonAtIndex:buttonIndex];
}

#else

- (void)openAppPageWhenAppStoreLaunched
{
    //check if app store is running
    for (NSRunningApplication *app in [[NSWorkspace sharedWorkspace] runningApplications])
    {
        if ([app.bundleIdentifier isEqualToString:iRateMacAppStoreBundleID])
        {
            //open app page
            [[NSWorkspace sharedWorkspace] performSelector:@selector(openURL:) withObject:self.ratingsURL afterDelay:MAC_APP_STORE_REFRESH_DELAY];
            return;
        }
    }

    //try again
    [self performSelector:@selector(openAppPageWhenAppStoreLaunched) withObject:nil afterDelay:0.0];
}

- (void)openRatingsPageInAppStore
{
    if (!_ratingsURL && !self.appStoreID)
    {
        self.checkingForAppStoreID = YES;
        if (!self.checkingForPrompt)
        {
            [self checkForConnectivityInBackground];
        }
        return;
    }

    if (self.verboseLogging)
    {
        NSLog(@"iRate will open the App Store ratings page using the following URL: %@", self.ratingsURL);
    }

    [[NSWorkspace sharedWorkspace] openURL:self.ratingsURL];
    [self openAppPageWhenAppStoreLaunched];
    [self.delegate iRateDidOpenAppStore];
}

- (void)alertDidEnd:(NSAlert *)alert returnCode:(NSInteger)returnCode contextInfo:(__unused void *)contextInfo
{
    [self didDismissAlert:alert withButtonAtIndex:returnCode - NSAlertFirstButtonReturn];
}

#endif

- (void)logEvent:(BOOL)deferPrompt
{
    [self incrementEventCount];
    if (!deferPrompt)
    {
        [self promptIfAllCriteriaMet];
    }
}

#pragma mark - User's actions

- (void)declineThisVersion
{
    //ignore this version
    self.declinedThisVersion = YES;

    //log event
    [self.delegate iRateUserDidDeclineToRateApp];
    [[NSNotificationCenter defaultCenter] postNotificationName:iRateUserDidDeclineToRateApp
                                                        object:nil];
}

- (void)remindLater
{
    //remind later
    self.lastReminded = [NSDate date];

    //log event
    [self.delegate iRateUserDidRequestReminderToRateApp];
    [[NSNotificationCenter defaultCenter] postNotificationName:iRateUserDidRequestReminderToRateApp
                                                        object:nil];
}

- (void)rate
{
    //mark as rated
    self.ratedThisVersion = YES;

    //log event
    [self.delegate iRateUserDidAttemptToRateApp];
    [[NSNotificationCenter defaultCenter] postNotificationName:iRateUserDidAttemptToRateApp
                                                        object:nil];

    if ([self.delegate iRateShouldOpenAppStore])
    {
        //launch mac app store
        [self openRatingsPageInAppStore];
    }
}

@end

redpajama_set_name: RedPajamaGithub


text:
Whether writing is an art or not is one of the hottest subjects in the industry. When you talk about art, most people will only think of drawing, painting, sculpting, and perhaps music. But not many will consider any written text as a form of art. Poetry is probably the only written form that is considered art.
By definition, art is all about the application of creative skills and imagination to create something interesting. It involves the expression of ideas and emotions. Considering this, it is easy to say any skill can be art. If your ability leads you to apply a certain amount of imagination in delivering results, then everyone might be an artist. However, there must be some variations in what art should and what it should not be. Most written works are based on imagination.
The philosophy of art
For many generations, art was considered as an 'imitation.' It was seen simply as copying of ideas and transferring them into another form as a representation of the concept. But since the 19th century, this view has been challenged and moribund in some of the arts of this period. It started losing meaning when art was seen as an expression, a theory that has gotten the world reflecting on the internal states of the artist. Although the representation may seem outward to the world, there is a more implicit meaning when viewed as an expression, particularly when an expression is defined as the outer manifestation of an inner self. Art is no longer the outward existence, but rather a display of inner human life.
The confusion, however, comes in the varying meaning of the words express and expression. They are ambiguous terms and may not always bring out the same meaning. For instance, express is a process-product ambiguous word. It can be used to mean the process, and can as well mean the results of the process. Consider the statement, "The music expresses a feeling." It may mean the music evokes the composer's deeper meaning, or that the sound of the music as heard is expressive. Therefore, different people have come up with theories based on these two approaches. In the first instance, the theory denotes the creation of art while the second one is about the content in the art and its creation completion.
Expressive nature of creating art
When creating any artwork, the artist combines new elements in the medium. These elements include tones in music, words in literature, paints on canvas, and many others. The elements are not new, they existed already, but they were not expressively brought together to create meaning. Therefore, the re-formation of these pre-existent material results in artistic work. Expect for some theological beliefs; creation is only possible if there is pre-existing material.
Creation occurs in different art mediums. The only issue is, once we understand this, we can come back to the point of expression and the media of art. It is right to say that in the creative process, the expressionist may call it the expression process. There must be something else other than the artist for them to create something. But this is where some get lost; some say art creation is more about self-expression, whereas others say it is the expression of a feeling. There are others too, who say the creation of art is not necessarily limited to feeling, and ideas can be expressed blandly and transparently as in an essay. That then will mean any form of writing can be termed as artistic.
When you say someone is expressing themselves, they are merely 'letting go.' Different people choose different means of 'letting off steam.' Some may throw things in the air; some may curse, and some may even resort to fighting. Many minds have, however, argued that such extreme expression is in no way relative to art. In art, there must be a medium of expression which brings the artist to bend to their will. Throwing things can be terms as natural release, but not artistic expression. According to William Wordsworth (1770-1850), poetry is an artwork because it does not evoke just spontaneous overflow of powerful things. This brings out written content a way of expressive something beyond emotions.
Art brings out truth and knowledge
Art has been alleged to carry cognitive functions; it leads to the action of truth. Many have defined as a road to the highest experience for humankind. It leads to an understanding that cannot be attained in any other direction. One can never help but wonder whether there is anything like truth or knowledge in artworks.
Literature is the most apparent carrier of this notion. It is comprised of words that grow into sentences which then express prepositions. Many literary works contain true statements, making some of them true. Fictional novels, on the other hand, bring a twist to the story. Anyone can write about something that happened in the past, even when they were not there. But still, it expresses the idea of what might have happened before. Poetry is all about understanding language and using the same to express ideas. Those who can read and understand poetry are seen to be more knowledgeable about the subject. Though it does not mean others are no good, it brings out the idea that perhaps reading any written work can make someone more knowledgeable. But again, it all comes down to mean that written texts can be and indeed are works of art.
One should be very careful when describing a written work as an art. Not everything can fall into the category of artistic practice. However, that is an expression of ideas presents written works as artistic. The literature self has been used for generations to define art in terms of creativity and expressiveness. We cannot deny the fact that it takes effort and knowledge to bring out the inner self of any human being. Apart from this, art is expressed as means of sharing knowledge and truth , which is carried in books.


Llanes has become a tourist exponent of the Principality. his unusual density of beaches, 30 in 35 coastal kilometers, and its proximity to the Cantabrian mountain make it an ideal place for nature tourism. The sierra del Cuera that surrounds it is the mountainous anteroom of the Picos de Europa. It also conserves a rich artistic heritage, And a rooted popular culture which manifests itself in an endless number of celebrations and own rites, mainly related to the agricultural and fishing tradition.
It limits to the East with the council of Ribadedeva, to the West with the one of Ribadesella. To the north with the Cantabrian Sea and to the South with Cangas de Onís and Cabrales.
From Cantabria by A-8 Santander -Unquera and then by the N-634 Unquera - Llanes.
From Galicia by the N-634 Ribadeo - Navia, the A-8 Navia - Canero, N-634 Canero - Avilés and finally taking the A-8 Avilés - Gijón - Llanes.
It keeps traces of the Paleolithic and the famous idol of Peña You. Belongs to the Bronze Age and presents one of the best preserved symbols of the time, with paintings and engravings and a good amount of burial mounds in the environment.
The medieval has left in the capital a defensive enclosure that began to be built as a result of the Carta Puebla granted by Alfonso XII to the town in the first third of the 13th century. In one of the neuralgic centers of the town, the Plaza de Cristo Rey, "the Basilica" emerges. A Gothic church that would take two centuries to get up; it started in 1240 and opened in 1480.
Throughout the council are located dozens of buildings type palace, made according to the pattern of the architecture of indianos. These houses combine regional and exotic materials with extravagance arrived after the overseas emigration. Also worth mentioning are the monasteries of San Antolín de Bedón and San Salvador de Celorio.
The festive events of the council are innumerable. In the capital, Magdalena celebrations the 22 of July; San Roque, the August 16, and The Guide, the 8 of September, all three are declared of tourist interest.
Spring Fair, May 11 (Posada de Llanes).
Fair of Santiago, 25 of July (Posada de Llanes).
Jornadas del Tortu, first weekend of April (Poo).
Seafood Days, 17-19 mayo (Llanes).
Sample of Cheeses from the East of Asturias, first Sunday of August (Andrín).
Certamen de la Huerta, third Sunday of August (Posada de Llanes).
Gastronomic Days of Fabada, Les Fabes and Verdinas de Llanes, beginning of November.
More info Gastronomic Days of Fabada, Les Fabes and Verdinas de Llanes.
Tourist Office of Llanes: Alfonso IX. La Torre Building Phone: 985 400 164.
City Council of Llanes: Nemesio Sobrino, s / n. Phone: 985 400 102.


text:
The Tempest: Division, Diversity & Trump
"Hell is empty and all the devils are here." The Tempest, Act I, Scene II
The rain water-cannoned across the roof and hurled itself against the walls of the glass box I live in, as it had, indeed, that night in June. A suitably apocalyptic backdrop for staying up watching the outcome of Brexit, this time (waiting, waiting, eyes fixed on those red and blue oblongs at the bottom of the TV screen) the ice storm raged.
All day I'd had a headache, quite rare for me, and an all-too-familiar sense of foreboding.
Though momentarily comforted by the sights in the news footage of epic queues (dominated by the women and hispanics that we'd been told would overwhelmingly vote for Hillary), though quite convinced the American people wouldn't be quite so cavalier, take quite such a risk (which, if we go on the popular vote, they didn't quite do), I just couldn't shake off this sense I had that this wasn't going to be the end of Trump, whatever happened.
Whatever I was hoping for.
I had a Trumption headache – accompanied by a feeling this ailment could last rather a long time.
After Ohio, I was certain, if not a little before. Even taking into account genome-coded partisanship, where was the democratic protest vote against Trump to counter the anti-establishment protest vote for him?
The protests were to come later. I suspect these could last rather a long time too.
If anyone at all could vote for a man who had said so many heinous things during his campaign – because, beyond the hardcore "basket of deplorables", I can't imagine there are actually that many people who agreed wholeheartedly with everything he'd said – then a lot of people could clearly put enough aside to carry him to power.
Their reasons for doing so are, of course, numerous; incalculable, in fact, without the testimony of 61.2 million American citizens. But Trump was right to make a direct comparison to Brexit, and clearly his campaign team lifted a lot of the Brexit blueprint of divide and conquer to inform their Brexit+++ strategy.
How much Trump and his team will now want to carry forward is the 17 trillion-dollar question – and the reason so many Americans now find themselves in tears, in tatters; experiencing a kind of pre-traumatic stress disorder, the promise of the Trump Era.
And, in the sleep-deprived and soul-searching days that have followed that stormy night, the hated media, and the hated politicians, have scrambled around to find ways to tell us it'll all be alright, when none of us knows.
I'm all for change, but I think good change happens when you spend a little time, before acting, reflecting on what you want to do and why you want to do it. And have a plan. Plans can change, too, of course – expand or retract, reshape, refocus – but if there's no clear plan at all to begin with, if it's all going to be just making it up as you go along, you had better be pretty damn elastic about what you want to achieve.
This was my biggest problem before Brexit: I couldn't see the plan; there didn't seem to be a clear plan. Which, nearly six months on, clearly there wasn't.
This wasn't my biggest problem with Trump, but, nevertheless, I couldn't decipher his real plan either, but the sketches of walls, mass deportations and the repealing of Roe vs. Wade (among others) were terrifying.
But, just like our Midsummer Night's scream, November's disunited States produced a result that has created more uncertainty in an ever-uncertain world (and opportunities, I'm not denying that – I'm not even denying that some positives could come from these outcomes, but I'm also not certain they won't be the cause of our long-term – or imminent – destruction. Are you? Certain?).
What we've all learned now, and I do think this is, ultimately, a positive thing, is that a lot of people feel (horrible, 'speak' word here, but the right one) disenfranchised. Not disengaged it's important to note (they wouldn't be voting at all were that the case), but voiceless, over-looked, desperate, fearful.
This wasn't Yes We Can. This was What Can We Do?
So now what do we do? In particular, what do we liberally-inclined, well-educated, metropolitan, 'virtue-signalling' inclusive types do now? How do we stop ourselves writing off nearly 50% of our fellow citizens with our bias? How do we stop ourselves going to war with our families, friends and co-workers?
And what of the content creators, the story tellers, residing in London (that little yellow heart in a sea of blue on the Brexit graphics), New York and Los Angeles (the blue edges of a scarlet America)? What new responsibilities do they need to craft? What new ways of seeing do they need to develop to hold a mirror up to this new world order?
Well, the first lesson should be that, clearly, ignoring people or shutting them down doesn't make them go away.
The first lesson, as always, is to listen.
The second is to strengthen, to resuscitate, in fact, our notion of democracy as one rooted in representing all points of view.
This has always been a real challenge I've had around the diversity agenda (and I run a diversity workshop). Mistakenly, in many peoples minds, diversity equals minorities; diversity is about 'the others'. If I'm in the majority, it's not about me, only about them.
Mistakenly, many organisations make their diversity initiatives solely centred around 'the others', so that, for the pale, male and stale majority (in corporate workplace culture, almost always a given) diversity is something that happens to them: they turn up to a workshop expecting diversity training to be 'done' to them in someway, not to be about them too.
But to get anywhere with the conversation – to get anywhere in helping anybody gain a better understanding and respect for otherness – you've got to include everybody.
Yes, it's vital we amplify the voices of those where there are less people able to shout out, but we can't let that drown out the majority until they fall silent (or, as a consequence, gather in small groups to whisper venomously in darks corners).
So many people have worked so hard and for so long to raise the voices of the oppressed, the marginalised, to bring stories of 'otherness' into the mainstream. In some ways, the story tellers in London, New York and LA have been so successful at this – and told such compelling stories – we've forgotten to see that in celebrating our otherness, others have felt left out in the cold (particularly, it seems, white working class people).
And they have a point. Think about it. Just think about what we see on TV. Leaving aside the news media (happily leaving that aside for now), how often do you see a positive representation of a white working class man? They're the rapists, drug dealers and serial killers in cop dramas. The bigots and bullies in any other dramatic genre. The deluded in talent contests. The deviants of reality TV.
And what of working class families? The caring Nineties (remember them?) were ushered in in the US with the #1 TV show Roseanne, where warm mid-Westerners, funny, decent folk, dealt with the pressures of low-income living and family life with spirit, community and grace (while always standing up for themselves).
(In the UK, nearly a decade later, we got our own equivalent with The Royle Family).
Where have they gone, these people, these stories? Look at the top-rated shows in the US today: Empire, Modern Family, The Big Bang Theory, Game of Thrones; all great shows; all, in one way or another, other.
Millions of people watch these shows; millions don't; and millions watch them with an increasing sense of unease that the others are taking over, that they're not the cool kids any more. That no one cares about them.
And we don't. We haven't. I've racked my brains but I can't think of a contemporary equivalent to either Roseanne or The Royle Family, of any white, working class, non-criminal narrative that pulls in an audience that truly crosses class divides.
(Interestingly, in my US ratings research, the two shows developed that you could argue have been aimed at a white, working class male population – American Grit and Strong – where both deemed turkeys).
As I've echoed before, we are the stories we tell. And we all need to be able to tell our stories. Sometimes we all need to pull focus, to remind ourselves, as well as everyone else, that we're still here.
In the aftermath of Brexit and the Trump Tempest, we can now have no doubt that there are new stories we need to uncover and understand. To bridge our divides, to rewrite our scripts, to stop our fellow citizens being strangers in our midsts, we've got to start talking to people, with people, rather than at them; it doesn't mean we others have to shut up (we mustn't shut up, now more so than ever), but we must resist the temptation to shut down as well.
Many feel the duct tape enforced upon them by the liberal elite has been ripped off for them now; they're able to scream out whatever they want. We might not want to hear it, but we've got to try to understand it. If we don't, they'll only scream louder and louder.
If we don't, eventually, they might decide it's time to shut us up once and for all, and that really would lead to the destruction of all of us, in all our glorious diversity.
Posted in Change, Culture, Diversity, SocietyTagged Brexit, Class, Clinton, disenfranchisement, Diversity, Hate, Inclusion, Liberal democracy, metropolitan elite, Politics, Trump, TV, White working classBy Matthew SinclairLeave a comment
← Heroes V Villains: Tricks V Treats
#2016Words: Post-Truth, Adulting & Snowflakes →


Bitcoin SegWit transactions now constitute over 40% of all Bitcoin network activity as adoption continues steady growth amongst scalability concerns.
Ethereums toughest battle to date: $ 100,000 digital cats.
The post What CryptoKitties Reveals About Ethereum Scalability Issues appeared first on CryptoCoinsNews.


to make the right choices and save big every time. At each page, scan the page for a coupon code or promotion code option. Wholesale shopping is likewise being offered. Apply your code and check whether shopchimney coupon your discount was reflected and continue your checkout. Below is the Easy 3 Step process to get your savings now! Step 1: Add the Item to your shopping cart. Copy and paste the Atlantic Cigar Company coupon code in the box next to the product and click "Apply" or "Submit". Smokers and tobacco merchants all over the world source the best cigars from Atlantic Cigar. Step 2: Go through the m checkout process. Atlantic Cigar guarantees fresh, premium cigars available in bundles, packs, and sampler packages.
37, atlantic Cigar, company coupons now on RetailMeNot. Atlantic Cigar, company coupons and promo codes as of Aug. Popular now: Check Out Specials Section for Huge Savings! Trust m for Collectibles savings. Save with 3 active.
If not, navigate back through the checkout process and try again. People can find numerous options online to consider and shop at Atlantic Cigar Company, using online coupon codes and discounts. If you have any questions about using your coupons online, please contact m Customer Service. Some sellers also offer Thank. Confirm that you are buying what you want, and that it fulfills any requirements to qualify for the Atlantic Cigar Company promotion code you want to use. Its inventory also features humidors, cigar cutters, butane fuel, ashtrays, lighters, cigar cases, and other accessories.


I have been analyzing TCGA Ovary Cancer data. In Somatic Mutation data, there is data of mutations in all the chromosomes (1-22 and X), but amazingly, I have found one (just one) row of Y Chromosome mutation as well. What can it mean?
Browse other questions tagged genetics cancer human-genetics tcga icgc or ask your own question.