The Third Wave is one of my favorite social experiments, one I've wanted to talk about for a long time now.
I've heard this question crop up quite a few times, "How did the Germans not realize what the Nazis were doing during the Second World War?" It's a logical question, asking how an entire nation could simply not know of concentration camp systems and the death of somewhere between 6 million and 10 million people.
It's overwhelming to know that the Second World War is by far the most popular subject within history among high school students, yet that we still have so many misconceptions about it within our education system. Some simple points: Hitler wasn't a leftist, the Nazis are actually the bad guys in this story, and the German people have a rather strong case behind them actually not knowing of the terrors lurking within their own borders.
Let me introduce you to The Third Wave, a social experiment that took place in a Californian high school during April of 1967. High school history teacher Ron Jones found it difficult to answer the question proposed at the beginning of this article.
His students, your typical 15-year-old sophomores within a contemporary world history class, could not grasp the idea that the Germans claimed ignorance when it came to the extermination of the Jewish people within the Holocaust. Lost for words, Mr. Jones decided to demonstrate it to his students.
On the first day of the experiment, Mr. Jones forced his students to follow simple tasks: sitting upright, sitting "properly" in terms of posture, and having them do extensive drills to see just how fast they could follow instructions. He asked them to stand up whenever they needed to speak, their arms to their sides, and that they could not ask or answer a question without starting their sentence with "Mr. Jones,". He enforced strict classroom discipline, shaping himself to be a totalitarian figure – within the first day he witnessed a dramatic increase in "efficiency" among the students.
That was the end of the lesson, as he had intended it to be a one-day experiment.
However, after entering his classroom on the second day to witness his students still following the "rules" he had given them previously, he continued. He crafted his history class, from the laziest and slowest all the way up to the most academically exceptional, into a group of miniature nationalists.
He announced that they were all members of his new movement, "The Third Wave". He introduced them to the special salute, which resembled that of the 'Sieg Heil' Bellamy salute of the Nazi regime. He ordered them that as a community, they had to salute each other in and outside the class. It worked, and they agreed.
By the third day, everything was out of control. The experiment came to life, with a mind of its own. No longer was the "Third Wave" a group of thirty students in one classroom, it spread like wildfire around the school. By the end of the third day, Mr. Jones and his movement consisted of 200 participants from around the school.
It was recorded that the students showed an incredible amount of improvement in their academic skills and suddenly developed tremendous dedication to work and extreme motivation due to their new-founded patriotism. They were to show strength through dignity, strength through community, strength through involvement, and strength through pride.
Mr. Jones passed out membership cards, giving them each special assignments to "better the community" in which they were now involved in. Some kids designed banners with the insignia of the movement to hang around the school, others stopped non-members from entering classrooms, many passed out pamphlets in the hallways between classes in an attempt to recruit new members. Mr. Jones was astonished when members of his movement began reporting to him, ratting out their friends and fellow classmates for failing to abide to the strict set of rules given by Mr. Jones on the first and second days.
Mr. Jones realized that things were going too far, and on the fourth day of the experiment he terminated the continuation of his role within the cycle it was taking. He was starting to lose control of the kids, and the kids were starting to become brainwashed in a sense. They were becoming increasingly involved with the Third Wave movement, with their senses of 'discipline', 'community', and 'loyalty' overtaking their individuality. Several students were becoming anti-democracy in a sense, overturning individuality for a higher sense of being prominent "members" of the Third Wave.
Mr. Jones knew he had to end it quick, but decided to Segway the experiment towards his favor. He announced to the school that the Third Wave had gone national, and that the next day – the fifth and final day of the experiment – was going to be a special announcement from a so-called "presidential candidate" that happened to be a card carrying member of the movement itself. The kids were ecstatic, wearing arm bands bearing the symbolism of The Wave and dawned in similar clothing to showcase the "strength of community" among them. Mr. Jones ordered that all students within his movement were to attend a rally within the school's auditorium at noon the next day to witness the announcement personally.
At this point, there was a public outcry from teachers and parents alike. Apparently a few fist fights had broken out between the so-called "secret police" of the Wave and some "non-believers" who broke Mr. Jones' rules. Parents worried, not knowing or understanding the hidden meaning behind the social experiment. The words "cult" and "power abusive" were later recalled. Mr. Jones was under fire, being caught between a rock and a hard place in terms of what he actually set out to accomplish.
On the fifth and final day of the experiment, a Friday, the students gathered in the auditorium to witness what they thought was going to be history in the making. Eager and awaiting to see the presidential candidate that was going to recognize and speak for them, they were presented with an empty channel.
After a few moments, Jones announced that they had been a part of an experiment in fascism, on how the Germans went along with Hitler's plans without realizing the true intentions of the Nazi regime. He expressed how all the students in the room willingly and openly created a sense of superiority much like the German citizens had with the Aryan race before World War II even began.
They were then introduced to their presidential candidate as Mr. Jones ended his speech. He put on a film recording of Adolf Hitler's speeches which led into a documentary about Nazi Germany.
Since the experiment ended, it's been morphed into a book, a theater play, a full blown movie, and a 40-minute short, which I'll link below if you're interested in watching (blah, blah copyright rules blah, blah creative common rights and what not – it's on YouTube; sue them not me).
Of course, this isn't the only experiment to show the social aspects and psychological reality of Nazi Germany. Milgrim's psychological study on obedience proves to us what an authoritative chain of command does to people in position of execution.
So, if you or anyone you know every wonders "How did the Germans not realize what the Nazis were doing during the Second World War?", I hope you'll recall how Mr. Jones taught his kids.


text:
Q: How do I draw pixels with GIMP Python's gimp-drawable-set-pixel? Currently I have this code:
def my_script_function(image, drawable, text_value, int_value) :
   pixel = [0,0, 255, 255]
   for i in range(1,1600):
      for j in range(1,1600):
         pdb.gimp_drawable_set_pixel(drawable, i, j, 4, pixel)
   #gimp.set_background(02, 100, 255)
   pdb.gimp_image_flip( image, ORIENTATION_HORIZONTAL )
   return

pdb.gimp_image_flip( image, ORIENTATION_HORIZONTAL ) works fine, however, pdb.gimp_drawable_set_pixel(drawable, i, j, 4, pixel) returns this error:
Traceback (most recent call last):
  File "C:\Program Files\GIMP 2\32\lib\gimp\2.0\python\gimpfu.py", line 699, in response
    dialog.res = run_script(params)
  File "C:\Program Files\GIMP 2\32\lib\gimp\2.0\python\gimpfu.py", line 361, in run_script
    return apply(function, params)
  File "C:\Program Files\GIMP 2\lib\gimp\2.0\plug-ins\Example1.py", line 15, in my_script_function
    pdb.gimp_drawable_set_pixel(drawable, i, j, 4, pixel)
RuntimeError: execution error

Which, just tells me for some reason it's not running pdb.gimp_drawable_set_pixel(drawable, i, j, 4, pixel)
If you want to try it out, here's the entire script:
#!/usr/bin/env python

from gimpfu import *

# create an output function that redirects to gimp's Error Console
def gprint( text ):
   pdb.gimp_message(text)
   return

# our script
def my_script_function(image, drawable, text_value, int_value) :
   pixel = [0,0, 255, 255]
   for i in range(1,1600):
      for j in range(1,1600):
         pdb.gimp_drawable_set_pixel(drawable, i, j, 4, pixel)
   #gimp.set_background(02, 100, 255)
   pdb.gimp_image_flip( image, ORIENTATION_HORIZONTAL )
   return

# This is the plugin registration function
register(
    "my_first_script2",
    "Hamburger",
    "This script draws some stuff2",
    "asdf",
    "asdf Company",
    "asdf 2015",
    "<Image>/MyScripts/My First Python-Fu",
    "*",
    [
      (PF_STRING, 'some_text', 'Some text input for our plugin', 'Write something'),
      (PF_INT, 'some_integer', 'Some number input for our plugin', 2010)
    ],
    [],
    my_script_function,
    )

main()

A: guint8 pixel[] = { 0xff, 0, 0, 0xff };

Is C not python and is invalid python syntax try:
pixel = [0xff, 0, 0, 0xff]

redpajama_set_name: RedPajamaStackExchange


Stuart's Fruit Farm is a family-operated farm located in Westchester County. Visiting Stuart's Fruit Farm in the autumn is an exceptional time of the year. Aside from the perfect apple picking with an array of apples take a hayride around the orchard, pick a few pumpkins, and visit the farm stand to buy fresh produce and the bakery for delicious apple cider donuts and homemade pies baked daily. Finally, before heading home have a picnic with your family to enjoy the beautiful fall foliage.


text:
Josh Rock stars in narrow defeat to Michael Van Gerwen at Grand Slam of Darts
Updated / Friday, 18 Nov 2022 08:00
21-year-old Rock made an impression. Photo: Taylor Lanning/PDC
Rising star Josh Rock landed a stunning nine-darter in his last-16 defeat to Michael van Gerwen in the Cazoo Grand Slam of Darts in Wolverhampton.
Van Gerwen edged an incredibly high-quality contest 10-8, but it was 21-year-old Northern Irishman Rock who made the headlines as he followed back-to-back 180s with a nerveless 141 checkout in the second leg.
It took a 142 checkout from Van Gerwen to edge ahead for the first time in the match at 8-7 and the three-time world champion averaged 107.71 in a thrilling battle.
"It's the best I've played in a long time, but I had to," Van Gerwen told Sky Sports.
"When you're playing a guy of this calibre you have to do the right thing for yourself. He's a phenomenal player and we all know that. He's a big talent. I told him 'keep going, you will be a champion on this stage'."
Rock, who appeared to injure himself celebrating the nine-darter, said: "I'll never forget that. I thought I'd broken my ankle afterwards. But it didn't affect me during the game.
"If you hit a nine-darter on stage, I know it's only one leg, but nine perfect darts gives you a lot of confidence, so it just gives me a big massive boost."
Josh Rock
Accreditation: PA
Price recovers to see off Noppert in Wolverhampton

redpajama_set_name: RedPajamaCommonCrawl


text:
← St. John's Abbey to Give Information
Women accuse St. John's Abbey priest of abuse →
Details still eerie 28 years after girls were slain
Mary Reker's last diary entry is just as chilling today as when it was discovered 28 years ago, shortly after the 15-year-old St. Cloud girl and her younger sister, Susanne, were stabbed to death.
"Should I die," she wrote just before Labor Day 1974, "I ask that my stuffed animals go to my sister. If I am murdered, find my killer and see that justice is done. I have a few reasons to fear for my life and what I ask is important."
With Mary's last wish for justice still unfulfilled, the sisters' unsolved murders returned to the headlines this week when Stearns County authorities said they are investigating a priest who is a suspect in several decades-old sex-abuse cases involving children.
The priest, the Rev. Richard Eckroth, 75, a monk at St. John's Abbey in Collegeville, took the girls and other church youth to a lakeshore cabin in Beltrami County two years before the sisters died.
Stearns County Sheriff James Kostreba said Eckroth is among several suspects "we're taking another look at" in connection with the 1974 double murder.
Eckroth has denied any wrongdoing. He could not be reached Wednesday for comment. In the 1990s, at the insistence of the girls' parents, he took and passed a polygraph test, the sheriff said.
Kostreba said Wednesday that Mary's diary entry showed that she had reason to be afraid for her life. "But what was that reason?" the sheriff asked. "It's been a difficult road or we wouldn't be where we are, we'd be done with it."
The slayings have been investigated for years, but there has never been enough evidence to bring criminal charges. Yet vivid clues remain, ranging from Mary's diary to her watch, which was frozen at 3:25 when her body was pulled from an abandoned quarry 26 days after the girls disappeared.
Here's what is known about the Reker sisters and their last day:
On Sept. 2, 1974, the girls talked about heading to a nearby Zayre discount store to buy school supplies.
Mary, a sophomore at St. Francis High School in Little Falls, told her mother she also wanted to look for a winter coat.
Susanne, 12, was going to tag along.
As their father, Fred, painted their modest home, and their mother, Rita, hung up the wash, the girls set off about 11:10 a.m. for the milelong walk to the store.
Mary was wearing wire-rimmed glasses, blue jeans, brown oxford shoes, a short-sleeved white sweater and an Army fatigue shirt with REKER stitched above the left pocket.
Susanne was wearing navy-blue corduroys, gold wire-rimmed glasses, a white cotton jacket and low-cut boots. The manager at the Shopko store on their route saw the girls before noon.
At 1 p.m., Jacob Yunger, a neighbor, chatted briefly with them at Zayre. In a 1977 interview with the Minneapolis Star, Yunger said he heard Susanne tell Mary: "I don't want to go with that man. I don't like him. Let's not."
Yunger said the girls walked toward the store's grocery section, which was closed for Labor Day. The women's coat section was in the same area. A worker in the grocery section was convicted two years later for stabbing a St. Cloud girl. Another grocery worker was a friend of a boy Mary had dated.
Another onetime suspect who lived six blocks from the Rekers was sentenced to life in prison in 1979 for the stabbing death of an 8-year-old Colorado girl. Kostreba said Wednesday that none of them is considered an "active" suspect in the Reker case.
Yunger told police he saw a nervous-looking large man waiting outside the store about the time the girls left. Another witness told police that he saw the sisters at a tavern on the other side of St. Cloud with two men and about a dozen teenagers. He remembers the REKER on Mary's shirt.
A few people living by the abandoned Meridian Aggregates Quarry southwest of St. Cloud said they saw girls matching the Rekers' description heading to the popular swimming area that afternoon.
When the girls didn't come home by 6 p.m., their parents went to the police. Nearly four weeks later, on Sept. 28, 1974, two teenage boys walking in the area found the bodies.
Susanne had been stabbed 13 times. Her fully clothed body was found under a bush about 13 yards from the quarry. Her glasses and jacket were a few feet away.
Mary had been stabbed six times. Her body was found on a ledge under 25 to 40 feet of water. Her pants and underwear were found strewn on the cliff as if someone had tried to throw them into the water. Her bra had been cut into four pieces; the front of her sweater was not found.
Rita Reker said this week there is no evidence connecting Eckroth with her daughters' deaths. She doubts he did it.
Twenty years after the killings, Fred Reker said: "We've learned to go on, but it still gnaws at you. Who did this and why? And does the person who knows about it continue to cover up for the killer?"
– Curt Brown is at curt.brown@startribune.com.
Details still eerie 28 years after girls were slain // The sisters may have been sighted at a tavern and near the quarry the day they vanished.; Curt Brown; Staff Writer
Minneapolis Star Tribune 05-09-2002
Topics: Jim Kostreba, Richard Eckroth


text:
{% extends "base.html" %}
{% load i18n %}

{% load url from future %}
{% comment %}

  layerindex-web - top level page template

  Copyright (C) 2013 Intel Corporation
  Licensed under the MIT license, see COPYING.MIT for details

{% endcomment %}

{% block content %}

                        {% block branch_selector %}

                            Branch: {{ url_branch }}

                                {% for branch in all_branches %}

                                        {% if branch.name = url_branch %}{% endif %}
                                        {{ branch.name }}
                                        {% if branch.short_description %}
                                        ({{ branch.short_description }})
                                        {% endif %}
                                        {% if branch.name = url_branch %}{% endif %}

                                {% endfor %}
                                {% if oe_classic %}

OE-Classic

                                {% endif %}

                        {% endblock %}

                        {% block navs %}{% endblock %}

            {% block content_inner %}{% endblock %}

{% endblock %}

redpajama_set_name: RedPajamaGithub


text:
Agribusiness & Food | Agribusiness lawyers
Projects, Energy & Resources
Telecommunications, Media, Entertainment & Technology
Competition, Trade & Regulatory
Corporate, Private Equity, M&A and Commercial
International Funds
Publication downloads
Hubs - Australia
Australia-English
Change this Page to
Available in 12 locations and 7 languages
China中文English日本語
China Hong Kong SAREnglish中文
Japan日本語English中文
SingaporeEnglish中文
BelgiumEnglish
UAEEnglish
Global WebsiteEnglish中文
Draft legislation reflects Harper recommendation to streamline formal merger clearance process
A key recommendation of the Harper Review was the combination and streamlining of the current merger authorisation process with a revamped formal merger clearance process. The draft legislation sets out the new combined process but differs in some respects from the framework proposed by the Harper Review.
Currently, parties wishing to have a merger reviewed have three options: the ACCC's informal merger clearance process (which is non-statutory and the most popular option), the formal merger clearance process (which is set out in the CCA and has never been used) or merger authorisation (which is heard by the Australian Competition Tribunal and involves a public benefit test).
Harper criticism of the current formal clearance process
Whilst the Harper Panel was supportive of the concepts of a formal merger clearance process and authorisation, it found that the existing processes are unsatisfactory and should be reformed. Particular reference was made to the unduly complicated and strict technical requirements for a compliant formal merger clearance application and the fact that the merger authorisation process has seldom been used.
Since the current framework was introduced in 2007, no party has sought formal merger clearance from the ACCC and only three parties have sought merger authorisation from the Tribunal (one of which was withdrawn).
The Harper Panel recommended that the two processes be combined and set out the elements of a general framework for a new process, with the ACCC to be the decision maker at first instance and empowered to authorise mergers which it is satisfied do not substantially lessen competition, or alternatively, result in public benefits that outweigh any detriments.
The Government supported this recommendation.
Key elements of the new process
The key elements of the new combined merger review process in the draft legislation are:
the ACCC will be the decision maker at first instance and empowered to authorise a merger on the basis of a net public benefits test - that is, if the merger would be likely to result in public benefits and those benefits outweigh the public detriment caused by any lessening of competition arising from the merger;
if the ACCC does not make a decision within 90 days of receiving an application, the ACCC will be deemed to have refused to grant authorisation, unless the applicant agrees to a longer period;
the Tribunal can review decisions of ACCC and will have 90 days in which to do so; and
the regulations may require merger parties to give a section 87B undertaking not to proceed with the acquisition while the Tribunal is considering the matter.
The two key differences between the draft legislation and the Harper proposal are that:
The Tribunal's review will not be a full-rehearing of the issues. Rather, its considerations must be limited to information referred to in the ACCC's decision, information given to the ACCC as part of the ACCC's review, any reports or other information required by the Tribunal from the ACCC and such other information as it considers it needs to clarify information provided by the ACCC.
In contrast, the Harper Review's recommendation was that the Tribunal would have the discretion to allow a party to adduce further evidence, in addition to what was before the ACCC. This difference of approach is said to be so that "parties have the incentive to put all relevant matters to the Commission in the first instance".
The application for authorisation of a merger must be in a form that is "approved by" the ACCC, rather than set out in regulations. This leaves the form and content of the application within the control of the ACCC, rather than subject to legislative stipulation.
The Harper Review believed it was important that there be no "prescriptive information requirements" for the new formal merger process in order for it to be attractive to merger parties. In this sense, the draft legislation is consistent with the Harper recommendation, however, whether or not the requirements imposed by the ACCC are "prescriptive" remains to be seen.
The streamlined authorisation process will also apply to applications for authorisation of conduct that contravene other sections of Part IV of the CCA. A merger authorisation will not automatically extend to any conduct involved with the merger that falls under Part IV. Merger parties will have to specify all relevant sections of Part IV in their authorisation application, so that the ACCC can grant a single authorisation that deals with both the merger and any other provisions.
For overseas mergers falling within section 50A of the CCA, the existing authorisation processes continue to apply.
Impact of the reforms
The vast majority of mergers will continue to be assessed via the informal merger clearance process. This process remains attractive in many cases due to its flexibility, informality and speed.
For complex or contested mergers, an alternative to the informal merger review process for complex mergers is a welcome development.
However, it will not bring greater certainty to merger reviews in the short term. Under the new process, the ACCC will continue to be front and centre. Its willingness to accept public benefits arguments in a mergers context has not been tested for many years, and it has a poor track record opposing mergers in the Tribunal and the Federal Court when required to prove its case.
Leaving the design of the application process to the ACCC also raises the prospect that the process could flounder before it begins, if the ACCC imposes onerous information requirements before it will accept an application as valid.
Whilst the ability to appeal to the Tribunal is sensible, it will add additional time to the overall process, as parties can no longer bypass the ACCC and apply straight to the Tribunal for a decision.
The ultimate success of the new process will be measured by its ability to deliver transparent and timely decisions in complex or contested cases, without unnecessary and overly burdensome requirements.
For the rest of Australian mergers, the outcomes of the ACCC's current review of its informal merger process are likely to be of greater significance. The increasing number of mergers being pre-assessed by the ACCC means there is less public transparency of ACCC decision making and little guidance on the approach being adopted in around 90% of mergers being considered by the ACCC. These reforms will not reverse this trend.
Caroline Coops
Sharon Henrick
Lisa Huett
Wayne Leach
T +61 2 9296 2327 / +61 419 602 617
Andrew Monotti
Peta Stevenson
View all key contacts
Have you checked out our new Data Hub? Data Central contains a range of resources to help our clients minimise the legal, regulatory and commercial risks this data-driven environment presents and ensure that its full value is being realised.
Visit the hub
Stay informed of the latest legal news and updates in Australia with our email newsletters.
ACCC exploring whether Australia's merger control...
The Australian Competition and Consumer Commission (the Commission) has recently cited difficulties in proving that some mergers would result in a breach of Australian competition laws as part of a...
They're back. 'Big stick' electricity laws re...
On 18 September the Federal Government reintroduced Treasury Laws Amendment (Prohibiting Energy Market Misconduct) Bill 2019 into Parliament.
Important Developments In The ACCC's Cartel Immunity...
From 1 October 2019, the ACCC will apply an updated cartel immunity and cooperation policy.
Consumer Data Right In Energy - Are You Ready?
The CDR is coming to the energy industry and it has the power to fundamentally change the way the energy industry manages and controls consumer data.
Legal services for your business
Abuse of Market Power
About King & Wood Mallesons
Subscribe to KWM publications
© 2020 King & Wood Mallesons. 京ICP备05084598号-1
Terms of use & legal notices | Privacy statement
This site uses cookies to enhance your experience and to help us improve the site. Please see our Privacy Policy for further information. If you continue without changing your settings, we will assume that you are happy to receive these cookies. You can change your cookie settings at any time.
For more information on which cookies we use then please refer to our Cookie Policy.


text:
Der Ehestetter Hof ist ein Wohnplatz der Gemeinde Albstadt im baden-württembergischen Zollernalbkreis. Die Einzelsiedlung liegt circa zwei Kilometer südöstlich von Ebingen und ist über die Bundesstraße 463 zu erreichen.

In der Nähe liegen Ehestetter Mühle, Ehestetter Pumpwerk und  Ruine Ehestetten.

Geschichte
Der Ort wird 1084 erstmals erwähnt. Im Jahr 1094 schenkten Landold und sein Sohn Hug Grundbesitz in Ehestetten samt der Kirche an das Kloster Sankt Georgen, das die Burg (castrum) zerstören ließ. Der Ort war Teil der Grafschaft Hohenberg und der Herrschaft Werenwag.

Im Jahr 1444 wurde der Ort von Eberhard von Hörnlingen als Inhaber der Herrschaft Werenwag an den Ebinger Bürger Renhard von Melchingen und von diesem 1453 an die Stadt verpfändet. Das Kloster Sankt Georgen verkaufte 1416 die Güter an Ebinger Bürger und gab 1533 den Kirchensatz an die Stadt. Damals waren nur noch Kirche, Mesnerhaus und Mühle vorhanden.

Die Kirche wird heute als Scheune benützt.

Weblinks

 Ehestetter Hof bei LEO-BW

Ort im Zollernalbkreis
Einzelsiedlung
Ersterwähnung 1084
Geographie (Albstadt)

redpajama_set_name: RedPajamaWikipedia


Praise God for revealing himself by his word, and ask him to help you hear and respond to it with repentance and faith by his Spirit at work in you. Read 2 Kings 23:1-30.
What does Josiah do in this chapter? Why do you think the author of Kings goes into such detail in his account?
What is God's response to Josiah's reforms? Why does he respond in this way? Is God just in his actions?
How does Josiah's life end? How does the means of his death foreshadow what is to come?
Even Josiah, with all his reforms, is unable to save Judah from God's judgement. In what way is Jesus different to Josiah? Read Romans 3:21-26.
As Christians we live with the tension of continuing to put off sin, while trusting in Jesus' death on our behalf to save us.
Do you tend toward one end of that equation as you wrestle with sin in your life? How might the knowledge of God's grace both assure you of forgiveness, and prompt you to change?
Give thanks to God for the death of his Son on your behalf.
Ask God to give your assurance of your salvation as you continue the fight to put off sin on your life.


The Curtin University is delighted to offer a three year fully funded PhD scholarship in Public Health. The scholarship is available for an outstanding candidate to conduct research at the interface of Health Economics and Systems Modelling at the School of Public Health.
Curtin University is an Australian public research university based in Bentley and Perth, Western Australia. The university is named after the 14th Prime Minister of Australia, John Curtin, and is the largest university in Western Australia, with over 58,000 students.
Students whose first language is not English must demonstrate proficiency in English by submitting satisfactory scores from the Test of English as a Foreign Language (TOEFL).
Course Level: Scholarship is available for pursuing PhD programme.
Study Subject: Scholarship is awarded to conduct research at the interface of Health Economics and Systems Modelling at the School of Public Health.
Scholarship Award: This is a three year fully funded PhD scholarship.
Number of Scholarships: There is only one scholarship available.
Eligible Countries: Australian and international students are eligible to apply.
Preferably have experience of publishing peer-reviewed research.
English Language Requirements: Students whose first language is not English must demonstrate proficiency in English by submitting satisfactory scores from the Test of English as a Foreign Language (TOEFL).
A brief covering letter (no more than 2 sides A4) that addresses the eligibility criteria. The letter should explain why you are interested in the project and how your skills, attributes and experience make you a good candidate for the award.
Thank you for reading on Asetena.com Share this article with your family and friends.
Follow us on Facebook, Twitter and Instagram for more updates.
Enter your email address to subscribe to and receive notifications of new posts by email.
© 2017 - 2019 - Asetena. All Rights Reserved.
Click here to learn how to make money online in Ghana.


Your Allies In Customer Relationship Management.
Putting your customers first, together.
Changing markets demand a change in meeting your customers' needs. We take the time to listen, understand and build a solution just for you.
We've got the best and brightest to guide you through launch and integration. If it's your goal to deliver a five-star customer experience, it's the mission of our Salesforce experts to get you there.
Call us "customer-experience obsessed." We focus on every customer segment, building solutions specific to each. Reach more customers and prospects and engage with them like never before.
Get on track and moving forward.
We'll build you a roadmap to success to get you where you want to be without feeling overwhelmed. Our CRM team brings knowledge and empathy to the table, building solutions custom to you and no one else.
Propel change in your business.
You know you're ready for better, let us take it from here. Our team of Salesforce experts will help you navigate the CRM integration process from beginning to end with a personalized journey.
Make your customer relationship goals a reality.
MST Solutions is more than just a partner.
We'll win your customers together.
We know you're dedicated to providing your customers with a brand experience unlike any other. When you choose us to enhance their engagement, you'll find in us an unparalleled dedication to your company's mission. We'll guide you, listen to your needs and fight unitedly for what is right.


text:
[ ![Download](https://api.bintray.com/packages/fantasy1022/maven/FancyTrendView/images/download.svg?version=0.8.2) ](https://bintray.com/fantasy1022/maven/FancyTrendView/0.8.2/link)
[![Build Status](https://travis-ci.org/fantasy1022/FancyTrendView.svg?branch=master)](https://travis-ci.org/fantasy1022/FancyTrendView)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/1cbed3bc8a6f416a9ddb9da965d567a6)](https://www.codacy.com/app/fantasy1022/FancyTrendView?utm_source=github.com&utm_medium=referral&utm_content=fantasy1022/FancyTrendView&utm_campaign=Badge_Grade)
[![GitHub license](https://img.shields.io/hexpm/l/plug.svg)](https://github.com/fantasy1022/FancyTrendView/blob/master/LICENSE)

The custom UI view including animation and typing text.

The behavior of Android APP is like Google trend web. https://trends.google.com/trends/hottrends/visualize

![Screenshots gif](https://raw.githubusercontent.com/fantasy1022/FancyTrendView/master/art/showcase.gif)

# Sample project
You can download the latest sample APK from this repo here: https://github.com/fantasy1022/FancyTrendView/blob/master/sample.apk

It's also on Google Play:

# Gradle Dependency

### Repository

### Library

```gradle
dependencies {
	// ... other dependencies here
    compile 'com.fantasy1022.fancytrendview:library:0.8.2'
}
```

# How to use

## XML
```xml
    <com.fantasy1022.fancytrendview.FancyTrendView
        android:id="@+id/googleTrendView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:colorArray="@array/trendcolors"
        app:cursorBlinkInterval="300"
        app:cursorBlinkTimesAfterTypeDone="10"
        app:cursorWidth="3dp"
        app:flipDirection="random"
        app:flipSpeed="1000"
        app:textArray="@array/demoTrendArray"
        app:textChangeType="random"
        app:textSize="10sp"
        app:typedSpeed="200" />
```

### colorArray
Use it to define color code.
```xml
  <item name="material_blue" type="color">#FF4285F4</item>
    <item name="material_red" type="color">#FFea4335</item>
    <item name="material_green" type="color">#FF34a852</item>
    <item name="material_yellow" type="color">#FFfabb05</item>

    <integer-array name="trendcolors">
        <item>@color/material_blue</item>
        <item>@color/material_red</item>
        <item>@color/material_green</item>
        <item>@color/material_yellow</item>
    </integer-array>
```

### cursorBlinkInterval
This attribute indicates type cursor blink interval.
```xml
app:cursorBlinkInterval="300" //ms
```

### cursorBlinkTimesAfterTypeDone
This attribute indicates how many times for cursor blinking after type text done.
```xml
app:cursorBlinkTimesAfterTypeDone="10" //times
```

### cursorWidth
This attribute indicates how width about cursor.
```xml
app:cursorWidth="3dp"
```

### flipDirection
This attribute indicates the changing trend direction inclunding random, up, down, left and right. The random direction includes other four direction.
```xml
app:flipDirection="random" // random, up, down, left and right.
```

### flipSpeed
This attribute indicates how much time in flip trasition between two trend. Much time means the flip is slower.
```xml
app:flipSpeed="1000" //ms
```

### textArray
Use it to define trend text.
```xml
    <string-array name="demoTrendArray" translatable="false">
        <item>Google</item>
        <item>Apple</item>
        <item>IBM</item>
        <item>Microsoft</item>
        <item>HTC</item>
        <item>Amazon</item>
        <item>OPPO</item>
        <item>Asus</item>
    </string-array>
```

### textChangeType
This attribute indicates text array showing order.
```xml
app:textChangeType="random" //random, increase, decrease
```

### textSize
This attribute indicates text size
```xml
 app:textSize="10sp"
```

### typedSpeed
This attribute indicates the interval between two character.
```xml
app:typedSpeed="200" //ms
```


The gallbladder is a small organ whose function is to store and release bile, which is a digestive fluid secreted by the liver. Bile performs the critical function of breaking down fats so they can be absorbed by the digestive tract.
Gallbladder removal surgery is usually performed when gallstones have formed in the gallbladder, blocking the flow of bile and causing pain.
In a traditional gallbladder surgery, known as "open cholecystectomy", a large incision is made just below the ribs on the right side of the abdomen. The liver is moved to expose the gallbladder. The blood vessels and ducts to and from the gallbladder are cut and clipped, and the gallbladder is removed. The patient is under general anesthesia for the procedure.
During a laparoscopic gallbladder surgery, a small incision is made in the abdomen and a hollow tube called a trocar is inserted through the incision into the abdominal cavity.
A video camera is then inserted through the trocar. The camera is connected to a television monitor in the operating room and the surgery is performed using the TV monitor to guide the surgeon. Several small incisions are made in other areas of the abdomen and trocars are inserted into the abdominal cavity.
Small surgical tools, including scissors, forceps, graspers and other instruments, are advanced through the trocars to perform the surgery. The ducts, arteries and other anatomical attachments to the gallbladder are cut and clipped, and the gallbladder is removed.
The surgeon must correctly identify each duct and artery and be sure he or she is cutting and clipping the proper ones. Mistakenly cutting, clipping or nicking the common bile duct, for example, rather than the cystic duct can lead to serious injury or death, as can nicking or cutting adjacent organs.
• Administration of general anesthesia to the patient.
• The abdomen is inflated with carbon dioxide to create enough space that the surgeon can see and maneuver inside the abdominal cavity.
• Several small incisions are made, including one in the naval.
• A laparoscope is inserted, which is attached to a camera, allowing the doctor to see inside the abdomen and identify the ducts and organs.
• Using the camera and TV screen as a guide, surgical instruments are inserted through the other incisions. These instruments are used to cut the ducts and blood vessels and place small metal clips on them.
• The gallbladder is separated from the liver and the gallbladder is removed.
• Finally, the carbon dioxide is removed from the abdomen and the incisions are closed with stitches.
The organs and ducts involved in laparoscopic gallbladder surgery are small and close together. The surgeon is working by television camera rather than by direct vision and direct contact. For these reasons, laparoscopic surgery must be performed carefully, by a well-trained surgeon, or terrible consequences can result. An injury that can occur during the procedure is the cutting of the common bile duct or common hepatic duct. It is essential for the surgeon to be careful in properly identifying the ducts he/she intends to cut and be absolutely certain that he or she is cutting and clipping the proper one. If the bile duct is mistakenly cut during the surgery, bile will seep into the abdominal cavity and this can cause serious injury or death. Also, cutting or lacerating another organ, such as the intestine (bowel) can cause serious injury or death.
The gallbladder is connected to the common bile duct through the cystic duct. Injuries also occur when the surgeon improperly attaches the clips to the cystic duct.
Improperly performed laparoscopic gallbladder surgery can lead to bile leakage, infection, bile peritonitis, abscess and death. Biliary duct injuries caused by surgeons can be devastating and sometimes fatal.
In addition, the common bile duct or hepatic duct can be damaged during the surgery, causing strictures or narrowing of the duct. Despite corrective surgery, the patient may continue to suffer permanent pain and/or digestive problems as a result.
Another problem after injury is cholangitis, an infection or inflammation of the bile ducts, causing bacteria and other waste products in the small intestine to flow upward causing infection. Cholangitis can be life-threatening if not treated.
Bile peritonitis (bile leaking into the abdominal cavity) and/or infection can lead to organ failure and death, and must be acted upon immediately. Again, immediate surgical action must be taken to prevent serious injury or death.
This is one of the most commonly performed surgeries in the United States, and sometimes unskilled doctors undertake the procedure without proper experience and training, putting their patients at risk and causing serious harm.
Berger & Lagnese represents people who have been injured by errors or mistakes during laparoscopic gallbladder surgery, including cutting the common bile duct or hepatic duct, or clipping or cutting the wrong artery or duct. Our attorneys specialize in medical malpractice cases in Pennsylvania, including Pittsburgh, Greensburg, Beaver, Uniontown, Erie, and Washington PA.


text:
Tag: the staircase
Movie Reviews, Not Books
The Staircase [series review]
February 26, 2019 February 25, 2019 Sarah
The Staircase begins by setting the scene of a horrific accident: a woman, Kathleen Peterson, who had fallen down the staircase of her own home while her husband Michael was outside, far out of earshot. The emergency services call made by Michael upon the discovery of his wife is downright harrowing and raised goosebumps on my arms. It was clear he was devastated, hysterical even. While I found the story itself to be quite tragic, it all seemed to be rather cut-and-dry to me and I had to wonder how this was worth making a 13-episode documentary about. The Staircase's biggest weakness is the lack of punch it brings to its beginning. Had I not heard people rave about it, I probably wouldn't have even continued with the series but I just needed to know why it seemed to fascinate so many people.
While in cases like these it often seems easy to assume the husband is in the wrong, I just didn't get that feeling here. I was confused as to why the police even thought something was amiss. To be honest, this is something that doesn't clear up for me as the story continues. While the medical examiner stated that she didn't find the wounds to be consistent with a fall, I never really understood why. There are conflicting testimonies surrounding this so-called fact and it seemed odd to me that a consensus couldn't be reached. Without even substantial evidence that this was not the result of an accident, it was difficult for me to turn Michael Peterson into a perpetrator of what could not even be proven to be a crime.
The second episode set my anxiety in motion and made the whole series a lot more personal to me. The prosecution discovers that not only is Michael Peterson bisexual, but that he has had one-night stands with men throughout his marriage. Every person in Michael and Kathleen's lives had vouched that they had a solid, loving marriage and had never witnessed anything less than pure devotion between the two. For some, this information proves that this was nothing more than a facade; after all, how can a marriage be truly blissful if one of the partners is seeking sexual satisfaction elsewhere? They alleged that this was proof that Michael had killed his wife.
The thing is, Michael shared that while he and Kathleen never explicitly spoke of the matter, there was a silent understanding. She knew he was attracted to men, she knew he sought out men sexually, and she was okay with it. While this seems to come down to whether or not you believe Michael Peterson is a liar, a male prostitute who Michael had solicited is later brought in to testify and seems to confirm this story. He shares that he had been involved with many married men and that most of the time, these men's wives seemed to know and accept their husbands' transgressions. He testified that Michael had not only told him the same, but also that Michael spoke highly of his wife and seemed to be deeply in love with her.
I was terrified that this documentary had set out to demonize a bisexual man in an allegedly open relationship of sorts. As a polyamorous bisexual woman, this really hits home for me. Luckily, while that seemed to be the prosecution's argument, the documentary explored more of Michael's side of the story and the defense tackled the subject quite matter-of-factly. Sadly, this seemed to turn Kathleen's family on Michael. They truly believed there was no way Kathleen would have allowed this, that there was no way she could have known. In fact, one of her sisters even says in essence that if Michael could lie to them about being bisexual and sleeping with men, then it isn't the least bit unbelievable that he could have murdered Kathleen. Statements like this got my blood boiling. While I can understand their point of view to a certain extent, a man not wanting to out himself does not equate to murder.
The prosecution also pulls out another surprise: Elizabeth Ratliff, who had been a close friend of the Petersons when they lived in Germany, died in a similar incident years earlier. While this seems damning in name, none of the evidence supported it as a homicide. The doctors in Germany had ruled this the result of a cerebral hemorrhage — Liz had been experiencing headaches for weeks beforehand and blood was found in her cerebrospinal fluid. The same medical examiner who had announced Kathleen's cause of death as homicide also said that Liz had been murdered. I already didn't trust this ME, and most of the evidence seemed to indicate otherwise, so this wasn't a clincher for me.
There's a bit more to the series, so I'd recommend watching it if you haven't already. The above points were what drew my interest the most, though. I also found the "owl theory" quite compelling. Regardless, as Michael Peterson himself said, "Truth is lost in all of this now… This has become a show." Don't come to The Staircase looking for answers, come to The Staircase if you have an interest in true crime and the inner workings of the criminal justice system. You are not going to find out without a doubt who killed Kathleen Peterson, but you will see how a (relatively privileged white male) defendant moves through the system.
Tagged the staircase1 Comment


text:
Delta: We are Determined to Give Delta State a New Face-lift – Onogba
January 1, 2020 admin 0 Comments
Delta State Ministry of Environment under the watch of Hon. Chris Onogba is determined to clean up the environment with his strategic engagement, advocacy, sensitization of the people to be conscious to the fact that ownership of the environment gives one an edge to ensure an all-inclusiveness in sanitizing the environment.
Residents would have been in the position to access the achievements of the Ministry of Environment in collaboration with Asaba Capital Development Territory and the Waste Management Board owing to the fact that there has been a serious facelift of the Asaba Capital Territory, and some other towns across the state.
Hon.Chris Onogba while addressing journalists said the cleaning business is all encompassing, involving everybody to the right mind of getting the entire state super clean like every other city in Nigeria, and engaging the private sectors in beautifying the environment as it is now and more is underway.
He said all their efforts is being geared towards a clean city, in which the cleaning is done by humans who need to have an attitudinal change towards the environment.
Hon. Onogba said that there is a dire need to drive the ownership of the environment to the people to help police it, keep it clean, while they have achieve a reasonable feat including the Effurun/Warri axis, adding that he has no doubt that when the clean-up is completed,, Asaba people and Deltans will begin to feel the impact of their efforts.
Onogba who said in an interview that he had synergized with other sister environmental agencies in the state saddled with the responsibility of sanitizing the environment, and are going beyond boundaries to achieve their common goals of keeping the environment clean, said there is no need for territorial sharing and that his approach to life style is to create impact on the peoples life through his offices.
He said that apart from cleaning the environment, they have also done a lot in opening of canals and rivers, where Anwai River received a touch on mechanical distillation. He said the Mechanical Desiltation of the Anwai River was to enable it accommodate the volume of water channeled to it and to safeguard the fish farmers who have clusters of fish ponds around the river and that he also got approval to dredge the Iyiabi River along Ibusa road to minimize the flooding in the area.
Also in Patani a stretch of 15km canal was cleared, including canals in Uzere and Ughelli North, Ughelli South, and embarked on manual clearing of drainages in Oghara while Mosogar for the first time experienced flooding that attracted the ministry to evacuate sands blocking the drains in the community.
The commissioner who gave kudos to the state Governor, Dr. Ifeanyi Okowa for his wonderful support and commitment to ensure that the state was kept clean and for alleviating the sufferings of over 10,000 Deltans who were displaced by flood in 2019 and those numerous large number of people who refused to leave their homes during the flooding period, but received relief materials from the government.
The commissioner stated that power belongs to the people and that this present government will not fail to deliver on the mandate given to them by the people, adding that it is paramount for people to understand the need for collaboration in the business of cleaning the environment.
On the PSPs ,the commissioner said the Private Sector Participants (PSP) has posed a huge challenge in the sanitization business, saying that some of them do not have the capacity to perform due to lack of fund and people's attitude towards waste management , adding that in the last meeting they held, some were asked to merge for optimal performance.
He said that the ministry has the intention to raise a formidable taskforce that will embark on operation show your receipt while the state government had set up a committee to evaluate the services of the Private Sector Partnership.
Speaking further, Onogba said that the only available dump site in Oshimili South can accommodate more local governments while the incinerator plant is underutilized, adding that plans were on the way to set up a plant that has the capacity to separate plastic waste and that a China company will soon be on ground to set up a recycling plant that will also help to evacuate refuses and recycle plastic cans to other plastic products.
He assured that from January sanitation exercise will take a new dimension in the state as residents will be made to imbibe the culture of cleaning their environment on sanitation days and every other day in the state and to ensure that their refuses are disposed of, adding that paying the PSPs regularly will help solve the problems, knowing that one poor attitude towards the environment will turn around to hurt the people.
Onogba disclosed that the State Governor Senator Ifeanyi Okowa has mandated him to plant trees which he tends to begin in the new fiscal year while every little space in the state will be used for tree plantation to help the atmosphere in absorption of carbon dioxide and release of oxygen for human consumption.
He said that they would bring proposals to plant trees in 2020, while the environment will witness a total turn around and the consciousness to own the environment will be achieved, everybody will start to police the environment.
Onogba said that Deltans should expect more mechanical and manual distillation of drains and canals to tackle the flooding that have become a decimal occurrence while ministry would continue to do everything possible to ensure that they mitigate the effects of flooding, reduce the level of carbon emission through distribution of improved customized cooking stoves to the people.
Onogba who said that in 2020, Deltans should expect more trees planting, more evacuation of blockages in the drainages and canals, demolition of illegal structures, shanties and buildings blocking the natural waterways, adding that the he will deliver on the mandate given to him by the state governor, calling on Deltans help to help protect all government facilities in their domain and be more environmental friendly.
← New Year: Delta Deputy Speaker felicitates with constituency, Deltans
2020: Mulade sends greetings, welcomes Nigerians to a New Year →
Presidential tribunal verdict: Buhari reacts, makes statement on the way forward
Delta wins BIG at national sports festival as athletes to dance home with N232million from Governor Okowa
Delta former SSG to Buhari: You must actualize the September 2018 new minimum wage for workers
May 1, 2018 admin 0


text:
Posts Tagged: Tyler the Creator
Drake responds after Frank Ocean fans booed him off stage; Tyler, The Creator calls crowd 'a**holes' and 'rude'
Photos by WENN.com
Drake responded to "kids" booing him off the stage at Tyler, The Creator's annual Camp Flog Gnaw music festival in Los Angeles over the weekend.
The Canadian superstar was booed off the stage at the annual concert that showcases homosexual and bisexual musicians on one stage.
Drake was a surprise guest who performed nine songs after A$AP Rocky and Lil Uzi Vert finished their short sets.
According to WENN.com, it had been rumored that rapper Frank Ocean, 32, was scheduled to perform during the evening, so when the "God's Plan" rapper stepped onstage, he was met with a chorus of boos from the crowd.
Drake was baffled by the crowd's low energy and tried using psychology to get a rise out of them. "I'm here for you tonight. If you want to keep going, I will keep going," he said. But it didn't work, as the impatient concertgoers yelled "Nooooo!"
The rap superstar politely bid the crowd goodbye and ended his set 20 minutes early. "It's been love. I love y'all. I go by the name of Drake. Thank you for having me," he said.
The next day, Drake addressed the entitled crowd, joking that he signed a 10-year residency for the festival.
"Plot twist… just signed a 10 year residency at Camp Flog Gnaw sorry kids see you EVERY SINGLE YEAR till you are 30."
Plot twist...just signed a 10 year residency at Camp Flog Gnaw sorry kids see you EVERY SINGLE YEAR till you are 30 ?
A post shared by champagnepapi (@champagnepapi) on Nov 11, 2019 at 5:15pm PST
The reasons for the crowd's rude reaction to Drake's performance varied. Many say the young crowd expected to see LGBT+ musicians perform, but they got closeted rapper Drake instead.
According to Variety.com, Drake was simply too old for the entitled "young, sarcastic" Generation Z snowflakes in the audience.
"Hey, you know he is 33 now," Variety.com joked.
Tyler, The Creator ripped into the crowd, calling them "assholes" and "rude" for disrespecting the biggest rapper on the planet.
"I thought bringing one of the biggest artists on the f—ing planet to a music festival was fire!," he wrote. "But flipside, a lil tone deaf knowing the specific crowd it drew. Some created a narrative in their head and acted out like assholes when it didnt come true and i dont f— with that … That sh– was like mob mentality and cancel culture in real life and i think that sh– is f—ing trash."
Tags: Frank Ocean, gay celebrities, music festival, rapper Drake, Tyler the Creator, Video
Drake booed off the stage by Frank Ocean fans at Tyler, The Creator's Camp Flog Gnaw music festival
Photo by Karwai Tang/WireImage
Drake was booed off the stage by fans who expected to see Frank Ocean perform at Tyler, The Creator's Camp Flog Gnaw 2019 music festival in Los Angeles over the weekend.
The 33-year-old Canadian rapper was shocked by the negative reaction as he made a surprise appearance during a headline set shared with rappers Lil Uzi Vert and A$AP Rocky, pictured right with Tyler.
Photo by Bennett Raglin/Getty Images
Cell phone video uploaded to YouTube by YeeterzTV shows Drake attempting to perform despite the booing at Los Angeles' Dodger Stadium.
Drake tried using a little psychology, telling the audience: "I'm here for you tonight. If you want to keep going, I will keep going." But it didn't work, as the concertgoers replied "Nooooo!"
Embarrassed and humiliated, Drake cut his set short by 20 minutes, telling the crowd: "It's been love. I love y'all. I go by the name of Drake. thank you for having me."
Following his quick exit, many concertgoers took to Twitter to share the news. According to one Twitter user, fans at the festival were expecting to see performances by openly homosexual rappers, such as Tyler, 28, and Frank Ocean (pictured left), but they got the closeted rapper Drake instead.
"Fans at camp flog gnaw were expecting that Frank ocean was gonna be the surprise guest headliner... they got drake instead.. safe to say... they rather Frank ocean."
But others insisted Ocean had never been confirmed to perform at the festival, and they don't know how that rumor got started.
"Tyler, The Creator never said it was Frank Ocean or gave clues about it," one person tweeted. "That's y'all fault for being mad and assuming s**t. It should be whatever that A$AP Rocky, Lil Uzi Vert and Drake were the mystery guest for Camp Flog Gnaw."
Tags: A$AP Rocky, Frank Ocean, gay rapper, music festival, rapper Drake, Tyler the Creator, videos
DJ Khaled drops threat of lawsuit after Billboard moved his album to No. 1
Billboard dodged a lawsuit from angry rap producer DJ Khaled who was deeply hurt when his album, Father of Asahd, failed to debut at No. 1 on the charts last week.
Tags: album sales, Billboard charts, DJ Khaled, music streaming sales, Tyler the Creator
DJ Khaled Not Mad at Tyler, the Creator or His Record Label
Reports that DJ Khaled threw a tantrum at his record label over the sales of his album, Father of Asahd, were greatly exaggerated. A source says Khaled's anger had nothing to do with the record label or his label mate Tyler, the Creator.
Tags: album promotion, album sales, Billboard charts, DJ Khaled, music streaming sales, Tyler the Creator
New Music: Tyler, The Creator – Aint Got Time (Audio)
Hip hop is back. Designer/hip hop artist Tyler, The Creator released his 5th studio album, Flower Boy, on Thursday. His track "Aint Got Time" is burning up the airwaves.
Posted in new music
Tags: gay celebrities, gay rapper, music news, new album, Tyler the Creator
Open Post: Keyshia Cole Wants You to Know…
R&B Diva Keyshia Cole tapped musician Frank Ocean to record a duet on her long-anticipated 7th studio album.
Tags: album sales, Frank Ocean, Keyshia Cole, Tyler the Creator
Tyler, the Creator Asked Andre 3000 for Help When He Had a Mental Breakdown
Rap artist Tyler, the Creator recently suffered a mental breakdown. Tyler, who is rumored to be gay, revealed his mental issues in an article for his online magazine, Golf Media.
Instead of going to see a psychiatrist or a therapist who are paid to listen, Tyler called on rappers Andre 3000 and Earl Sweatshirt for advice to help him overcome his depression.
Tags: depression, depressive disorder, mental health disorders, nervous breakdown, Tyler the Creator
Jaden Smith Comes Screaming Out of the Closet; Professes His Love for Tyler the Creator
Actor and philosopher Jaden Smith outed himself this week in front of God, his parents and the love of his life, rapper Tyler the Creator. On Friday Jaden tweeted: "I Think Im In Love With You, I Don't Know I'm Still Figuring It Out But In The Meantime, Happy Birthday," Jaden tweeted to Tyler, whom many also assume is gay or bisexual.
Posted in Gay Pride
Tags: celebrity children who are gay, gay celebrities, Jada Pinkett Smith, Twitter.com, Tyler the Creator, Will Smith, Willow Smith
Tyler the Creator Photobombs Donald Trump
Billionaire real estate developer must have thought his wallet was safe when a black kid with dreads approached and asked him for a photo backstage at the Jimmy Kimmel Show earlier this week. After all, gang bangers don't usually hang out backstage at Jimmy Kimmel's.
The Donald clearly had no clue who these guys were when he obliged the kid a photo -- only to realize his error hours later when the photo went viral online.
Tags: celebrity news, celebrity photos, Donald Trump, photobomb, Social networking websites, Tyler the Creator
Miley Cyrus and Tyler the Creator kiss and make up
Tyler the Creator and Pharrell Williams like singer Miley Cyrus so much they wanted to take a picture with her. Pharrell tweeted this pic on Twitter.com Tuesday night.
The unlikely photo session is odd since everyone thought Miley and Tyler didn't like each other. The Odd Future frontman had nothing nice to say about Miley's new haircut in a recent tweet on his account.
Tags: hairstyle, Miley Cyrus, Pharrell Williams, twitter, Tyler the Creator


text:
using storage::FileSystemURL;

namespace sync_file_system {
namespace drive_backend {

namespace {

class SyncTaskAdapter : public ExclusiveTask {
 public:
  explicit SyncTaskAdapter(SyncTaskManager::Task task)
      : task_(std::move(task)) {}

  SyncTaskAdapter(const SyncTaskAdapter&) = delete;
  SyncTaskAdapter& operator=(const SyncTaskAdapter&) = delete;

  ~SyncTaskAdapter() override = default;

  void RunExclusive(SyncStatusCallback callback) override {
    std::move(task_).Run(std::move(callback));
  }

 private:
  SyncTaskManager::Task task_;
};

}  // namespace

SyncTaskManager::PendingTask::PendingTask() = default;

SyncTaskManager::PendingTask::PendingTask(base::OnceClosure task,
                                          Priority pri,
                                          int seq)
    : closure(std::move(task)), priority(pri), seq(seq) {}

SyncTaskManager::PendingTask::PendingTask(PendingTask&& other) = default;
SyncTaskManager::PendingTask& SyncTaskManager::PendingTask::operator=(
    PendingTask&& other) = default;

SyncTaskManager::PendingTask::~PendingTask() {}

bool SyncTaskManager::PendingTaskComparator::operator()(
    const PendingTask& left,
    const PendingTask& right) const {
  if (left.priority != right.priority)
    return left.priority < right.priority;
  return left.seq > right.seq;
}

SyncTaskManager::SyncTaskManager(
    base::WeakPtr<Client> client,
    size_t maximum_background_task,
    const scoped_refptr<base::SequencedTaskRunner>& task_runner)
    : client_(client),
      maximum_background_task_(maximum_background_task),
      pending_task_seq_(0),
      task_token_seq_(SyncTaskToken::kMinimumBackgroundTaskTokenID),
      task_runner_(task_runner) {}

SyncTaskManager::~SyncTaskManager() {
  weak_ptr_factory_.InvalidateWeakPtrs();

  client_.reset();
  token_.reset();
}

void SyncTaskManager::Initialize(SyncStatusCode status) {
  DCHECK(sequence_checker_.CalledOnValidSequence());
  DCHECK(!token_);
  NotifyTaskDone(
      SyncTaskToken::CreateForForegroundTask(
          weak_ptr_factory_.GetWeakPtr(), task_runner_.get()),
      status);
}

void SyncTaskManager::ScheduleTask(const base::Location& from_here,
                                   Task task,
                                   Priority priority,
                                   SyncStatusCallback callback) {
  DCHECK(sequence_checker_.CalledOnValidSequence());

  ScheduleSyncTask(from_here,
                   std::make_unique<SyncTaskAdapter>(std::move(task)), priority,
                   std::move(callback));
}

void SyncTaskManager::ScheduleSyncTask(const base::Location& from_here,
                                       std::unique_ptr<SyncTask> task,
                                       Priority priority,
                                       SyncStatusCallback callback) {
  DCHECK(sequence_checker_.CalledOnValidSequence());

  std::unique_ptr<SyncTaskToken> token(GetUnupdatedToken());
  if (!token) {
    PushPendingTask(
        base::BindOnce(&SyncTaskManager::ScheduleSyncTask,
                       weak_ptr_factory_.GetWeakPtr(), from_here,
                       std::move(task), priority, std::move(callback)),
        priority);
    return;
  }
  token->UpdateTask(from_here, std::move(callback));
  RunTask(std::move(token), std::move(task));
}

bool SyncTaskManager::ScheduleTaskIfIdle(const base::Location& from_here,
                                         Task task,
                                         SyncStatusCallback callback) {
  DCHECK(sequence_checker_.CalledOnValidSequence());

  return ScheduleSyncTaskIfIdle(
      from_here, std::make_unique<SyncTaskAdapter>(std::move(task)),
      std::move(callback));
}

bool SyncTaskManager::ScheduleSyncTaskIfIdle(const base::Location& from_here,
                                             std::unique_ptr<SyncTask> task,
                                             SyncStatusCallback callback) {
  DCHECK(sequence_checker_.CalledOnValidSequence());

  std::unique_ptr<SyncTaskToken> token(GetUnupdatedToken());
  if (!token)
    return false;

  token->UpdateTask(from_here, std::move(callback));
  RunTask(std::move(token), std::move(task));
  return true;
}

// static
void SyncTaskManager::NotifyTaskDone(std::unique_ptr<SyncTaskToken> token,
                                     SyncStatusCode status) {
  DCHECK(token);

  SyncTaskManager* manager = token->manager();
  if (token->token_id() == SyncTaskToken::kTestingTaskTokenID) {
    DCHECK(!manager);
    token->take_callback().Run(status);
    return;
  }

  if (manager)
    manager->NotifyTaskDoneBody(std::move(token), status);
}

// static
void SyncTaskManager::UpdateTaskBlocker(
    std::unique_ptr<SyncTaskToken> current_task_token,
    std::unique_ptr<TaskBlocker> task_blocker,
    Continuation continuation) {
  DCHECK(current_task_token);

  SyncTaskManager* manager = current_task_token->manager();
  if (current_task_token->token_id() == SyncTaskToken::kTestingTaskTokenID) {
    DCHECK(!manager);
    std::move(continuation).Run(std::move(current_task_token));
    return;
  }

  if (!manager)
    return;

  std::unique_ptr<SyncTaskToken> foreground_task_token;
  std::unique_ptr<SyncTaskToken> background_task_token;
  std::unique_ptr<TaskLogger::TaskLog> task_log =
      current_task_token->PassTaskLog();
  if (current_task_token->token_id() == SyncTaskToken::kForegroundTaskTokenID)
    foreground_task_token = std::move(current_task_token);
  else
    background_task_token = std::move(current_task_token);

  manager->UpdateTaskBlockerBody(
      std::move(foreground_task_token), std::move(background_task_token),
      std::move(task_log), std::move(task_blocker), std::move(continuation));
}

bool SyncTaskManager::IsRunningTask(int64_t token_id) const {
  DCHECK(sequence_checker_.CalledOnValidSequence());

  // If the client is gone, all task should be aborted.
  if (!client_)
    return false;

  if (token_id == SyncTaskToken::kForegroundTaskTokenID)
    return true;

  return running_background_tasks_.find(token_id) !=
         running_background_tasks_.end();
}

void SyncTaskManager::DetachFromSequence() {
  sequence_checker_.DetachFromSequence();
}

void SyncTaskManager::NotifyTaskDoneBody(std::unique_ptr<SyncTaskToken> token,
                                         SyncStatusCode status) {
  DCHECK(sequence_checker_.CalledOnValidSequence());
  DCHECK(token);

  DVLOG(3) << "NotifyTaskDone: " << "finished with status=" << status
           << " (" << SyncStatusCodeToString(status) << ")"
           << " " << token->location().ToString();

  if (token->task_blocker()) {
    dependency_manager_.Erase(token->task_blocker());
    token->clear_task_blocker();
  }

  if (client_) {
    if (token->has_task_log()) {
      token->FinalizeTaskLog(SyncStatusCodeToString(status));
      client_->RecordTaskLog(token->PassTaskLog());
    }
  }

  std::unique_ptr<SyncTask> task;
  SyncStatusCallback callback = token->take_callback();
  if (token->token_id() == SyncTaskToken::kForegroundTaskTokenID) {
    token_ = std::move(token);
    task = std::move(running_foreground_task_);
  } else {
    task = std::move(running_background_tasks_[token->token_id()]);
    running_background_tasks_.erase(token->token_id());
  }

  // Acquire the token to prevent a new task to jump into the queue.
  token = std::move(token_);

  bool task_used_network = false;
  if (task)
    task_used_network = task->used_network();

  if (client_)
    client_->NotifyLastOperationStatus(status, task_used_network);

  if (!callback.is_null())
    std::move(callback).Run(status);

  // Post MaybeStartNextForegroundTask rather than calling it directly to avoid
  // making the call-chaing longer.
  task_runner_->PostTask(
      FROM_HERE,
      base::BindOnce(&SyncTaskManager::MaybeStartNextForegroundTask,
                     weak_ptr_factory_.GetWeakPtr(), std::move(token)));
}

void SyncTaskManager::UpdateTaskBlockerBody(
    std::unique_ptr<SyncTaskToken> foreground_task_token,
    std::unique_ptr<SyncTaskToken> background_task_token,
    std::unique_ptr<TaskLogger::TaskLog> task_log,
    std::unique_ptr<TaskBlocker> task_blocker,
    Continuation continuation) {
  DCHECK(sequence_checker_.CalledOnValidSequence());

  // Run the task directly if the parallelization is disabled.
  if (!maximum_background_task_) {
    DCHECK(foreground_task_token);
    DCHECK(!background_task_token);
    foreground_task_token->SetTaskLog(std::move(task_log));
    std::move(continuation).Run(std::move(foreground_task_token));
    return;
  }

  // Clear existing |task_blocker| from |dependency_manager_| before
  // getting |foreground_task_token|, so that we can avoid dead lock.
  if (background_task_token && background_task_token->task_blocker()) {
    dependency_manager_.Erase(background_task_token->task_blocker());
    background_task_token->clear_task_blocker();
  }

  // Try to get |foreground_task_token|.  If it's not available, wait for
  // current foreground task to finish.
  if (!foreground_task_token) {
    DCHECK(background_task_token);
    foreground_task_token = GetUnupdatedToken();
    if (!foreground_task_token) {
      PushPendingTask(
          base::BindOnce(&SyncTaskManager::UpdateTaskBlockerBody,
                         weak_ptr_factory_.GetWeakPtr(),
                         std::move(foreground_task_token),
                         std::move(background_task_token), std::move(task_log),
                         std::move(task_blocker), std::move(continuation)),
          PRIORITY_HIGH);
      MaybeStartNextForegroundTask(nullptr);
      return;
    }

    foreground_task_token->UpdateTask(background_task_token->location(),
                                      SyncStatusCallback());
  }

  // Check if the task can run as a background task now.
  // If there are too many task running or any other task blocks current
  // task, wait for any other task to finish.
  bool task_number_limit_exceeded =
      !background_task_token &&
      running_background_tasks_.size() >= maximum_background_task_;
  if (task_number_limit_exceeded ||
      !dependency_manager_.Insert(task_blocker.get())) {
    DCHECK(!running_background_tasks_.empty());
    DCHECK(pending_backgrounding_task_.is_null());

    // Wait for NotifyTaskDone to release a |task_blocker|.
    pending_backgrounding_task_ = base::BindOnce(
        &SyncTaskManager::UpdateTaskBlockerBody, weak_ptr_factory_.GetWeakPtr(),
        std::move(foreground_task_token), std::move(background_task_token),
        std::move(task_log), std::move(task_blocker), std::move(continuation));
    return;
  }

  if (background_task_token) {
    background_task_token->set_task_blocker(std::move(task_blocker));
  } else {
    base::Location from_here = foreground_task_token->location();

    background_task_token = SyncTaskToken::CreateForBackgroundTask(
        weak_ptr_factory_.GetWeakPtr(), task_runner_.get(), task_token_seq_++,
        std::move(task_blocker));
    background_task_token->UpdateTask(from_here,
                                      foreground_task_token->take_callback());
    running_background_tasks_[background_task_token->token_id()] =
        std::move(running_foreground_task_);
  }

  token_ = std::move(foreground_task_token);
  MaybeStartNextForegroundTask(nullptr);
  background_task_token->SetTaskLog(std::move(task_log));
  std::move(continuation).Run(std::move(background_task_token));
}

std::unique_ptr<SyncTaskToken> SyncTaskManager::GetUnupdatedToken() {
  DCHECK(sequence_checker_.CalledOnValidSequence());
  return std::move(token_);
}

void SyncTaskManager::PushPendingTask(base::OnceClosure closure,
                                      Priority priority) {
  DCHECK(sequence_checker_.CalledOnValidSequence());

  pending_tasks_.push(
      PendingTask(std::move(closure), priority, pending_task_seq_++));
}

void SyncTaskManager::RunTask(std::unique_ptr<SyncTaskToken> token,
                              std::unique_ptr<SyncTask> task) {
  DCHECK(sequence_checker_.CalledOnValidSequence());
  DCHECK(!running_foreground_task_);

  running_foreground_task_ = std::move(task);
  running_foreground_task_->RunPreflight(std::move(token));
}

void SyncTaskManager::MaybeStartNextForegroundTask(
    std::unique_ptr<SyncTaskToken> token) {
  DCHECK(sequence_checker_.CalledOnValidSequence());

  if (token) {
    DCHECK(!token_);
    token_ = std::move(token);
  }

  if (!pending_backgrounding_task_.is_null()) {
    std::move(pending_backgrounding_task_).Run();
    return;
  }

  if (!token_)
    return;

  if (!pending_tasks_.empty()) {
    // const_cast is safe here as the `closure` is not used in determining
    // priority in `SyncTaskManager::PendingTaskComparator()`.
    base::OnceClosure closure =
        std::move(const_cast<PendingTask&>(pending_tasks_.top()).closure);
    pending_tasks_.pop();
    std::move(closure).Run();
    return;
  }

  if (client_)
    client_->MaybeScheduleNextTask();
}

}  // namespace drive_backend
}  // namespace sync_file_system


text:
Elsey Come Home (Large Print / Library Binding)
This book feels unique – in spare language and short chapters, Elsey struggles to balance intense feelings of motherhood with her career as an artist and obligations to her marriage while living as an ex-pat in China. She put me in her head as she fights addiction, craves a sense of belonging, and deals with unresolved grief honestly and painfully. Powerful!
— Kathy W.
SUSAN CONLEY is the author of the novel Paris Was the Place and The Foremost Good Fortune, a book that won the Maine Literary Award for memoir. Born and raised in Maine, her writing has appeared in The New York Times Magazine, The Paris Review, and Ploughshares. She has been awarded fellowships from the MacDowell Colony, the Bread Loaf Writers' Conference, the Maine Arts Commission, and the Massachusetts Arts Council. She spent three years in Beijing with her husband and two sons before moving back to Portland, Maine, where she currently lives. She teaches in the Stonecoast Writing Program at the University of Southern Maine.
Large Print: Yes
Publisher: Thorndike Press Large Print
Family Life - General
Kobo eBook (January 15th, 2019): $9.99


text:
Q: An abstract policy function? Much of the authorization and policy of the website I'm creating is wrapped up in group policy, not single user policy. There are some functions, such as searching for the existence of a user group in a user's profile, which need to be repeated over and over again. Since policies don't extend anything, would it be possible for a developer to create some sort of abstract policy object which included this function?

A: Policy classes do not need to extend base classes, you are free to extend whatever custom class you want. What matters is that the policy class provides the required policy check methods (which vary depending on the resource).
The only slight exception are policies for requests, they should (but currently do not have to) implement \Authorization\Policy\RequestPolicyInterface, however this doesn't stop you from extending classes or implementing additional interfaces.